![]() |
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 ![]() 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) |
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 |
AW: Snake
Wieso ist die Anwendung über 12 MB groß?
|
AW: Snake
Zitat:
Gruß K-H |
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. |
AW: Snake
Hi,
Finde es soweit gut bis auf die Punkte die bereits erwähnt worden sind. Zusätzlich wäre folgendes nett einzubauen:
Gute Arbeit, weiter so :thumb: |
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: |
AW: Snake
Liste der Anhänge anzeigen (Anzahl: 1)
Bei mir hat er sich auch aufgehangen siehe Screenshot
|
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. |
AW: Snake
Liste der Anhänge anzeigen (Anzahl: 1)
Das hier ist der Code...
Code:
Jetzt wo ihr es sagt, sehe ich meinen Fehler, ganz dumm >.<
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; 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! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz