AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Kleines Problem bei Tic Tac Toe Spiel
Thema durchsuchen
Ansicht
Themen-Optionen

Kleines Problem bei Tic Tac Toe Spiel

Ein Thema von Jay15 · begonnen am 27. Jan 2009 · letzter Beitrag vom 10. Jun 2010
Antwort Antwort
Jay15

Registriert seit: 27. Jan 2009
12 Beiträge
 
#1

Kleines Problem bei Tic Tac Toe Spiel

  Alt 27. Jan 2009, 15:15
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.


http://www.bilder-space.de/thumb/27....Wo8DOwoSPB.jpg

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.
  Mit Zitat antworten Zitat
craash

Registriert seit: 23. Nov 2008
Ort: Mühlacker
79 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Kleines Problem bei Tic Tac Toe Spiel

  Alt 27. Jan 2009, 15:31
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
uses Delphi 5 Std. / TurboDelphi 2006
  Mit Zitat antworten Zitat
Jay15

Registriert seit: 27. Jan 2009
12 Beiträge
 
#3

Re: Kleines Problem bei Tic Tac Toe Spiel

  Alt 27. Jan 2009, 16:06
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
  Mit Zitat antworten Zitat
Jay15

Registriert seit: 27. Jan 2009
12 Beiträge
 
#4

Re: Kleines Problem bei Tic Tac Toe Spiel

  Alt 27. Jan 2009, 18:44
Ich hab es jetzt doch geschafft! Hab einfach einen else-Befehl genommen.

Delphi-Quellcode:
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;
Ich würde jetzt gerne noch etwas wissen. Wie kann ich verhindern, dass nachdem das Spiel zuende ist noch ein Button gedrückt wird?
  Mit Zitat antworten Zitat
Berlinermauer

Registriert seit: 3. Okt 2007
Ort: 0x0000
213 Beiträge
 
Delphi 7 Personal
 
#5

Re: Kleines Problem bei Tic Tac Toe Spiel

  Alt 27. Jan 2009, 18:48
Delphi-Quellcode:
if SpielZuende = true; then
begin
Buttoname.Enabled := false;
Buttonname2.Enabled := false;
end;
Marc S.
  Mit Zitat antworten Zitat
Benutzerbild von Forlan
Forlan

Registriert seit: 17. Feb 2008
Ort: Herford
265 Beiträge
 
Delphi 2007 Architect
 
#6

Re: Kleines Problem bei Tic Tac Toe Spiel

  Alt 27. Jan 2009, 18:58
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
Marcel
マルセル
www.youtube.com/beethoven1990
  Mit Zitat antworten Zitat
Benutzerbild von Jakob Ullmann
Jakob Ullmann

Registriert seit: 17. Feb 2007
218 Beiträge
 
Lazarus
 
#7

Re: Kleines Problem bei Tic Tac Toe Spiel

  Alt 27. Jan 2009, 19:09
Stimmt, also zumindest würde eine Prozedur für alle Buttons ausreichen. Such mal nach FindComponent und Type-Cast.
Jakob
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#8

Re: Kleines Problem bei Tic Tac Toe Spiel

  Alt 27. Jan 2009, 23:11
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.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Jay15

Registriert seit: 27. Jan 2009
12 Beiträge
 
#9

Re: Kleines Problem bei Tic Tac Toe Spiel

  Alt 28. Jan 2009, 15:03
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!
  Mit Zitat antworten Zitat
N-Visible92

Registriert seit: 9. Mär 2010
1 Beiträge
 
Delphi 7 Personal
 
#10

AW: Kleines Problem bei Tic Tac Toe Spiel

  Alt 10. Jun 2010, 18:50
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.
  Mit Zitat antworten Zitat
Antwort Antwort


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 00:57 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