Einzelnen Beitrag anzeigen

StanY

Registriert seit: 6. Aug 2004
145 Beiträge
 
#1

Schachfeld - Gerade, Ungerade...

  Alt 21. Okt 2004, 21:12
Delphi-Quellcode:
procedure TfrmMain.DrawMap();
var
  x,y: Integer;
begin
  for x := 0 to 7 do begin
    for y := 7 downto 0 do begin
      Feld[x,y].Shape := TShape.Create(self);
      with Feld[x,y].Shape do begin
        Parent := frmMain;
        Top := x*SHAPEHEIGHT+TOPSPACE;
        Left := y*SHAPEWIDTH+LEFTSPACE;
        Width := SHAPEWIDTH;
        Height := SHAPEHEIGHT;
        Brush.Style := bsSolid;
        Pen.Style := psSolid;
        if ((x+y mod 2) = 1) then begin
          Pen.Color := clBlack;
          Brush.Color := clBlack;
        end
        else begin
          Pen.Color := clWhite;
          Brush.Color := clWhite;
        end;
      end;
      Feld[x,y].Frei := true;
    end;
  end;
end;
Ich erzeuge ein Schachfeld druch 2 For-Schleifen (x=0-7,y=0-7) realisiert mi 8²-Shapes. Jetzt gilt es diese Shapes zu färben. Eigentlich müsste es ja so sein, dass jedes Feld, wo x+y mod 2 = 1 ist, also ungerade ist, Schwarz gefärbt wird. Allerdings sieht das in der Praxis ganz anders aus: Ich habe 8² Shapes. Bei den obersten Reihen läuft alles korreckt, erstes weiß, zweites schwarz, etc. Ab Reihe 3 sind alle Felder weiß... warum?
  Mit Zitat antworten Zitat