Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Snake (https://www.delphipraxis.net/167134-snake.html)

Neitsch 14. Mär 2012 19:12


Snake
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hey Leute,
ich habe das Spiel "Snake" für meine Informatik Facharbeit programmiert und wollte nun mal eure Meinung einholen, ob es mir gut gelungen ist, oder eher auch so fertig gemacht werden kann wie das hier http://www.delphipraxis.net/22871-sn...s-spiel-2.html :-D

Danke an die die es ausprobieren und viel Spaß damit!
Neitsch :thumb:

(Snake.7z ist meine erste veröffentlichte Datei; project1.zip ist meine aktuelle .exe)

p80286 14. Mär 2012 21:33

AW: Snake
 
Erinnert mich sehr an mein "Ur-Snake", damals unter Dos und im textmodus.
Ich frage mich allerdings wofür die 4 MB gebraucht wurden

Gruß
K-H

lbccaleb 14. Mär 2012 21:38

AW: Snake
 
Wieso ist die Anwendung über 12 MB groß?

p80286 14. Mär 2012 21:53

AW: Snake
 
Zitat:

Zitat von lbccaleb (Beitrag 1156624)
Wieso ist die Anwendung über 12 MB groß?

Lazarus!?

Gruß
K-H

himitsu 14. Mär 2012 22:55

AW: Snake
 
12 MB geht ja noch (da haben wie schon Schlimmeres/Größeres gesehn).
Die effektive Datenmenge sind eh nur knapp 2 MB. (aufgeräumt/ausgemistet und halbwegs ordentlich komprimiert)

"Schlimmer" ist eher, daß unnötiger Weise die ganzen Debugdateien, Vorkompilate, Backups und vorallem eine weitere Kopie der EXE (siehe Project1.zip) mitgegeben wurden.

Nja, wenigstens läuft das Programm.
Ich würde aber die Initialwerte des Schwanzes nicht unbedingt auf die sichtbare Position 0:0 legen.

Und wenn sich der Fensterinhalt nicht an die Form anpaßt, dann stell doch einfach die Form auf eine feste Größe, bzw. deaktivier den Maximierenbutton und Co.

Wenn ich unten das Kästchen anhake, von dem man den Text fast garnicht sieht, hinter der ComboBox, dann stimmt die Tastenbelegung nicht mehr so ganz mit der angezeigten Beschreibung überein.

P=Start und O=Pause ... Warum nicht P wie Pause?

[add]
Beim Fressen des Zwanzigsten oder Dreißigsten Quadratapfels ist das Programm einfach so hängen geblieben und reagierte nicht mehr.

Coffeecoder 15. Mär 2012 07:06

AW: Snake
 
Hi,
Finde es soweit gut bis auf die Punkte die bereits erwähnt worden sind.
Zusätzlich wäre folgendes nett einzubauen:
  • aktuellen Punktestand anzeigen
  • Labyrinthe einbauen
  • aktueller Spielstand speichern(?)

Gute Arbeit, weiter so :thumb:

Neitsch 17. Mär 2012 10:33

AW: Snake
 
Danke erstmal für die Rückmeldungen

@p80286: Das ganze Projekt ist halt in 5 Klassen unterteilt, da alles objektorientiert programmiert sein soll
ist die anwendung in delphi kleiner?

@himitsu: klasse, wie ausführlich du geschrieben hast! Ja, das mit der .zip da drin tut mir leid, hatte mal nur die exe an andere zum testen verschickt; euch aber wollte ich alles schicken, damit ihr, wenn ihr lust habt auch in die Source gucken könnt.
Die Initialwerte habe ich geändert, danke für den hinweis, ebenso habe ich den maximieren button deaktiviert.
Das mit dem Kästchen und der Tastaturbelegung stimmt so. Ich persönlich bevorzuge es, immer nach rechts und links relativ zur bewegungsrichtung lenken zu können, das passiert, wenn du das kästchen checkst. Das mit P und O ist so entstanden, dass ich erst nur P (=Play) hatte, und dann einfach eine Taste daneben gesucht habe...
Der Bug, dass das Game nicht mehr läuft, wenn man eine lange Snake hat ist mir noch nicht aufgefallen, werde mich dem gleich widmen!!! :shock:

@Coffeecoder: Punktestand habe ich eingebaut (hatte gedacht, wenn man unterwegs ist gehts sowieso zu schnell, als dass man dem Punktestand Aufmerksamkeit schenkt.
Mit dem Labyrinth habe ich Probleme, da ich keine Idee habe, wie ich das machen sollte... Hatte die Idee, das Labyrinth aus einer Datei auszulesen, aber habs leider nicht hinbekommen, es so auszulesen, dass ichs in ein 2D array splitte, was ich dann abbilden lasse.
Spielstand speichern finde ich persönlich recht unnötig, da ein Spiel ja ziemlich kurz dauert, und man ja auch zur Not pausieren kann :wink:

Danke nochmal! :thumb:

lbccaleb 17. Mär 2012 11:28

AW: Snake
 
Liste der Anhänge anzeigen (Anzahl: 1)
Bei mir hat er sich auch aufgehangen siehe Screenshot

himitsu 17. Mär 2012 12:31

AW: Snake
 
Hast du eventuell eine Code/Schleide, der/die verhindern soll, daß das neue Kästchen in der Schlange erstellt wird?
Eventuell hast du dir dort eine Endlosschleife geschaffen.

Neitsch 17. Mär 2012 15:05

AW: Snake
 
Liste der Anhänge anzeigen (Anzahl: 1)
Das hier ist der Code...
Code:
procedure TForm1.SpawnFood();
var x,y, i:Integer; found: Boolean;
begin
found:= false;
while(not found) do begin //solange kein geeigneter Ort gefunden wurde wiederholen
found:= true;
x:= Random(breite);
y:= Random(hoehe);
if(x= Kopf.X) or (y = Kopf.Y) then found := false;;
for i:= 0 to BodyLength-1 do begin
if(x= Teile[i].X) or (y = Teile[i].Y) then found := false; //prüft, ob der Platz frei ist
end;
end;
Essen := TFood.Create(x,y); //erstell
end;
Jetzt wo ihr es sagt, sehe ich meinen Fehler, ganz dumm >.<
Ich habe jeweils "or" geschrieben. Wenn also eine Reihe vollständig von einer Schlange besetzt ist, gehts in die Endlosschleife :(
Habe ich jetzt gefixt!
Vielen Dank!

Coffeecoder 19. Mär 2012 11:00

AW: Snake
 
Hi,
ich habe noch einmal dein Projekt angeguckt. Das Problem mit dem Aufhängen beim 20 oder 30 oder mehr ist weg.
Das mit dem Speichern hast du schon Recht, dass es unnötig ist da das Spiel eigentlich recht schnell vorbei ist.
Mich stören diese ShowMessage des Scores und dann noch den Highscore. Da du ja wie von mir gebeten den Score unten eingebaut hast, kannst du auf beide Showmessages verzichten. Meinetwegen kannst du den Highscore auch neben den aktuellen Score anzeigen.

Zitat:

Zitat von himitsu (Beitrag 1156633)

P=Start und O=Pause ... Warum nicht P wie Pause?

Ich finde, das sollst du wirklich ändern. P als Start ist sehr verwirrend. Mach es L=Start und P=Pause.

Eine weitere Frage stellt sich mir ob es viele Nutzer bei Snake gibt die mit WASD spielen?
So könntest du dich nur auf die Pfeiltasten konzentrieren und S wird Start :stupid:

[Add] - P.S.: Sonst finde ich das Snake toll gemacht. Super weiter so :thumb:

Neitsch 19. Mär 2012 11:16

AW: Snake
 
Habt ihr dennnoch Verbesserungsvorschläge (ausser ein Labyrinth)?

Coffeecoder 19. Mär 2012 11:22

AW: Snake
 
Eine spontante Idee wäre:
Spezialfutter was in einem 10 Punktetakt auftaucht und nur ein paar Sekunden da ist. > Gibt dann ka 3 Punkte.

Neitsch 19. Mär 2012 12:03

AW: Snake
 
Danke erstmal für das Lob!!

Deine Vorschläge werde ich sofort umsetzen :-D

Neitsch 20. Mär 2012 14:24

AW: Snake
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hey so, habe ein kleines Labyrinth eingebaut (ihr könnt es in der Datei Lab.txt beliebig mit X,Y Koordinaten erweitern) und Spezialfutter 8-)

Hoffe es macht euch Spaß!
Neitsch

Coffeecoder 20. Mär 2012 14:50

AW: Snake
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Neitsch (Beitrag 1157541)
Hey so, habe ein kleines Labyrinth eingebaut (ihr könnt es in der Datei Lab.txt beliebig mit X,Y Koordinaten erweitern) und Spezialfutter 8-)

Hoffe es macht euch Spaß!
Neitsch

Hi Neitsch, wunderbar!
Spezialfutter ist toll gemacht.

Ich möchte dich auf einen Kollisionsfehler hinweisen beim Labyrinth und Futter.
Im Screenshot siehste, dass es kein Futter gibt. Nicht gut für die Schlange ;)

Weiter so8-)

lbccaleb 20. Mär 2012 15:11

AW: Snake
 
Ich kann dir jetzt noch den Tipp geben: Da du nun ein Labyrinth eingebaut hast würde ich an deiner Stelle, die Fensterbegrenzung nicht mehr als Wand sehen, sondern als Durchgang. Sprich wenn du gegen den Rand des Fensters stößt, solltest die Schlange auf der anderen Seite wieder raus kommen. Und dazu dann das Labyrinth erweitern damit der Schwierigkeitsgrad erhalten bleibt.

Neitsch 23. Mär 2012 18:47

AW: Snake
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich denke jetzt habe ich meine Möglichkeiten quasi voll ausgeschöpft :D :thumb:
Danke für die Tipps!

EDIT: Tut mir leid, man muss noch einen Ordner 'Levels' erstellen im selben Ordner wie die exe ... ich fixe das sobald wie möglich!

Neitsch 23. Mär 2012 21:38

AW: Snake
 
Liste der Anhänge anzeigen (Anzahl: 1)
Jetzt ists gut :D

himitsu 23. Mär 2012 22:13

AW: Snake
 
Tipp: Im Projekte-Unterforum läßt sich der erste Post absichtlich zeitlich unbegrenzt bearbeiten.

Damit man die aktuellen Downloads an zentraler Stelle bereitstellen kann, ohne daß die Anderen danach erst lange suchen müssen.
Deswegen ist dieser Post auch auf allen Seiten sichtbar.

MrMooed 10. Apr 2012 23:04

AW: Snake
 
Liste der Anhänge anzeigen (Anzahl: 1)
'Nabend

Befasse mich gerade selber mit Snake :lol:

Jedenfalls hätte ich noch ein paar Tipps (habe mir dein Programm leider nicht angesehen, da mir im Urlaub die Bandbreite über das Handy fehlt :oops:)
  • Random Labyrinth (So habe ich es gemacht: Random(4) für die Richtung der Wand/ Random(5) für die länge der Wand/ Und dann halt Random(X/Y) für die Position der Wadn)
  • Extra Form für nen Highscore Menu
  • Äpfel verschwinden nach ner gewissen Zeit
  • ...

Guck dir einfach im Anhang mal meine Snake Version an, da wirst du noch reichlich Anregungen finden 8-)

Denke ich werde die Finale Version auch hier in der DP hochladen, und vllt noch etwas Dokumentieren. Bei Interesse einfach bescheid sagen :-D

P.S.: Werde nächstes Jahr auch meine Facharbeit in Informatik schreiben, denke aber über ein Spiel wie Tron (falls möglich :?)
Falls es wen Interresiert, die Programmierdauer betrug (bisher) 8 Tage :roll:


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz