AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Dann setz einen Haltepunkt in die OnClick-Routine des Labels und führe dann schrittweise aus. Irgendeine Bedingung scheint ja zuzutreffen, die das nicht sollte.
@NG: Caption ist doch bereits gesetzt, ich glaube kaum, dass das am Zeichnen liegt. |
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Also es funktioniert ja so wie es soll.
Wenn ich jetzt in einer Reihe schon 2 X stehen habe und die mit einem zum Gewinn vervollständige dann sagt er ich habe gewonnen... soll er ja auch aber er müsste ja wenigstens voher noch ein X schreiben damit manns auch sehen kann |
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Achso, dann habe ich das falsch verstanden. Somit nehme ich das Gesagte zurück, der General hat recht, mach das mal so.
|
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Das Label wird dann neu gezeichnet.
Wenn du die Caption des Labels änderst, dann wird eine Windows-Message versandt, dass das Label sich neuzeichnen soll, weil sich sein Aussehen geändert hat. Es kann aber sein, dass die Message erst ankommt NACHDEM du angezeigt hast, dass Spieler X gewonnen hat. Also zeichnest du das Label mit Repaint manuell neu, damit es auf jeden Fall noch das O oder X anzeigt bevor die Gewinn-Meldung kommt. |
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Jop, hab ich.... jetzt blinkt das X nur kurz auf und geht wieder weg.... es soll danach auch noch stehen bleiben... das blinkt so schnell dass man es kaum sieht
aber das kommt schon nahe! |
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Repaint ;)
@NG: Wie schon gesagt, ich hatte das falsch verstanden und einen logischen Fehler vermutet, tatsächlich wird wohl nur einfach das Label nicht aktualisiert. [edit] Zitat:
|
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Lies was ich geschrieben habe ;)
Naja.. Wenn du gewonnen hast, setzt du (warum auch immer) das Label ja wieder auf ''
Delphi-Quellcode:
if CheckForWin(GBuffer) then
begin Label2.Caption := ''; // <-- das muss weg |
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Zitat:
Zitat:
|
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Jau jetzt läufts.... was würde ich nur ohne Euch und eure Geduld tun?!
Ihr seid einfach die Besten... :thumb::thumb::thumb: |
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Delphi-Quellcode:
if GPlayer = 1 then
begin Label12.Caption := (Spieler1.Text + ' ist am Zug!'); end else Label12.Caption := (Spieler2.Text + ' ist am Zug!'); Also wie Ihr vielleicht seht will ich jetzt, dass die einzelnen Spieler Namen bekommen. Ich habe versucht es in die Form zu schreiben, aber das Label zeigt dann nur "ist am Zug" an.... also fehlen die NAmen die in das Edit-Feld eingetragen sind und er wechselt die Namen dann auch nicht... muss ich es vielleicht mit in den ChangePlayer schreiben? also das ist mir jetzt grad in diesem Moment eingefallen also naja ich probiere es mal.... wenn das falsch ist dann schreibt es jetzt schon bitte |
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
:|geht nicht
|
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Delphi-Quellcode:
Dann in ChangePlayer:
type
TForm1 = class(TForm) ... private ... FAktuellerSpieler: string; //<-- diese Zeile ergänzen. ...
Delphi-Quellcode:
FAktuellerSpieler := Spieler1.Text; //oder halt Spieler2.Text, je nachdem, wer dran ist.
Und die Ausgabe des aktiven Spielers:
Delphi-Quellcode:
Label12.Caption := FAktuellerSpieler + ' ist am Zug.';
|
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Danke. Habe es anders lösen können.
|
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Bei was anderem könnt ich nochmal einen kleinen Schupser gebrauchen.
ich habe jetzt vor, die Spielzüge zu zählen. Erstmal insgesamt und später vielleicht für jeden Spieler einzelnd. Habt ihr einen kleinen Denkanstoß? |
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
jedesmal, wenn nen label geklickt wird, ne variable hochzählen :D
|
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Aber eine globale ;)
|
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
@Deddyh
daran hab ich gedacht :thumb:
Delphi-Quellcode:
Er Zählt nur den ersten Klick und dann bleibt er auf 1 stehen?!
procedure TForm1.Label6Click(Sender: TObject);
begin if IsFieldEmpty(Label6.Caption) then begin Label6.Caption := WriteToField(GPlayer); Label6.Repaint; MakeArray; if CheckForWin(GBuffer) then begin Label12.Caption := ('Spieler ' + IntToStr(GPlayer)+' hat gewonnen!'); GPlayer := 1; end else begin ChangePlayer; Label13.Caption := IntToStr(i+1); end; end; end; Das ist eigentlich ja so einfach, sodass ich wieder Koplizierter Denke als es ist! |
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Hallo,
Du musst i erhöhen. Nicht nur das erhöhte anzeigen:
Delphi-Quellcode:
i := i + 1; // oder inc(i);
Label13.Caption := IntToStr(i); |
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
also praktisch so
Delphi-Quellcode:
sag ich ja... wieder so einfach und zu kompliziert gedacht
end else
begin ChangePlayer; i := i+1; Label13.Caption := IntToStr(i+1); end; oh,. hab dein quelltext über sehen hehe^^ |
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Delphi-Quellcode:
Nur IntToStr(i). i ist ja dann schon um 1 größer.
end else
begin ChangePlayer; i := i+1; Label13.Caption := IntToStr(i); end; |
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Wollte gerade sagen dass er von 2 anfängt zu zählen aber das hat sich ja mit dem letzten Beitrag auch erledigt:-D
|
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Wie mache ich es am Besten wenn ich die Klicks der SPieler einzelnd Zählen lasse?
|
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Sei mir nicht böse, aber langsam wird es lächerlich. 2 Spieler, 2 Variablen, da kann man drauf kommen, oder?
|
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Hmmm.. macht Sinn. Ich lass Euch für Heute (Wie versprochen) in frieden.
|
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Guten Morgen!
Ich möchte jetzt den Klickzähler Stoppen, sobald ein Spieler gewonnen hat. habe es jetzt folgendermaßen:
Delphi-Quellcode:
Die Züge von Spieler 2 werden nicht mehr gezählt aber das von SPieler 1.... es soll ja aber gar nicht mehr gezählt werden... habt ihr eine Idee?
procedure TForm1.CountClick;
begin if GPlayer = 1 then begin i := i +1; Label14.Caption := IntToStr(i); end else j := j +1; Label13.Caption := IntToStr(j); if CheckForWin(GBuffer) = true then begin Exit; end; end; |
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
begin und end vergessen?
BTW: Du vergleichst ja schon wieder auf true :? |
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
upsiii^^ nicht böse sein Papa Deddyh:wink:
ich werds sofort ändern |
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Zitat:
Die Gewinnabfrage musst du einfach vor dem Aktualisieren der Labels machen. Ansonsten hat er ja gar nicht die Chance den Code vorzeitig zu verlassen.
Delphi-Quellcode:
procedure TForm1.CountClick;
begin if CheckForWin(GBuffer) then // nicht direkt auf true bzw false prüfen (wurde dir schon öfters nahe // gelegt) begin Exit; end; if GPlayer = 1 then begin i := i +1; Label14.Caption := IntToStr(i); end else begin j := j +1; Label13.Caption := IntToStr(j); // ohne Begin/End wird der Teil immer ausgeführt end; end; |
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Die Reihenfolge ist aber nicht das Entscheidende, sondern dass
Zitat:
|
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Alles klar jetzt gehts!
Ja das mit dem auf true prüfen da hatte ich grad nciht dran gedacht aber habs ja jetzt geändert. wegen der CheckForWin funktion..... warum funktioniert sie eigentlich wenn sie typisiert wurde und anders nicht? Zitat:
|
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
|
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Zitat:
Oder steh ich grad aufm Schlauch? :gruebel: Zitat:
|
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Was ich meinte: der eine Spieler wurde korrekt gezählt, der andere nicht. Das lag eben am fehlenden begin und end. Das ein exit am Ende einer Routine wenig Sinn macht und daher eine umgekehrte Reihenfolge besser ist sehe sogar ich ein :lol:
|
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Die du vorgeschlagen hast....
Delphi-Quellcode:
procedure TForm1.CountClick;
begin if CheckForWin(GBuffer) then begin Exit; end; if GPlayer = 1 then begin i := i +1; Label14.Caption := IntToStr(i); end else j := j +1; Label13.Caption := IntToStr(j); end; |
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Und Label13.Caption stimmt? Kann ja irgendwie nicht sein.
|
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Achtung!
Delphi-Quellcode:
=
if CheckForWin(GBuffer) then
begin Exit; end; if GPlayer = 1 then begin i := i +1; Label14.Caption := IntToStr(i); end else j := j +1; Label13.Caption := IntToStr(j);
Delphi-Quellcode:
if CheckForWin(GBuffer) then
begin Exit; end; if GPlayer = 1 then begin i := i +1; Label14.Caption := IntToStr(i); end else j := j +1; Label13.Caption := IntToStr(j); // nicht mehr im ELSE (!) |
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Und es fehlt immernoch das Begin und End :D
Delphi-Quellcode:
@Neutral: Darauf hamm wir schon des öfteren hingewiesen
procedure TForm1.CountClick;
begin if CheckForWin(GBuffer) then begin Exit; end; if GPlayer = 1 then begin i := i +1; Label14.Caption := IntToStr(i); end else BEGIN // hier j := j +1; Label13.Caption := IntToStr(j); END // und hier end; |
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Ach mensch hab übersehen dass er mir den gewinner jetzt nicht mehr anzeigt... aber sonst isses schonmal richtig... also er hört ja jetzt koplett dann auf zu zählen wenn jemand gewonnen hat
|
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Langsam komme ich mir veralbert vor :roll:
|
AW: tic tac toe.... mal wieder:) versteh aufgabestellung nicht ganz
Wieso?
Das klappt doch jetzt... Nur dass ich jetzt nochmal was nachsehen muss. und dass er den gewinner nicht mehr anzeigt hatte ja nichts mit dem Begin und End zu tun. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:54 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