Das Grundprinzip aller einfachen 2D-Spiele sieht so aus:
Es gibt ein zweidimensionales Feld ("Spielfeld") mit Statuswerten.
Diese Statuswerte werden am Bildschirm angezeigt; das nennt man Visualisierung.
Wenn sich etwas ändern soll, wird immer das Spielfeld geändert und dann einfach das gesamte Spielfeld neu visualisiert.
Es gibt niemals den Fall, dass man direkt an der Anzeige etwas ändert; das Spielfeld bleibt immer die Grundlage für das ganze Spiel.
Für die Statuswerte gibt es verschiedene Möglichkeiten.
Man kann einen
Integer nehmen und den verschiedenen Werten ein Bildchen oder eine Figur zuordnen.
Beim 3-Gewinnt Spiel (
Tic Tac Toe) wäre z.B. 0=leeres Feld, 1=Spieler A, 2=Spieler B
Man kann auch den Typ
Char als Statuswert verwenden.
Für den Programmierer hat das den Vorteil besonders anschaulich zu sein.
z.B. ' '=leeres Feld, 'X'=Spieler A, 'O'=Spieler B
Ich würde empfehlen das Spielfeld so zu deklarieren:
Delphi-Quellcode:
type
TSpielfeld = array[1..3, 1..3] of Char;
var
spielfeld : TSpielfeld;
Um das Spielfeld anzuzeigen würde ich ein
TDrawGrid (auf Palettenseite Zusätzlich) verwenden.
Kochrezept für das Spiel Tic-Tac-Toe
1.) Spielfeld definieren
2.) einfache Visualisierungsfunktion erstellen
für den Anfang kann man das Spielfeld auch in einem Textfeld ausgeben
3.) Eingabemöglichkeit für einen Zug schaffen (z.B. Spieler gibt x- und y-Koordinate ein)
4.) Funktion bauen, die prüft ob ein Zug gültig ist
5.) Funktion bauen, die prüft ob ein Spieler schon gewonnen hat (falls ja, welcher?)
6.) Funktion bauen, die prüft ob das Spielfeld komplett voll ist (unentschieden)
7.) Visualisierung verbessern und Zugeingabe per Mausklick ermöglichen
damit kann die primive Eingabe von Punkt 3.) wieder entfernt werden