robo.spiel
Class WebcamInterface

java.lang.Object
  extended by robo.spiel.WebcamInterface

public class WebcamInterface
extends java.lang.Object

Statische Klasse, dient als Interface zwischen WebcamHumanPlayer und der Bilderkennung; die Spielzüge des menschlichen Spielers hier ausgelesen und so codiert, dass sie vom WebcamHumanPlayer weiterverarbeitet werden können.

Since:
27.09.2007
Author:
Joachim

Nested Class Summary
static class WebcamInterface.Differenz
          Speichert eine Differenz zwischen zwei Spielsituationen.
 
Constructor Summary
WebcamInterface()
           
 
Method Summary
static void actionFinished()
          Diese Methode wird aufgerufen (durch einen Button von der GUI oder durch ein akustisches Signal vom Spieler, das der Roboter aufnimmt...), wenn der Spielzug beendet ist.
static boolean getNextAction(Player player, Playground playground, boolean invertColor)
          Überprüft die aktuelle Spielsituation und speichert sie ab.
static boolean pruefeSpielfeld(Playground p)
          Überprüft Feld für Feld, ob die von der Bilderkennung gelieferten Informationen mit dem Playground übereinstimmen.
static java.util.ArrayList<WebcamInterface.Differenz> pruefeSpielfeld(Playground p, boolean all)
          Überprüft Feld für Feld, ob die von der Bilderkennung gelieferten Informationen mit dem Playground übereinstimmen.
static boolean spielposFehlerDialogAufraeumen()
           
static boolean waitingForAction()
          liefert zurück, ob gerade auf einen Zug vom Menschlichen Spieler gewartet wird.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WebcamInterface

public WebcamInterface()
Method Detail

getNextAction

public static boolean getNextAction(Player player,
                                    Playground playground,
                                    boolean invertColor)
Überprüft die aktuelle Spielsituation und speichert sie ab. Anschließend muss actionFinished() aufgerufen werden.

Parameters:
aktPlayer -
playground -
Returns:
bei Fehlern wird false Zurückgegeben und eine Notiz in die Logs geschrieben. Ansonsten true.

actionFinished

public static void actionFinished()
Diese Methode wird aufgerufen (durch einen Button von der GUI oder durch ein akustisches Signal vom Spieler, das der Roboter aufnimmt...), wenn der Spielzug beendet ist. Ein Webcambild wird überprüft auf Differenzen zur gespeicherten Situation und benachrichtigt den WebcamHumanPlayer, der zuvor getNextAction(Player, Playground) aufgerufen hatte.


pruefeSpielfeld

public static boolean pruefeSpielfeld(Playground p)
Überprüft Feld für Feld, ob die von der Bilderkennung gelieferten Informationen mit dem Playground übereinstimmen. Differenzen werden in der Konsole ausgegeben

Parameters:
p - der aktuelle Playground, in dem die Spielsituation enthalten ist.
Returns:
gibt true zurück, wenn das Spielfeld von der Bilderkennung mit dem Playground übereinstimmt.

pruefeSpielfeld

public static java.util.ArrayList<WebcamInterface.Differenz> pruefeSpielfeld(Playground p,
                                                                             boolean all)
Überprüft Feld für Feld, ob die von der Bilderkennung gelieferten Informationen mit dem Playground übereinstimmen. Hier wird direkt auf die Bilderkennung zurückgegriffen. Neu gesetzte Steine oder weggenommene Steine werden mit dieser Funktion erkannt.

Parameters:
p - der aktuelle Playground, in dem die Spielsituation enthalten ist.
all - bei true werden alle Differenzen in die ArrayListe aufgenommen, bei false werden Positionen auf denen ein Spielstein der falschen Farbe steht ignoriert.
Returns:
Eine ArrayList aus Positionen, an denen Differenzen aufgetreten sind.
Since:
27.09.2007
See Also:
Differenz} zur Form der Speicherung von Positionen, die in Bilderkennung und Playground nicht übereinstimmen.

waitingForAction

public static boolean waitingForAction()
liefert zurück, ob gerade auf einen Zug vom Menschlichen Spieler gewartet wird.


spielposFehlerDialogAufraeumen

public static boolean spielposFehlerDialogAufraeumen()