Ich habe folgendes Problem.
Bin gerade daran ein VierGewinnt Programm in Java zu schreiben, hab dazu eine GUI mit Swing erstellt und eine KI mit einem alpha-beta Algorithmus.
es folg ein kurzer schematischer auszug aus dem hauptprogramm:
Ablauf eines Spiels:
das problem: nach der eingabe eines zuges durch den benutzer, wird das feld nicht neu gezeichnet. Das heisst die methoden und alles werden aufgerufen, aber es tut sich nichts. die neue spielsituation erscheint erst, wenn auch der computer gezogen hat! und da das bei hoher suchtiefe ziemlich lange dauert, ist das ein ernstes Problem.
Zusammenfassend:
wenn ich als benutzer einen stein in spalte 3 werfen will, erscheint dieser erst mit dem nächsten Zug des Computers, und das kann ziemlich lange dauern.
weiss jemand, wie ich erzwingen kann, das die paint() methode auch wirklich das feld neu zeichnet, bevor weiter gespielt wird?
ich habe schon sehr viel probiert, spricht überall sleeps eingefügt. hat nichts gebracht.
Ich programmiere unter linux mit java 1.5. Falls noch weitere angaben nötig sind, oder ganze teile des codes erwünscht sind, werde ich die gerne posten, aber ich finde es immer abschreckend, wenn in einem thread gleich ma 1000 code-zeilen folgen.
Freue mich über jede antwort[/code]
Bin gerade daran ein VierGewinnt Programm in Java zu schreiben, hab dazu eine GUI mit Swing erstellt und eine KI mit einem alpha-beta Algorithmus.
es folg ein kurzer schematischer auszug aus dem hauptprogramm:
Ablauf eines Spiels:
Code:
Stein setzen;
Rufe Grafikroutine auf um gesetztes Feld neu zu zeichnen
Grafikroutine ruft das einzelne Feld auf und gibt ihm die Anweisung seinen zustand zu ändern
berechne nächsten Zug des PC.
das problem: nach der eingabe eines zuges durch den benutzer, wird das feld nicht neu gezeichnet. Das heisst die methoden und alles werden aufgerufen, aber es tut sich nichts. die neue spielsituation erscheint erst, wenn auch der computer gezogen hat! und da das bei hoher suchtiefe ziemlich lange dauert, ist das ein ernstes Problem.
Zusammenfassend:
wenn ich als benutzer einen stein in spalte 3 werfen will, erscheint dieser erst mit dem nächsten Zug des Computers, und das kann ziemlich lange dauern.
weiss jemand, wie ich erzwingen kann, das die paint() methode auch wirklich das feld neu zeichnet, bevor weiter gespielt wird?
ich habe schon sehr viel probiert, spricht überall sleeps eingefügt. hat nichts gebracht.
Ich programmiere unter linux mit java 1.5. Falls noch weitere angaben nötig sind, oder ganze teile des codes erwünscht sind, werde ich die gerne posten, aber ich finde es immer abschreckend, wenn in einem thread gleich ma 1000 code-zeilen folgen.
Freue mich über jede antwort[/code]