AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Schon wieder Arrays... Werte abwechselnd ändern?
Thema durchsuchen
Ansicht
Themen-Optionen

Schon wieder Arrays... Werte abwechselnd ändern?

Ein Thema von malo · begonnen am 22. Sep 2004 · letzter Beitrag vom 24. Sep 2004
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#11

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

  Alt 22. Sep 2004, 20:20
Zitat von xineohp:
moin,

wenn ich das jetzt richtig verstanden und mir korrekt vorstelle, dann soll das so eine Art Drei-Gewinnt werden?
Wobei die 9 Buttons die 9 Felder darstellen, der eine Spieler 1en und der zweite 2en verteilt?!

liege ich mit dieser vermutung richtig?

Wenn ja, dann sollen ja 1en und 2en immer abwechseld verteilt werden, somit muss du doch nur prüfen/mitzählen ob die Gesamtzahl an gedrückten Buttons gerade oder ungerade ist und dann jeweils 1 bzw. 2 ein das jeweilige array feld eintragen.
bingo, genau das soll es werden

Den unteren Teil versteh ich jetzt nicht wirklich... soll man jetzt selbst aufpassen, ob man den jeweiligen Button schon gedrückt hat oder wie?
  Mit Zitat antworten Zitat
xineohp

Registriert seit: 29. Jan 2004
Ort: Heusenstamm
420 Beiträge
 
Delphi 2005 Professional
 
#12

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

  Alt 22. Sep 2004, 20:29
1. jeder Button darf nur einmal gedrückt werden --> Im OnClick-Ereignis: ButtonX.enabeld := false;
2. fest stellen welcher Spieler an der Reihe ist bzw. welche Zahl eingetragen werden soll
--> eine globale Variable einführen die speichert welcher Spieler zu letzt gesetzt hat
--> Im OnClick-Ereignis:
Delphi-Quellcode:
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;
3. Wert in das array eintragen --> Im OnClick-Ereignis: array[X,Y] := LastPlayer
Peter Enenkel
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#13

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

  Alt 22. Sep 2004, 20:34
aha... hört sich schonmal nicht schlecht an.

nur: welchen Typ soll die Variable lastplayer haben?
  Mit Zitat antworten Zitat
xineohp

Registriert seit: 29. Jan 2004
Ort: Heusenstamm
420 Beiträge
 
Delphi 2005 Professional
 
#14

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

  Alt 22. Sep 2004, 20:37
integer natürlich ... wir wollen schließlich was zählen
Peter Enenkel
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.095 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#15

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

  Alt 22. Sep 2004, 20:38
Von einem Ordinaltyp auf jeden Fall.

Und in diesem Fall kein Char o. ä.

Wie wäre es den mit Integer?
Felix Alter
Japanurlaub 2015
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#16

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

  Alt 22. Sep 2004, 21:11
Wenn ich jetzt aber array[X,Y] := LastPlayer hab (natürlich hab ich X und Y durch die jeweiligen Arraydaten ersetzt) kommt da immer "Konstantenausdruck erwartet". Was soll ich jetzt machen?
  Mit Zitat antworten Zitat
xineohp

Registriert seit: 29. Jan 2004
Ort: Heusenstamm
420 Beiträge
 
Delphi 2005 Professional
 
#17

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

  Alt 22. Sep 2004, 21:34
also du solltest folgende Deklarationen unter var stehen haben:

array: array[1..3,1..3] of integer;
LastPlayer: integer;

Dann sollte es keine Fehler geben. Wenn doch, poste mal deinen Quellcode.
Peter Enenkel
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#18

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

  Alt 23. Sep 2004, 13:25
Ich hab jetzt mal das oberste weggelassen und nur alles ab var reinkopiert

Delphi-Quellcode:
var
  Form1: TForm1;
  TicTacToe : array [1..3, 1..3] of integer;
  LastPlayer : integer;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
TicTacToe[1,1] := 0;
TicTacToe[1,2] := 0;
TicTacToe[1,3] := 0;
TicTacToe[2,1] := 0;
TicTacToe[2,2] := 0;
TicTacToe[2,3] := 0;
TicTacToe[3,1] := 0;
TicTacToe[3,2] := 0;
TicTacToe[3,3] := 0;

end;

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
TicTacToe[1,1] := LastPlayer;
end;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Button2.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
TicTacToe[1,2] := LastPlayer;
end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Button3.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
TicTacToe[1,3] := LastPlayer;
end;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
Button4.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
TicTacToe[2,1] := LastPlayer;
end;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
Button5.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
TicTacToe[2,2] := LastPlayer;
end;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
Button6.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
TicTacToe[2,3] := LastPlayer;
end;
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
Button7.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
TicTacToe[3,1] := LastPlayer;
end;
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
Button8.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
TicTacToe[3,2] := LastPlayer;
end;
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
Button9.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
TicTacToe[3,3] := LastPlayer;
end;
end;

end.
PS: Ich weiß, ich faules Schwein hab die case-Befehle direkt kopiert (mit kommentaren), aber... naja, sollte ja nicht das Hindernis sein.

TicTacToe[1,1] := LastPlayer; und genau da tritt die Fehlermeldung auf "Konstantenausdruck erwartet... übrigens bei allen Befehlen dieser Art.
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#19

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

  Alt 23. Sep 2004, 13:41
Zitat von malo:
Ich hab jetzt mal das oberste weggelassen und nur alles ab var reinkopiert

procedure TForm1.FormCreate(Sender: TObject);
begin
//..
LastPlayer:=0;

end;
damit sollte dein problem gelöst sein!
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#20

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

  Alt 23. Sep 2004, 13:41
Du hast die Zeile eins zu weit oben eingefügt, das Case muss ja erstmal durch end; abgeschlossenwerden:
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;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 20:03 Uhr.
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