Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#119

AW: Schiffe versenken programmieren

  Alt 28. Feb 2014, 12:21
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;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat