Hallo EI Community,
ich habe vor kurzem die neuste ESU-version runtergeladen. Als ich eine Simulation starten wollte mit der einzigen aktion nach oben zu laufen (zug.hochlaufen()) , habe ich bemerkt dass der "Simulation Starten" - Knopf eingerastet ist und auch im Fenster nichts passiert. Allerding gibt das Programm sehr fleißig XML-daten wie diese hier aus:
-Edit: aus irgendeinem grund werden die XML-Daten im Forum nicht angezeigt, vllt. ein Serveproblem?!?
2-Jan-2013 8:18:09 PM de.tu_darmstadt.di.bwinf.core.player.KISpieler sendSync
INFO: after 0 time points receive from KI1 read
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
2-Jan-2013 8:18:09 PM de.tu_darmstadt.di.bwinf.core.player.KISpieler sendSync
INFO: unmarshaled xml has 4 elements
2-Jan-2013 8:18:09 PM de.tu_darmstadt.di.bwinf.core.player.KISpieler sendSync
INFO: Readline xml from KI and unmarshal needs 12ms
2-Jan-2013 8:18:09 PM de.tu_darmstadt.di.bwinf.core.player.KISpieler sendSync
INFO: Logic needs 0ms for the turn of the KI
So etwas wird jede Sekunde neu ausgegeben. Die Simulation läuft sehr lange, sie kommt nie zu einem Ende. Das Fenster kann auch nur geschlossen werden, wenn man das Programm von der Befehlszeil unterbricht (strg+c).
Ist das bei euch auch so?
Ich hab das Problem auch, dass die Simulationen ewig brauchen. Vor allem dann, wenn die KI keine Exceptions erzeugt : )
Du kannst die Simulationen allerdings "abbrechen" in dem du, sofern du mit Windows arbeitest, im Taskmanager alle "java.exe"n killst (nicht die javaw.exe!!). Die Oberfläche sollte dann wieder reagieren und zumindest Teile der Simualtion , soweit du sie halt hast laufen lassen, anzeigen.
(Anwendung dieser Methode auf eigenes Risiko. Kann eventuell die Stabilität anderer Prozesse beeinflussen.)
Max Maczasek said:
Ja! Die neue Version funktioniert :DD Nur leider hab ich kein Plan wie man die einzelnen Positionen der Käfer abfragt. Sollte ja irgendwie zustand.Käfer.x() bzw. zustand.Käfer.y() heißen, aber wie stellt man fest um welchen Käfer es sich handelt ? Ich nehm mal an über die id welche am Anfang übergeben wird, nur wie verwendet man die ? zustand.Käfer.x(id) ? Bedanke mich für alle Rückmeldungen :) LG Max
Mit zustand.listeKaefer() kannst Du die Liste aller Käfer abfragen. Darin ist dann auch Dein Käfer (erkennst Du daran, dass die Methode gehoert() Deine Id zurückgibt. Auf dem Käfer kannst Du dann die Methoden x() und y() aufrufen, um die Position zu bekommen.
Wenn ich die Simulation starten möchte, bricht sie immer mit dem selben Fehler ab:
java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
at java.util.LinkedList.checkElementIndex(Unknown Source)
at java.util.LinkedList.get(Unknown Source)
at PlugInMain.spielzustandKopieren(PlugInMain.java:562)
at PlugInMain.spielen(PlugInMain.java:215)
at de.tu_darmstadt.di.bwinf.simulator.Simulator.simulate(Simulator.java:49)
at de.tu_darmstadt.di.bwinf.esu.ESUSimulator.simulate(ESUSimulator.java:270)
at de.tu_darmstadt.di.bwinf.esu.gui.ESUFrame$ChallengeThread.run(ESUFrame.java:1735)
Ich glaube der Fehler liegt nicht an meiner KI. Hat jemand eine Idee woran das liegen könnte?
EDIT: Ich weiss jetzt woran es lag, ich hatte nur eine KI zur Simulation angehakt.
Ich habe immer nur eine ki benutzt. danke für die hilfe
Ich hatte das Problem auch. Das liegt daran, dass der Pfad zum Javacompiler in den Umgebungsvariablen nicht gesetzt ist.
Um das Problem zu Lösen solltest du erstmal sicher stellen, dass das jdk installiert ist. Anschließend öffnest du die Umgebungsvariablen und trägst, falls er tatsächlich nicht vorhanden sein sollte, in die Variable Path den Pfad zum Binary Ordner ein.
Hier gibt es zwei Lösungsmöglichkeiten für Dich: Entweder kommst du darauf, dass x und y keine Variablen sondern Funktionen sind, die man aufrufen kann, um die Koordinaten zu bekommen. Alternativ kannst Du es auch morgen im Chat mit den Betreuern der Umgebung fragen....