FAQ
Ist es gewollt, dass sich die Atributte vom Bot nicht resetten, wenn man ein neues Spiel startet?
Ja, ist es. Aber das kann leicht umgangen werden. Überschreibe einfach die init()-Methode der KitchenPlayerAI Klasse. Die init()-Methode wird vor jedem Spielstart aufgerufen. Hier könnt ihr eure Attribute resetten.

Ich bekomme ein Fehler beim Starten des Spiels und zwar "Inconsistency detected by ld.so: dl-lookup.c"?
Das scheint ein Fehler im Zusammenhang mit dem openjdk unter ubuntu zu sein. Wenn ihr auf ein anderes JDK wechselt, wie z.B. adoptopen, funktioniert es.

Hilfe das Spiel startet nicht mehr. Ich bekomme eine Exception. Was soll ich tun?
Am besten mir eine Mail (dirk.aporius at gmail.com) schreiben inklusive des Stacktraces der Exception und der Version des Spieles, damit ich das Spiel verbessern kann.
Bis dahin kann das Löschen der Preferences helfen.

Werden pro Schritt/Updateaufruf immer neue Objekte für Cooking und die ActionPoints erstellt?
Ja, es werden immer neue Objekte erstellt. Wenn ihr euch ein Objekt wie z.B. ein Cooking gemerkt habt, dann könnt ihr das aktuelle/gleiche Objekt mit Hilfe der getId() Methode bekommen. Die ID ändert sich im Spiel nicht, sie bleibt immer gleich.
Außerdem gibt es in der KitchenInformation jeweils eine Methode getSameCooking(Cooking cooking) und getSameActionPoint(ActionPoint actionPoint), die euch das aktuelle Objekt zurückgeben.

Wie starte ich das Programm headless?
Startet die Jar Datei in der Console/Terminal mit "java -jar kitchen.jar help".
Dann bekommt ihr eine Hilfestellung was möglich ist.
Wenn ihr z.B. eure KI namens Kuechenchef in der Mission competition im Level Cafe mit 3 Spielern 10 mal starten wollt, müsst ihr folgendes eingeben:
java -jar kitchen.jar ai=Kuechenchef runs=10 level=cafe mission=competition players=3
Ihr könnt auch eure KI testen lassen, ob sie die Prüfungszulassung besteht:
java -jar kitchen.jar ai=Kuechenchef runs=10 seed=190982 task=admission
Dann startet der automatische Test in unterschiedlichen Levels mit unterschiedlichen Spieleranzahlen und gibt zum Schluß aus, ob die KI bestanden hat.

Gibt es Missionen, wo die Zeitbegrenzung ausgeschaltet ist?
Ja, sowohl im Sandbox als auch in der Christmas Challenge spielt die Zeit zum Nachdenken keine Rolle.
Bei allen anderen Missionen gilt die Zeitbegrenzung.

Was muss ich machen, wenn ein Essen schlecht ('ROTTEN') geworden ist?
Dann nimm den Teller und wasche ihn ab. So kann die Bestellung geresetet werden und noch einmal zubereitet werden.
Es ist nicht schlimm, das kann immer mal passieren.

Ich habe einen Bug gefunden. An wen muss ich mich wenden?
Bitte eine Mail an dirk.aporius at gmail.com schreiben

Wer hat den tollen Weihnachtshintergrund gezaubert?
Eine freundliche Dame namens Stefanie Lohse.

Was bedeuten die Anzeigen auf der rechten Seite im Spiel?

Immer wenn ein Kunde wartet, erscheint auf der rechten Seite eine Anzeige für ihn.
Neben dem Tisch und einem Bild vom Kunden steht noch in Klammern, wie lange er noch warten wird bevor er geht.
Wenn der Kunde seine Bestellung noch nicht aufgegeben hat, steht da nur die Zeit, die er bis jetzt gewartet hat.
Wenn der Kunde seine Bestellung abgegeben hat, dann sieht man auch was er bestellt hat und die Zeit, die er insgesamt warten wird.
Wie lange ein Kunde genau wartet, hängt vom Level ab und kann in der KitchenInformation abgefragt werden.

Welche Missionen gibt es?

Die Missionen könnt ihr im Menu einstellen.
Jede Mission hat entweder das Ziel x Gerichte herzustellen oder in x Sekunden eine bestimmt Anzahl von Punkten zu erreichen.
Was benötigt wird, könnt ihr im Mission Objekt abfragen.