AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TicTacToe

Ein Thema von Tytomik · begonnen am 29. Mär 2011 · letzter Beitrag vom 27. Apr 2011
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von isilive
isilive

Registriert seit: 15. Okt 2008
Ort: Österreich
192 Beiträge
 
Delphi 2009 Professional
 
#11

AW: TicTacTow

  Alt 30. Mär 2011, 02:43
Falsche Foren-Kategorie!
Stefan
Jedoch kann die referenzbasierte Implementierung des Standard-Objektmodells in Kombination mit den komplexen syntaktischen Dereferenzierungsregeln bei einer objektorientierten API wie ein Stolperstein wirken.
  Mit Zitat antworten Zitat
25. Apr 2011, 20:04
Dieses Thema wurde am "25. Apr 2011, 21:04 Uhr" von "mkinzler" aus dem Forum "Neuen Beitrag zur Code-Library hinzufügen" in das Forum "Object-Pascal / Delphi-Language" verschoben.
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#13

AW: TicTacTow

  Alt 26. Apr 2011, 08:15
Im Private-Bereich wäre die Methode eigentlich besser aufgehoben.
Und das z.B. die OnClick-Methode ganze 9 mal redundant vorkommt, ist da nicht so schlimm?!

(War ja klar, das wieder so ein Thread kommen würde. Ich habe erst vor Tagen das Spiel selbst mal kurz dahinprogrammiert. Allerdings wollte ich nur mal den NegaMax-Algorithmus für die "KI" ausprobieren )
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
sHoXx
(Gast)

n/a Beiträge
 
#14

AW: TicTacToe

  Alt 26. Apr 2011, 08:21
[EDIT]
Zitat:
Und das z.B. die OnClick-Methode ganze 9 mal redundant vorkommt, ist da nicht so schlimm?!
[/EDIT]

außerdem würde ich dir empfehlen allen buttons das selbe Ereignis zuzuweisen:

Code:

procedure TForm1.Button1Click(Sender: TObject);
begin
  Druecken;
  If t = 1 then
  begin
    TButton(Sender).Caption := 'x';
  end;

  If t = 2 then
  begin
    TButton(Sender).Caption := 'o'
    t := 0;
  end;
end;
statt 9 mal der selbe Code hast du dann 1 mal Code für 9 Buttons

ist nicht getestet nur eben hingeschrieben sollte aber funktionieren

Geändert von sHoXx (26. Apr 2011 um 08:23 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: TicTacToe

  Alt 26. Apr 2011, 08:31
Oder so (allerdings ohne großartige Fehlerbehandlung):
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const
  Captions: array[1..2] of Char = ('x', 'o');
begin
  Druecken;
  (Sender as TButton).Caption := Captions[t];
  if t > 1 then
    t := 0;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#16

AW: TicTacToe

  Alt 26. Apr 2011, 08:48
Da es in diesem Spiel nur zwei Spieler gibt, könnte man T auch als boolesche Variable deklarieren. Diese muss man pro Zug dann nur invertieren und erspart sich so die doppelte Abfrage, ob T einen bestimmten Wert hat oder nicht. Und dann bitte auch nicht global deklarieren
Beispiel anhand von DeddyHs Vorschlag:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const
  Captions: Array[Boolean] of Char = ('x', 'o');
begin
  T := not T; // Druecken;
  (Sender as TButton).Caption := Captions[T];
end;
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
roboter202

Registriert seit: 6. Mär 2011
98 Beiträge
 
Delphi 6 Professional
 
#17

AW: TicTacToe

  Alt 27. Apr 2011, 10:35
Moin,

Also ich denke nicht das er nach weiteren Lösungsansätzen gefragt hat sondern vielmehr um eine Lösung des Problems gebeten hat.

Hier die LÖSUNG:

Zitat:
procedure TForm1.Drueken;
und unten
Zitat:
procedure TForm1.Drueken;// Eigene procedure, es soll gezählt werden
wenn man das mal vergleicht mit

Zitat:
procedure Button9Click(Sender: TObject);
und
Zitat:
procedure TForm1.Button9Click(Sender: TObject);
Fällt jeden doch wohl schnell ein unterschied auf.

Wenn der Inhalt der Procedure unten definiert wird muss TForm1 angegeben werden da es sich bei der Procedure um eine Procedure dieser TForm handelt.
Denn es könnte ja auch mehrere TForms geben.

Oben jedoch ist das TForm1. völlig sinnlos da sie natürlich zu dieser gehört sonst stände sie ja nicht bei den Procedures der TForm!

RICHTIG IST :

Oben muss es :
Delphi-Quellcode:
   
    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 Drueken;
  private
    { Private declarations }
  public
    { Public declarations }
  end;
heißen und unten muss alles so bleiben.

Wie das keinem auffalen konnte
Christian
i := 0 ; While i = 0 do beep ;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: TicTacToe

  Alt 27. Apr 2011, 10:41
Dann schau Dir einmal die Beiträge 8 - 10 an. Wie Dir das nicht auffallen konnte
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
roboter202

Registriert seit: 6. Mär 2011
98 Beiträge
 
Delphi 6 Professional
 
#19

AW: TicTacToe

  Alt 27. Apr 2011, 10:43
Ja aber das verschieben der Procedure in den Public bereich ist totaler Schwachsinn
Christian
i := 0 ; While i = 0 do beep ;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: TicTacToe

  Alt 27. Apr 2011, 10:44
Das steht in Beitrag 9 und 10. Liest Du auch, was andere schreiben?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  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 15:14 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