![]() |
Kleines Problem bei Tic Tac Toe Spiel
Hallo Zusammen,
ich habe ein Problem mit meinem Tic Tac Toe Spiel. Soweit funktioniert es eigentlich ganz gut, aber man muss bislang immer über zwei RadioButtons den Spieler wechseln. Ich möchte es allerdings so hin bekommen, dass man über die RadioButtons nur noch wählt welcher Spieler beginnen soll und der Spieler wechsel automatisch funktioniert. Wäre echt nett, wenn mir jemand helfen kann. ![]() ![]()
Delphi-Quellcode:
unit Unit2;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm2 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Button7: TButton; Button8: TButton; Button9: TButton; Button10: TButton; GroupBox1: TGroupBox; Button11: TButton; GroupBox2: TGroupBox; GroupBox3: TGroupBox; RadioButton1: TRadioButton; RadioButton2: TRadioButton; Label1: TLabel; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button7Click(Sender: TObject); procedure Button8Click(Sender: TObject); procedure Button9Click(Sender: TObject); procedure Button11Click(Sender: TObject); procedure Gewinner; procedure Button10Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form2: TForm2; implementation {$R *.dfm} //Buttons procedure TForm2.Button1Click(Sender: TObject); begin if RadioButton1.Checked=True then begin Button1.Caption:='X'; Button1.Enabled:=False; end; if RadioButton2.Checked=True then begin Button1.Caption:='O'; Button1.Enabled:=False; end; Gewinner; end; procedure TForm2.Button2Click(Sender: TObject); begin if RadioButton1.Checked=True then begin Button2.Caption:='X'; Button2.Enabled:=False; end; if RadioButton2.Checked=True then begin Button2.Caption:='O'; Button2.Enabled:=False; end; Gewinner; end; procedure TForm2.Button3Click(Sender: TObject); begin if RadioButton1.Checked=True then begin Button3.Caption:='X'; Button3.Enabled:=False; end; if RadioButton2.Checked=True then begin Button3.Caption:='O'; Button3.Enabled:=False; end; Gewinner; end; procedure TForm2.Button4Click(Sender: TObject); begin if RadioButton1.Checked=True then begin Button4.Caption:='X'; Button4.Enabled:=False; end; if RadioButton2.Checked=True then begin Button4.Caption:='O'; Button4.Enabled:=False; end; Gewinner; end; procedure TForm2.Button5Click(Sender: TObject); begin if RadioButton1.Checked=True then begin Button5.Caption:='X'; Button5.Enabled:=False; end; if RadioButton2.Checked=True then begin Button5.Caption:='O'; Button5.Enabled:=False; end; Gewinner; end; procedure TForm2.Button6Click(Sender: TObject); begin if RadioButton1.Checked=True then begin Button6.Caption:='X'; Button6.Enabled:=False; end; if RadioButton2.Checked=True then begin Button6.Caption:='O'; Button6.Enabled:=False; end; Gewinner; end; procedure TForm2.Button7Click(Sender: TObject); begin if RadioButton1.Checked=True then begin Button7.Caption:='X'; Button7.Enabled:=False; end; if RadioButton2.Checked=True then begin Button7.Caption:='O'; Button7.Enabled:=False; end; Gewinner; end; procedure TForm2.Button8Click(Sender: TObject); begin if RadioButton1.Checked=True then begin Button8.Caption:='X'; Button8.Enabled:=False; end; if RadioButton2.Checked=True then begin Button8.Caption:='O'; Button8.Enabled:=False; end; Gewinner; end; procedure TForm2.Button9Click(Sender: TObject); begin if RadioButton1.Checked=True then begin Button9.Caption:='X'; Button9.Enabled:=False; end; if RadioButton2.Checked=True then begin Button9.Caption:='O'; Button9.Enabled:=False; end; Gewinner; end; //Gewinner procedure TForm2.Gewinner; begin //Kombi1 if (Button1.Caption='X') and (Button2.Caption='X') and (Button3.Caption='X') then begin Label1.Caption:='Spieler X'; end; if (Button1.Caption='O') and (Button2.Caption='O') and (Button3.Caption='O') then begin Label1.Caption:='Spieler O'; end; //Kombi2 if (Button4.Caption='X') and (Button5.Caption='X') and (Button6.Caption='X') then begin Label1.Caption:='Spieler X'; end; if (Button4.Caption='O') and (Button5.Caption='O') and (Button6.Caption='O') then begin Label1.Caption:='Spieler O'; end; //Kombi3 if (Button7.Caption='X') and (Button8.Caption='X') and (Button9.Caption='X') then begin Label1.Caption:='Spieler X'; end; if (Button7.Caption='O') and (Button8.Caption='O') and (Button9.Caption='O') then begin Label1.Caption:='Spieler O'; end; //Kombi4 if (Button1.Caption='X') and (Button4.Caption='X') and (Button7.Caption='X') then begin Label1.Caption:='Spieler X'; end; if (Button1.Caption='O') and (Button4.Caption='O') and (Button7.Caption='O') then begin Label1.Caption:='Spieler O'; end; //Kombi5 if (Button2.Caption='X') and (Button5.Caption='X') and (Button8.Caption='X') then begin Label1.Caption:='Spieler X'; end; if (Button2.Caption='O') and (Button5.Caption='O') and (Button8.Caption='O') then begin Label1.Caption:='Spieler O'; end; //Kombi6 if (Button3.Caption='X') and (Button6.Caption='X') and (Button9.Caption='X') then begin Label1.Caption:='Spieler X'; end; if (Button3.Caption='O') and (Button6.Caption='O') and (Button9.Caption='O') then begin Label1.Caption:='Spieler O'; end; //Kombi6 if (Button1.Caption='X') and (Button5.Caption='X') and (Button9.Caption='X') then begin Label1.Caption:='Spieler X'; end; if (Button1.Caption='O') and (Button5.Caption='O') and (Button9.Caption='O') then begin Label1.Caption:='Spieler O'; end; //Kombi7 if (Button3.Caption='X') and (Button5.Caption='X') and (Button7.Caption='X') then begin Label1.Caption:='Spieler X'; end; if (Button3.Caption='O') and (Button5.Caption='O') and (Button7.Caption='O') then begin Label1.Caption:='Spieler O'; end; end; //New Game procedure TForm2.Button10Click(Sender: TObject); begin Button1.Caption:=''; Button2.Caption:=''; Button3.Caption:=''; Button4.Caption:=''; Button5.Caption:=''; Button6.Caption:=''; Button7.Caption:=''; Button8.Caption:=''; Button9.Caption:=''; Label1.Caption:=''; end; //Exit procedure TForm2.Button11Click(Sender: TObject); begin Close; end; end. |
Re: Kleines Problem bei Tic Tac Toe Spiel
hi,
vll kannst eine boolean-variable angeben die dann bei jeder aktion geändert und wieder an den andern client zurückgeschickt wird. je nachdem wird eben angezeigt dass du an der reihe bist wenn die variable true/false ist. mfg |
Re: Kleines Problem bei Tic Tac Toe Spiel
Hi,
tut mir leid aber ich versteh nicht so ganz wie ich das machen soll. Kannst du mir das bitte mal genauer erklären? MfG |
Re: Kleines Problem bei Tic Tac Toe Spiel
Ich hab es jetzt doch geschafft! Hab einfach einen else-Befehl genommen.
Delphi-Quellcode:
Ich würde jetzt gerne noch etwas wissen. Wie kann ich verhindern, dass nachdem das Spiel zuende ist noch ein Button gedrückt wird?
procedure TForm2.Button1Click(Sender: TObject);
begin if RadioButton1.Checked=True then begin Button1.Caption:='X'; Button1.Enabled:=False; RadioButton2.SetFocus; end else begin Button1.Caption:='O'; Button1.Enabled:=False; RadioButton1.SetFocus; end; Gewinner; end; |
Re: Kleines Problem bei Tic Tac Toe Spiel
Delphi-Quellcode:
if SpielZuende = true; then
begin Buttoname.Enabled := false; Buttonname2.Enabled := false; end; |
Re: Kleines Problem bei Tic Tac Toe Spiel
du hast dir das Spiel aber sehr kompliziert programmiert^^
Das ginge wohl auch übersichtlicher und einfacher... Tic-Tac Toe war auch eines meiner ersten Projekte damals... Und wie gesagt, eigene Prozeduren und Funktionen können einen das ganze wirklich erleichtern ;) |
Re: Kleines Problem bei Tic Tac Toe Spiel
Stimmt, also zumindest würde eine Prozedur für alle Buttons ausreichen. :roll: Such mal nach FindComponent und Type-Cast.
|
Re: Kleines Problem bei Tic Tac Toe Spiel
Auch wenn es Dir jetzt nicht so dolle hilft, kannst du dir mal mein Mini Tic Tac Toe im OS - Bereich ansehen.
Vill. bekommst du daraus neue Ideen. Ich glaube soga ich habe das Teil durchkommentiert. |
Re: Kleines Problem bei Tic Tac Toe Spiel
Es funktioniert jetzt alles. Ich werde mir aber trotzdem mal ein anderes Tic Tac Toe Spiel ansehen. Vielen Dank für eure Antworten und Tipps! :thumb:
|
AW: Kleines Problem bei Tic Tac Toe Spiel
Könnte ich bitte mal einen Screenshot von der ganzen Form bekommen?
Das würde mir sehr wieterhelfen, da ich auch ein Tic Tac Toe spiel programmiere. Der obere Link funktioniert leider nicht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:53 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