Ich nehme an, dein Feld ist X*Y Gross. Dein Schiff ist durch eine menge von Punkten definiert, nehme ich auch an.
So, in etwa:
Delphi-Quellcode:
type MyFied=array[0..MAX_WIDTH,0..MAX_HEIGHT]of integer;
MYShiff=record
definition:array of TPoint;
live:integer;
end;
Nun jetzt, wenn auf eine x,y Koordinate geschossen wird, prüft man ob sich ein Schiff bzw derren Teil dort befindet. Wenn ja dann ist:
GetroffeneSchiff.Live := GetroffeneSchiff.Live - 1;
Und wenn
GetroffeneSchiff.Live=0
whar ist , dann ist dein Schiff komplet gesunken.
Wichtig:
Am Anfang des Spieles muss man Live Variable richtig setzen, d.h., sollte ein Schiff aus 4 Punkten bestehen, dann ist entsprechende Live Variable auf 4 zu setzen.
Hofe, das hilft weiter...