![]() |
Schiffe Versenken - Probleme beim Setzen der Schiffe
Hey,
in der Schule arbeiten wir gerade an einem Projekt, wobei ich Schiffe versenken programmiere. im großen und ganzen funktioniert das programm auch schon, nur noch ein fehler stört mich sehr. wenn man seine schiffe setzt, klickt man auf das feld (string grid), aber auf dem feld soll natürlich nicht schon ein schiff sein und auch nicht auf den feldern drum herum (damit die nicht alle auf einem haufen sind). das funktioniert soweit ja auch, nur das problem ist (abgesehen vobn der länge meiner möglichkeit *g*), dass man in der ganz linken und ganz rechten spalte keine schiffe setzen kann. hab schon vieles rumprobiert, funktioniert aber nur, wenn ich alles wieder rausnehme (man die schiffe also überall hinsetzen kann).
Code:
if radiobutton1.checked then
begin if s4>0 then begin if StringGrid1.Cells[schuX-1,schuY+1]='' then begin if StringGrid1.Cells[schuX-1,schuY]='' then begin if StringGrid1.Cells[schuX-1,schuY-1]='' then begin if StringGrid1.Cells[schuX,schuY+1]='' then begin if StringGrid1.Cells[schuX,schuY]='' then begin if StringGrid1.Cells[schuX,schuY-1]='' then begin if StringGrid1.Cells[schuX+1,schuY+1]='' then begin if StringGrid1.Cells[schuX+1,schuY]='' then begin if StringGrid1.Cells[schuX+1,schuY-1]='' then begin StringGrid1.Cells[schuX,schuY]:=' X'; s4:=s4-1; zahl:=zahl-1; label5.caption:=inttostr(zahl); label21.caption:=inttostr(s4); end; end; end; end; end; end; end; end; end; end; end; wäre echt toll, wenn irgendwer von euch da ne idee hätte! |
Re: Schiffe Versenken - Probleme beim Setzen der Schiffe
indem du eine abfrage machst ob es an den seiten ist wenn es an den seiten ist soll halt nicht überprüft werden was drüber geht
|
Re: Schiffe Versenken - Probleme beim Setzen der Schiffe
*hust*, findest du nicht, dass das ganze etwas ... unelegant ist?
Wäre es nicht sinnvoller, um jedes Feld einzeln eine Abfrage durchzuführen, ob dort schon ein Schiff sitzt? (*schlechte beschreibung*) Das ganze in eine Funktion verpacken und diese mit den Koordinaten aufrufen ... Nochmal: diese Funktion soll prüfen, ob über, unter oder rechts/links von dem übergebenen Punkt bereits ein Schiff sitzt. Der Rückgabewert ist dann entweder true oder false (boolean). Dort lässt sich dann auch einfach einrichten, dass ganz oben, unten oder links/rechts eine Spalte/Zeile nicht überprüft wird, weil das vermutlich an deinen Probs schuld ist. Oder du machst deinen String-Grid eins größer und versteckst die Ränder oben, unten, rechts und links, indem du das Grid so verschiebst, dass diese nur mittels einer Scrollbar zu erreichen wären, die du natürlich deaktivierst. mfG Markus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz