Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Schachbrettmuster im Array (https://www.delphipraxis.net/45959-schachbrettmuster-im-array.html)

tankm26 15. Mai 2005 16:13


Schachbrettmuster im Array
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo!

Als armer "Informatiker" stehe ich vor folgendem Problem: Ich möchte ein Schachbrettmuster in einem array erstellen, weiß aber nicht wie.


Welche Programmiersprache habe ich eigentlich bei Delphi 7?

Den source-code füge ich an.

mfg

Wieland

100nF 15. Mai 2005 16:18

Re: Schachbrettmuster im Array
 
hallo tankm26,

also irgendwie verstehe ich dein problem nicht ganz... :gruebel:

Zitat:

Welche Programmiersprache habe ich eigentlich bei Delphi 7?
ich würde sagen Pascal.

tankm26 15. Mai 2005 16:22

Re: Schachbrettmuster im Array
 
Das wird mein beim Erstellen eines neuen Themas gefragt...

Nee, aber das war doch überhaupt nicht mein Problem. Das array soll, immer im Wechsel, ein weißes und ein schwarzes Feld besitzen.

JasonDX 15. Mai 2005 16:22

Re: Schachbrettmuster im Array
 
Ein Schachbrettmuster erhält man ca. so:

Delphi-Quellcode:
const
  Farben: array[0..1] = (clWhite, clBlack);
//...
for i := 0 to AnzahlZeilen - 1 do
  for j := 0 to AnzahlSpalten - 1 do
    FarbeDerZelle[i][j] := Farben[(i + j) mod 2];

PS: Programmiersprache bei Delphi ist Object Pascal


[Edit]: Willkommen in der DP!! :party:

tankm26 15. Mai 2005 16:23

Re: Schachbrettmuster im Array
 
ich werds mal ausprobieren...


Ja,ja, Delphi ist doch was Feines.

Danke für den Gruß!

So, hab mir die Idee von chimaira mal angesehen:


Delphi-Quellcode:
const
  Farben: array[0..1] = (clWhite, clBlack);
//...
for i := 0 to AnzahlZeilen - 1 do
  for j := 0 to AnzahlSpalten - 1 do
    FarbeDerZelle[i][j] := Farben[(i + j) mod 2];


1.Frage: Sollen i und j Variablen werden? Integer ?
2.: Wo kommt das AnzahlZeilen her? Soll das spielfeld.ColCount und
spielfeld.RowCount sein?
Den Text soll ich wohl in FormCreate einfügen, oder?
3.: FarbederZeile, die constante "Farben", wie baue ich das ein?

Danke für eure schnelle Hilfe!

[edit=alcaeus]Delphi-Codes gesetzt. Bitte in Zukunft selbst erledigen ;) Mfg, alcaeus[/edit]

100nF 15. Mai 2005 16:27

Re: Schachbrettmuster im Array
 
Zitat:

Das wird mein beim Erstellen eines neuen Themas gefragt...
meinst du z.B. "Win32"? ich glaube das ist es...haben die meisten, darum habe ich es auch immer genommen :mrgreen:

JasonDX 15. Mai 2005 16:32

Re: Schachbrettmuster im Array
 
Zitat:

Zitat von urbanbruhin
Zitat:

Das wird mein beim Erstellen eines neuen Themas gefragt...
meinst du z.B. "Win32"? ich glaube das ist es...haben die meisten, darum habe ich es auch immer genommen :mrgreen:

Bei Delphi7 ist des definitiv Win32, da dies noch nicht .NET unterstützt ;)

tankm26 15. Mai 2005 16:35

Re: Schachbrettmuster im Array
 
Die beiden Zeilen kann ich schon mal rausschmeißen, es warten nur Versuche:

if feld [spielfeld.Col,spielfeld.Row].canvas.Brush.Color=clblack then begin
feld[spielfeld.Col,spielfeld.Row].canvas.Brush.Color:=clwhite;

Den Kram auch...
{ feld[aCol,aRow].Color:=clblack;
if Spielfeld.Color=clWhite
then Spielfeld.Color:=clblack; }

tankm26 15. Mai 2005 16:49

Re: Schachbrettmuster im Array
 
So, folgendes Problem habe ich jetzt nur noch (bei diesem Quelltext[ausschnitt]):
Delphi-Quellcode:
const
  ANZAHL=20;
  BREITE=20;

var
  Form1: TForm1;
  feld:array [0..ANZAHL-1,0..ANZAHL-1] of integer;
  dransein:integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
i,j: integer;
 begin
  spielfeld.ColCount:=ANZAHL+3;
  spielfeld.RowCount:=ANZAHL+3;
  spielfeld.DefaultColWidth:=BREITE;
  spielfeld.DefaultRowHeight:=BREITE;
  spielfeld.Width:=25*ANZAHL-13;
  spielfeld.Height:=25*ANZAHL-13;
  Form1.Width:=28*ANZAHL;
  Form1.Height:=28*ANZAHL;
  ShowMessage('');
  ShowMessage ('');
   for i:=0 to spielfeld.RowCount-1 do
    for j:=0 to spielfeld.ColCount-1 do
     Color of feld [i][j] :=Colors[(i + j) mod 2];
     end;

[Fehler] version1.pas(54): Anweisung erforderlich, aber Ausdruck vom Typ 'TColor' gefunden


Aber, das kriegen wir (ich) auch noch hin, oder?

[edit=Sharky]Delphi-Tags gesetzt. Bitte beim nächsten mal selber machen :-D Mfg, Sharky[/edit]

Sharky 15. Mai 2005 16:53

Re: Schachbrettmuster im Array
 
Hai,

wenn es "nur" um das Schachbrettmuster in dem TStringGrid geht würde ich das ganz einfach so machen:
Delphi-Quellcode:
procedure TForm1.spielfeldDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  if Odd(ACol) and not Odd(ARow) then
  begin
    spielfeld.Canvas.Brush.Color := clBlack;
  end;
  spielfeld.Canvas.FillRect(Rect);
end;
Diesen Code in das .OnDrawCell Ereigniss des TStringGrid und fertig ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:49 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz