Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Schiffe versenken - verhindern von überlappen der schiffe

  Alt 19. Dez 2011, 08:18
Aus dem Stegreif:
Delphi-Quellcode:
var
  //Nehmen wir z.B. 10 x 10 Felder
  Spielfeld: array[0..9, 0..9] of Boolean;

//Schiff setzen -> Felder als belegt markieren
procedure SchiffSetzen(Felder: array of TPoint);
var
  i: integer;
begin
  for i := Low(Felder) to High(Felder) do
    Spielfeld[Felder[i].X, Felder[i].Y] := true;
end;

//Übergebene Felder auf belegt prüfen
function FelderFrei(Felder: array of TPoint): Boolean;
var
  i: integer;
begin
  Result := true;
  i := Low(Felder);
  while (i <= High(Felder)) and Result do
    begin
      Result := not Spielfeld[Felder[i].X, Felder[i].Y];
      inc(i);
    end;
end;

//Spielfeld komplett als frei markieren
procedure ClearSpielfeld;
var
  i, j: integer;
begin
  for i := Low(Spielfeld) to High(Spielfeld) do
    for j := Low(Spielfeld[i]) to High(Spielfeld[i]) do
      Spielfeld[i, j] := false;
begin
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat