Zitat von
fui-tak:
Delphi-Quellcode:
(...)
... //wenn auf dem Feld ein Schiff irgendeiner Art ist (in deinem Beispiel gingen nur k-Schiffe), wird gueltig auf false gesetzt
Hmm, wieso? Das ist ja bei "Schiffe versenken" egal, oder nicht?
Bei meinem Code erkennt man nicht ob ein ganzes Schiff versenkt worden ist
Tipp:
Verwende statt "Integer" einen eigenen Typ!
z.B.:
Delphi-Quellcode:
type
TShip = Record
Typ : TTypus;
Treffer : array[0..10] of Boolean; //Wahr = Treffer, max. 11
end;
//..
Ships : Array[-1..20, -1..25] of TShip;
//Prüfen ob ganzes Schiff versenkt!
var
iX, iY, I : Integer;
for iY := 0 to 20 do
for iX := 0 to 25 do
begin
Collision := True;
for I := Low(Ships[iX, iY].Treffer) to High(Ships[iX, iY].Treffer) do
if not Ships[iX, iY].Treffer[I] then Collision := False;
//Versenkt?
if Collision then
ShowMessage('Schiff Position (X, Y): ' + inttostr(iX)+', ' + inttostr(iY) +^J+ 'Wurde versenkt!');
end;
lg