PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Snake Programmieren



RoCMe
02-08-2006, 15:27
Hrey... Ich sitze hier gerade und warte auf meine Freundin... Um mir die Zeit zu vertreiben hab ich einen Snake-Klon gespielt, und dabei kam ich ins grübeln, wie man sowas am "besten" programmiert.
Ganz unabhängig von der Programmiersprache gehts natürlich nicht, aber ich will jetzt auch keinen Streit anfangen, ob nun diese oder jene besser ist...
Nehmen wir einfach an, ich will mit einer OO-Sprache arbeiten.

Mein erster Gedanke war, eine eigene Klasse zu erstellen, die die einzelnen "Glieder" der Schlange darstellen (sprich: deren Position auf dem Bildschirm). Dabei bleib ich vorerst auch.
Dann ist es ohne weiteres möglich, alle Körperteile in einer Sequenz (eine Liste, auf die man aber nicht über einen Index zugreifen kann; stattdessen kann man nur das erste und letzte Element ansprechen, von hier aus gibt es einen Verweis auf das folgende usw.) zu speichern. Soll die Schlange fortbewegt werden, merkt man sich die Position des Kopfgliedes und gibt ihm anschließend die gewünschte neue Position. Anschließend merkt man sich die Position des 2. Glieds, setzt seine neue Position auf die alte Position des Kopfes usw., bis man am Ende angekommen ist. Das kann man dann ohne weiteres löschen.

Gut, ich hab selbst bemerkt, dass man dafür ziemlich viele Positionen tauschen muss, also hab ich mir folgendes überlegt:
Ich hab eine Liste mit meinen Gliedern, und wenn ich die Schlange bewegen will, lösche ich einfach das letzte Glied und füge vorne ein neues in der gewünschten Richtung an - macht doch viel weniger Arbeit, oder? Vorrausgesetzt natürlich, man hat einen geeigneten Datentyp namens Liste, wo sich einfach vorne etwas anhängen lässt und hinten etwas löschen,. aber das geht z.B. mit meiner oben genannten Sequenz ganz gut...

Wie würdet ihr vorgehen? ich verwarte keinen Code, ich habe gar nicht vor, das wirklich zu programmieren, mir geht es nur um einen möglichst effizienten Ansatz!!!


lg

RoCMe