Meinereiner hat das vor Jahren mal so gelöst:
Die gesamte Welt als zweidimensionales, dynamisches Array vom Typ Record.
Delphi-Quellcode:
Darin waren enthalten:
Byte 0..4 = Typ des Feldes (Frei, Mauer, Apfel, Start1, Start2 ,...)
Byte 0..17 =
+ Mauer: Parameter Art der Mauer (-, |, 4 x Ecke Innen, 4 x Ecke Außen, 4 x Schmale Ecke und 4 x Endstücke)
+ Apfel: Sec. seit einfügen (Punkte)
+ Start: Richtung des Spielers
Die Daten konnten in eine Datei geschrieben/gelesen werden wobei mehrere Levels mit unterschiedlicher Spielfeldgrößen in einer Datei möglich sind.
Die Schlange hat ihr eigenes Dynamisches Array mit dem Positionen und der Ausrichtung der Schlange.
Zusätzlich gibts noch einen Zähler wie viele Elemente am ende noch einzufügen sind.
Der Ablauf war bei mir:
1. Schlangenkopf und ende an Startpunkt setzen und ersten Apfel platzieren.
2. Timer Starten
3. Timer löst aus
4. Tasten abfragen
5. Bestimmen wo als nächstes der Schlangenkopf hin kommt.
6. Überprüfen ob diese Position frei ist.
6.0 Frei
6.1 Wand oder Schlange => Schlange Tot
6.2 Apfel => Schlange verlängern und neuen Apfel setzen
7. Spielfeld Zeichnen
8. Maximale Anzahl an Äpfel gesammelt => Gewonnen. Nächstes Level.
Der Netzwerk Modus war da das größere Stück Arbeit.
Fröhliches Coden
Jakson