Also du hast ein Spielfeld
Spielfeld : array[0..11,0..11] of integer;
und jedes Feld kann einen Wert annehmen, der den Status des Feldes darstellt.
Folgende Werte sind in dem Spiel möglich
Delphi-Quellcode:
const
WATER = 0;
NEARSHIP = 1; // Wird zum Positionieren der Schiffe benötigt
SHIP = 2;
HITVALUE = 10;
HIT_WATER = WATER + HITVALUE;
HIT_NEARSHIP = NEARSHIP + HITVALUE;
HIT_SHIP = SHIP + HITVALUE;
Wenn du nun ein Schuss auf ein Feld abgeben willst, dann überprüfst du, ob der aktuelle Wert des Feldes kleiner als
HITVALUE
ist. Wenn dem so ist, dann addierst du zu dem aktuellen Feldwert einfach
HITVALUE
und der neue Wert ist gesetzt.
Delphi-Quellcode:
// Schuss auf 4,7
if Spielfeld[4,7] < HITVALUE then
Spielfeld[4,7] := Spielfeld[4,7] + HITVALUE;
Wenn du das Spielfeld anzeigen willst, dann gibst du abhängig vom Wert eben das passende heraus (Zeichen, Bild, Farbe, whatever)
Delphi-Quellcode:
// Ausgabe des Spielfelds auf der Console
for y := 0 to 11 do
for x := 0 to 11 do
begin
case Spielfeld[x,y] of
WATER : Write( ' ' );
NEARSHIP : Write( '+' );
SHIP : Write( '#' );
HIT_WATER : Write( 'o' );
HIT_NEARSHIP : Write( '*' );
HIT_SHIP : Write( 'X' );
end;
end;
WriteLn; // Neue Zeile
end;