Ich hab auch mal ein Schiffeversenken programmiert und eignetlich ist das kein Problem. Wahre einfach die Objektorientierung. Ich hab einfach ein Spielfeld gehabt welches Schiffe besitzt. Wenn ein Schiff an eintsprechender Stelle war wurde dem Schiff-Object mitgeteilt an welcher Stelle es getroffen wurde. Und da Schiffobject hat in dem Zug gleich selbst geprüft ob es versenkt wurde oder nicht und dementsprechend ein Event gewurfen.
Quelltext auszug:
Delphi-Quellcode:
if Assigned(fOnShipDone) and (GetHits = ShipSize) then
fOnShipDone(Self, ShipSize, RotateVal, GetShipRect.TopLeft);
Kurz und Knapp: Bau das ganze Objectorientiert und die Probleme lösen sich von selbst