Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Schon wieder Arrays... Werte abwechselnd ändern? (https://www.delphipraxis.net/30249-schon-wieder-arrays-werte-abwechselnd-aendern.html)

ibp 23. Sep 2004 14:02

Re: Schon wieder Arrays... Werte abwechselnd ändern?
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Button1.enabled := false;
  case LastPlayer of
    0: LastPlayer := 1; // noch kein Button gedrückt, also kommt Spieler 1 drann
    1: LastPlayer := 2; // Spieler 1 war drann, also muss jetzt Spieler 2 rann
    2: LastPlayer := 1; // Spieler 2 war drann, also muss jetzt Spieler 1 rann
  end;
  TicTacToe[1,1] := LastPlayer;
end;
könntest du auch vereinfachen zu:

du definierst den tag des jeweiligen buttons mit:

button1.tag:=11
button5.tag:=22
button7.tag:=31
etc.
dann das onclick erignis auf folgente procedure

Delphi-Quellcode:
procedure TForm1.ButtonClick(Sender: TObject);
var BtnNr:integer;
    Zeile,Spalte:integer;
begin
  TButton(Sender).Enabled := false; // aktueller button kann nicht mehr gedrückt werden
  BtnNr:=TButton(Sender).Tag; // Button-Nr

  Zeile:=BtnNr mod 10;
  Spalte:=BtnNr-Zeile;

  inc(LastPlayer); // +1
  if LastPlayer>2 then
    LastPlayer:=1;

  TicTacToe[Zeile,Spalte] := LastPlayer;
end;

scp 23. Sep 2004 14:06

Re: Schon wieder Arrays... Werte abwechselnd ändern?
 
Delphi-Quellcode:
Spalte:=(BtnNr-Zeile) div 10;
nicht vergessen :)

malo 23. Sep 2004 14:16

Re: Schon wieder Arrays... Werte abwechselnd ändern?
 
Naja, ich hab jetzt einfach mal das end überall verschoben... diese vereinfachung merk ich mir jedoch für das nächste Mal, bin jetzt nur zu faul alles zu ändern und mir dann auch noch zu merken, was die einzelnen Befehle da machen :roll:

Naja, dann kann ich mich ja mal weiter auf den Weg zum fertigen Spiel machen... Danke nochmal an alle, die mir geholfen haben, und auch an die, die es versucht haben :mrgreen:

ibp 23. Sep 2004 14:19

Re: Schon wieder Arrays... Werte abwechselnd ändern?
 
Zitat:

Zitat von scp
Delphi-Quellcode:
Spalte:=(BtnNr-Zeile) div 10;
nicht vergessen :)

stimmt ein fehler, aber nicht so sondern:


Delphi-Quellcode:
Spalte:=BtnNr-Zeile*10;

scp 23. Sep 2004 16:48

Re: Schon wieder Arrays... Werte abwechselnd ändern?
 
[ot]
Wieso *10 ?
Delphi-Quellcode:
  BtnNr := 23;

  Zeile:=BtnNr mod 10; // Zeile = 3
  Spalte:=(BtnNr-Zeile) div 10; // 23-3 = 20; 20/10 = 2
[/ot]

ibp 24. Sep 2004 08:46

Re: Schon wieder Arrays... Werte abwechselnd ändern?
 
@scp

also bei mir ist:
Code:
Zeile= 23 div 10 = 2
Spalte= 23-(2*10) = 3

scp 24. Sep 2004 10:22

Re: Schon wieder Arrays... Werte abwechselnd ändern?
 
So gehts natürlich auch, du hast aber bei Zeile im Originalcode mod verwendet, was durchaus die bessere Wahl war, weil es genauer ist.

ibp 24. Sep 2004 10:29

Re: Schon wieder Arrays... Werte abwechselnd ändern?
 
stimmt sollte eigentlich div sein!

genauer kann nicht sein, da mod sich aus div berechnet:

x mod y = x - (x div y) * y.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:10 Uhr.
Seite 3 von 3     123   

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