![]() |
TicTacToe
hallo,
Ich habe angefangen mit TicTacToe zu programmieren. Aber ohne zu gucken wer gewonnen hat sondern nur auf Buttons x und o. Aber jedes mal wen ich es öffnen will zeigt es mir eine Nachricht an !Expected '=' but';'found! und das wars, da ich noch ein Einsteiger bin weiß ich nicht wo der fehler ist, könnt ihr mal bitte rübergucken?
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 TForm1.Drueken; private { Private declarations } public { Public declarations } end; var Form1: TForm1; t: Integer;// variable zum Zählen implementation {$R *.dfm} procedure TForm1.Drueken;// Eigene procedure, es soll gezählt werden begin t:=t+1; end; procedure TForm1.Button1Click(Sender: TObject); begin Drueken; If t=1 then button1.caption 'x';// wenn t gleich 1 ist soll auf dem button x stehen If t=2 then button1.caption ('o') and t=0;// wenn t gleich 2 ist soll auf dem button o stehen //und es wieder auf 0gebracht werden end; procedure TForm1.Button2Click(Sender: TObject); begin Drueken; If t=1 then button2.caption ('x'); If t=2 then button2.caption ('o') and t=0; end; procedure TForm1.Button3Click(Sender: TObject); begin Drueken; If t=1 then button3.caption ('x'); If t=2 then button3.caption ('o') and t=0; end; procedure TForm1.Button4Click(Sender: TObject); begin Drueken; If t=1 then button4.caption ('x'); If t=2 then button4.caption ('o') and t=0; end; procedure TForm1.Button5Click(Sender: TObject); begin Drueken; If t=1 then button5.caption ('x'); If t=2 then button5.caption ('o') and t=0; end; procedure TForm1.Button6Click(Sender: TObject); begin Drueken; If t=1 then button6.caption ('x'); If t=2 then button6.caption ('o') and t=0; end; procedure TForm1.Button7Click(Sender: TObject); begin Drueken; If t=1 then button7.caption ('x'); If t=2 then button7.caption ('o') and t=0; end; procedure TForm1.Button8Click(Sender: TObject); begin Drueken; If t=1 then button8.caption ('x'); If t=2 then button8.caption ('o') and t=0; end; procedure TForm1.Button9Click(Sender: TObject); begin Druecken; If t=1 then button9.caption ('x'); If t=2 then button9.caption ('o') and t=0; end; Danke |
AW: TicTacTow
Hallo,
Du musst die Caption zuweisen!
Delphi-Quellcode:
// Falsch
If t=1 then button2.caption ('x'); // Richtig (Einrückung kann auch nicht schaden) If t=1 then button2.caption := 'x'; |
AW: TicTacTow
Und:
Delphi-Quellcode:
was soll das sein? Soll
If t=2 then button2.caption ('o') and t=0;
Delphi-Quellcode:
eine Zuweisung oder eine zweite Bedingung sein?
t=0
|
AW: TicTacTow
Mehre Anweisungen, die nach nach einer If-Prüfung ausgeführt werden sollen, in einen Anweisungsblock setzen.
Also statt
Delphi-Quellcode:
.
if t=2 then button1.caption ('o') and t=0;
so
Delphi-Quellcode:
Zuweisungen mit := also entgültig dann so
If t=2 then
begin button1.caption ('o'); t=0; end;
Delphi-Quellcode:
PS: Im Quelltext-Kommentar steht ja, was er erreichen will.
If t=2 then
begin button1.caption := 'o'; t := 0; end; PPS: Zuweisungs- und Vergleichsoperator (=, :=) und Anweisungsblöcke sind absolutes Basiswissen. Unbedingt nochmal mit den Grundlagen (Operatoren, Schlüsselwörter usw.) beschäftigen! |
AW: TicTacTow
Danke ich habe das auch noch geändert aber ich glaube der fehler ist
bei meiner eigene procedure. Kann das sein? Er zeigt immer noch den gleichen Fehler an. |
AW: TicTacTow
Ist das im ersten Beitrag dein KOMPLETTER Source aus der Form1? Wenn ja, wo ist der Header?
Delphi-Quellcode:
?
unit Form1;
interface uses ... type TForm1 = class(TForm) ... |
AW: TicTacTow
Nein der ist obendran aber den wollte ich nicht dazu tun.
|
AW: TicTacTow
Nochwas:
Es sollte so aussehen:
Delphi-Quellcode:
Du solltest dir mal irgendwo die Grundlagen (vor allem Syntax und Unit-/Programmaufbau!procedure Button8Click(Sender: TObject); procedure Button9Click(Sender: TObject); private { Private declarations } public procedure Drueken; end; |
AW: TicTacTow
Warum sollte die Prozedur Drueken öffentlich sein. Wenn man mal davon absieht das drücken mit ck geschrieben wird. ;) Des weiteren warte ich noch auf eine Beantwortung meiner Frage.
|
AW: TicTacTow
Ja stimmt du hast recht. Im Private-Bereich wäre die Methode eigentlich besser aufgehoben.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:45 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