Einzelnen Beitrag anzeigen

IceBube

Registriert seit: 9. Jul 2008
178 Beiträge
 
#18

Re: Schiffe versenken, Platzierung

  Alt 28. Mai 2010, 23:35
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
  Mit Zitat antworten Zitat