AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Schiffe versenken

Ein Thema von kindliche kaiserin · begonnen am 17. Feb 2010 · letzter Beitrag vom 28. Feb 2010
 
KB-Selbst

Registriert seit: 3. Okt 2005
Ort: Haßfurt
4 Beiträge
 
Delphi 7 Professional
 
#21

Re: Schiffe versenken

  Alt 19. Feb 2010, 13:16
Wenn, dann so:

Delphi-Quellcode:
const c_Err1 = 'Die Schiffe dürfen sich nicht überlagern bzw. nebeneinander sein.';

      x_hilf:=X div 25; y_hilf:=Y div 25; // Das mit den vielen Befehlen in einer Zeile stört mich jetzt weniger.
      xs:=x_hilf*25; ys:=y_hilf*25;

        if (xs+laenge>250) or (if ys+hoehe>250)
        then
          showmessage('Das Schiff muss sich komplett innerhalb des Feldes befinden.')

        else
        for h:=0 to laenge do
        begin
          if (img_mensch.Canvas.Pixels[xs+h,ys -12]=clgreen) or
             (img_mensch.Canvas.Pixels[xs+h,ys+hoehe+12]=clgreen)
          then
            showmessage(c_Err1)
          else
            for i:=0 to hoehe do
            begin
              if (img_mensch.Canvas.Pixels[xs -12,ys+hoehe]=clgreen) or
                 (img_mensch.Canvas.Pixels[xs+laenge+12,ys+hoehe]=clgreen)
              then
                showmessage(c_Err1)
              else
                if (img_mensch.Canvas.Pixels[xs- 12,ys -12]=clgreen) or
                   (img_mensch.Canvas.Pixels[xs+laenge+12,ys -12]=clgreen) or
                   (img_mensch.Canvas.Pixels[xs+laenge+12,ys+hoehe+12]=clgreen) or
                   (img_mensch.Canvas.Pixels[xs- 12,ys+hoehe+12]=clgreen)
                then
                  showmessage(c_Err1)
                else
.
.
.
            end;
        end;
Du kannst natürlich so formatieren wie du willst. Wenn du's aber so machst, wie ich oben angegeben, siehst du gleich, welche FOR-Schleife wo endet.

Auch das Nicht-Verwenden von Begin/End hat, ganz besonders in deinem Falle (mehrere Verschachtelungen) einen erheblichen Nachteil: Den ; an der falschen Stelle gesetzt und die For-Schleife ist beendet, wo sie gar nicht beendet werden soll. Dumm nur, dass die Falschpositionierung des Strichpunktes nur sehr schwer zu finden ist.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:54 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