![]() |
Probleme bei TicTacToe-Programm
servus jungs :)
ich habe mal eine frage, ich programmiere gerade TicTacToe :D im prinzip ganz leicht nur mein problem ist folgendes :( wenn ich das spiel starte, dann kann spieler 1 ein "X" machen und dann spieler 2 im nächsten button ein "O" der nächste button jedoch wird wieder mit "O" deklariert und das geht solange bis alle 9 button ein "O" haben, wie kann ich die beheben :(
Delphi-Quellcode:
danke schonmal im vorraus :)
var
Form1: TForm1; player,ps1,ps2 : integer; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin showmessage('Spieler 1 startet'); player:=1; ps1 := 0; ps2 := 0; end; procedure TForm1.Button2Click(Sender: TObject); begin if player =1 then begin player:= 2; Button2.Caption := ('X'); ps1:=1; end else if player =2 then begin Button2.Caption := ('O'); ps2:=1; end else showmessage('Spieler' + IntToStr(player) + 'Gibt es nicht!'); end; procedure TForm1.Button3Click(Sender: TObject); begin if player =1 then begin player:= 2; Button3.Caption := ('X'); ps1:=ps1+2; end else if player =2 then begin Button3.Caption := ('O'); ps2:=ps2+2; end else showmessage('Spieler' + IntToStr(player) + 'Gibt es nicht!'); end; procedure TForm1.Button4Click(Sender: TObject); begin if player =1 then begin player:= 2; Button4.Caption := ('X'); ps1:=ps1+3; end else if player =2 then begin Button4.Caption := ('O'); ps2:=ps2+3; end else showmessage('Spieler' + IntToStr(player) + 'Gibt es nicht!'); end; procedure TForm1.Button5Click(Sender: TObject); begin if player =1 then begin player:= 2; Button5.Caption := ('X'); ps1:=ps1+4; end else if player =2 then begin Button5.Caption := ('O'); ps2:=ps2+4; end else showmessage('Spieler' + IntToStr(player) + 'Gibt es nicht!'); end; procedure TForm1.Button6Click(Sender: TObject); begin if player =1 then begin player:= 2; Button6.Caption := ('X'); ps1:=ps1+5; end else if player =2 then begin Button6.Caption := ('O'); ps2:=ps2+5; end else showmessage('Spieler' + IntToStr(player) + 'Gibt es nicht!'); end; procedure TForm1.Button7Click(Sender: TObject); begin if player =1 then begin player:= 2; Button7.Caption := ('X'); ps1:=ps1+6; end else if player =2 then begin Button7.Caption := ('O'); ps2:=ps2+6; end else showmessage('Spieler' + IntToStr(player) + 'Gibt es nicht!'); end; procedure TForm1.Button8Click(Sender: TObject); begin if player =1 then begin player:= 2; Button8.Caption := ('X'); ps1:=ps1+7; end else if player =2 then begin Button8.Caption := ('O'); ps2:=ps2+7; end else showmessage('Spieler' + IntToStr(player) + 'Gibt es nicht!'); end; procedure TForm1.Button9Click(Sender: TObject); begin if player =1 then begin player:= 2; Button9.Caption := ('X'); ps1:=ps1+8; end else if player =2 then begin Button9.Caption := ('O'); ps2:=ps2+8; end else showmessage('Spieler' + IntToStr(player) + 'Gibt es nicht!'); end; procedure TForm1.Button10Click(Sender: TObject); begin if player =1 then begin player:= 2; Button10.Caption := ('X'); ps1:=ps1+9; end else if player =2 then begin Button10.Caption := ('O'); ps2:=ps2+9; end else showmessage('Spieler' + IntToStr(player) + 'Gibt es nicht!'); end; procedure TForm1.BitBtn1Click(Sender: TObject); begin Randomize; Button2.Caption:=''; Button3.Caption:=''; Button4.Caption:=''; Button5.Caption:=''; Button6.Caption:=''; Button7.Caption:=''; Button8.Caption:=''; Button9.Caption:=''; Button10.Caption:=''; player:=random(2)+1; showmessage('Spieler' +IntToStr(player) +'Beginnt!'); end; end. achja und das nächste problem ist wenn spieler 1 oder 2 drei in eienr reihe bzw diagonal belegt hat und das resultat daras dann der sieg ist wie das der computer erkennt und ich das ausgebe :( mfg sandy :) |
AW: Probleme bei TicTacToe-Programm
Hallo,
so wie es aussieht schreibst du deine Variable "Player" nicht mehr auf Player 1 um wenn Player 2 aktiv ist. Das fehlt bei jedem Button! Als Beispiel mal hier Button3
Delphi-Quellcode:
if player =2 then
begin player := 1; //<== Das hier fehlt!! Button3.Caption := ('O'); ps2:=ps2+2; end |
AW: Probleme bei TicTacToe-Programm
stimmt, das war mein fehler :)
danke dir :) jetzt fehlt mir nur noch eine antwort auf meine zweite frage :P weiß jemand daraf die antwort? :) |
AW: Probleme bei TicTacToe-Programm
Hier wird schätzungsweise jede Woche ein TicTacToe Spiel programmiert. Bemühe einfach mal die Suche.
|
AW: Probleme bei TicTacToe-Programm
Zitat:
Warum machst Du es nicht ganz einfach..
Delphi-Quellcode:
Hättest Du das Spielfeld als Array hinterlegt ginge das natürlich einfacher.
if Button1.caption=Button2.Capion and Button2.caption=Button3.caption then....
Gruß K-H p.S. hier gibt es auch ein paar Mädels ;-) |
AW: Probleme bei TicTacToe-Programm
stimmt :D naja trotzdem danke :)
sry ich kann aber nicht bei den anderen mitteilungen mein problem finden :( wenn ich gewinne, dann möchte ich eine showmessage('Du hast gewonne'); wie mache ich das? :( |
AW: Probleme bei TicTacToe-Programm
Zitat:
Delphi-Quellcode:
Gruß
if gewonnen then showmessage('gewonnen');
K-H Wie Du an Gewonnen kommst ist Dir klar? |
AW: Probleme bei TicTacToe-Programm
Noch ein/zwei Tipps:
-
Delphi-Quellcode:
sollte niemals auftreten, denn du setzt die "Player"-Variable und wenn due sie immer nur auf 1 und 2 Setzt, dann kann dieser Code garantiert niemals aufgerufen werden
else showmessage('Spieler' + IntToStr(player) + 'Gibt es nicht!');
- doppeltet/mehrfacher Code ... die Buttonereignisse haben einen Sender (darin steht rein zufällig der Button, welcher das Ereignis gesendet hat), welchen man nutzen kann. Dazu gibt es notfalls noch das .Tag-Attribut, wo man Zahlen von 1 bis 9 reinmachen könnte .... und schwups kann man aus 9-Buttonereignissen einen Einzigen machen, für alle neun Buttons. - was passiert, wenn ein Player auf einen Button klickt, wo vorher schon der andere Player draufgedrückt hat? |
AW: Probleme bei TicTacToe-Programm
Zitat:
|
AW: Probleme bei TicTacToe-Programm
alle möglichen Gewinnmöglichkeiten abfragen und wenn Eine stimmt, dann hat man gewonnen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:26 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