Komischer Verhalten bein minimmieren eines Fensters.
-
Hallo.
Ich habe ein Problem.
Ich habe ein TicTacToe Spiel programmiert, mit einem Computer Gegner.
Der Computer gegner berechnet 6 Züge im Vorraus. das dauert einen kleinen moment.
wenn ich in dieser Zeit das mainframe minimiere, bekomme ich von meiner klasse einen fehler. also keinen java fehler sondern einen fehler, den ich selbst generiere. wenn ich beim nächsten versuch das Fenster nicht nicht minimiere, wird der zug vom computer ausgeführt und es kommt zu keinem fehler.ich weiß das es ohne code sehr schwer ist den fehler zu beheben, bzw. einen tipp zu geben.
Da das Pojekt aber bereits mehrere klassen ca 30 umfasst ist es etwas schwierig genau den codeteil zu posten wo der fehler auftritt.also vielleicht hat jemand schon mal ein ähnliches verhalten beobachtet und kann mir doch einen tipp geben,
vielen dank
-
Mal eine andere Frage: Wie kommst du mit TicTacToe auf 30 Klassen?
-
Ich habe das alles so geschrieben, das man damit jedes NullSummenSpiel programmieren kann Es sind vielleicht auch nur 20 keine ahnung
-
Wie dem auch sei, ohne Quelltext geht hier nichts.
-
ich werde das mal als zip verschicken
-
Hier ist der Link [url]http://fischkopf2009.fi.funpic.de/NullSummenSpiel.zip [/url]
-
Ich komme gar nicht erst zum Fehler. Habe ThreeWinsGameGui und FourWinsGameGui gestartet, aber beim ersten kommt nur ein Fenster zur Auswahl des Netzwerk-Modus und beim Vier-Gewinnt steht nach Klick auf "lokales Spiel" nur "Invalid Network Client".
-
Danke das du dich mit dem Problem beschäftigst.
Also du musst das ThreeWinsGui amchen. Dann lokales Spiel , dann auf ein Feld klicken und dann das Fenster minimieren,
-
Ohne ActionListener reagiert da gar nichts.
Habe mal
choiceNetwork.addActionListener(this);
in initThreeWinsGameProperty() hinzugefügt, damit ich wenigstens das Spielfeld zu sehen bekomme. Wenn ich hier auf ein Feld klicke, kommt "Invalid Network Client".
Hast du eine andere Version vor dir, als du hochgeladen hast?
-
Es geht im Moment nur das Lokale Spiel. Deswegen ist auch ein ActionListener für das netzwerk Spiel nicht vorhanden.
Nein ich habe auch die die du hast
-
Ich habe das jetzt ncoh mal angepasst. Es ist erst mal nur ein lokales Spiel möglic. Also folgende Einstellungen :
Runde : 1
StartSpieler : Spieler 1
Type Spieler 2 : Level Einfach
Lokales Spielund dann spiel starten
Wenn du dann auf ein feld klickst wird dort ein Kreis gezeichnet. Allerdings nicht mehr das Kreuz vom Computer gegner. Schafft ihr das zu repproduzieren.Ich weiß nicht woran es liegen könnte.
Bin für jeden Tipp dankbar.Noch ein Nachtrag :
Wollte gerade eine Debugausgabe enbauen und da habe ich festgetsellt das es dann hin und wieder geht !
-
Lad es am Besten nochmal hoch.
-
Ist schon da
-
Also ehrlich gesagt ist dein Design mehr als unübersichtlich. Ich finde aber auch keine Stelle, an der der Computer-Client nach einem nächsten Zug abgefragt wird.
Sorry, das ist mir fast ohne Kommentare viel zu wust, um mich da weiter mit zu beschäftigen.
-
Also der Computer wird in der Klasse AbstractGameClient in der Funktion receiveActionRequest nach dem nächsten Zug gefragt. Es gibt immer eine Send Funktion im Server un eine receive Funktion im Client.
-
Ich habe den Fehler gefunden. Es war ziemlich verziwckt. Deshalb war er auch schwer zu finden. Es war etwas spoezielle und hat nicnhts mit der gui zu tun "!