muehle.player
Class Player

java.lang.Object
  extended by muehle.player.Player
Direct Known Subclasses:
ComputerPlayer, HumanPlayer, NetPlayer

public class Player
extends java.lang.Object

Diese Klasse implementiert den abstrakten Typ Player. Von ihm erben die implementierten Player Computerspieler, Menschspieler, Netzwerk-Serverspieler und Netzwerk-Clientspieler

Since:
20.04.2004
Version:
2.01
Author:
Bastian Späth, Florian Lemmerich

Field Summary
protected  java.util.ArrayList actions
          Die Aktionen, die der Spieler durchgeführt hat
protected static java.applet.AudioClip[] clip
           
protected  boolean gestoppt
          Speichert den Status des Spielthreads
protected  int initStones
          Anzahl der noch zu setzenden Steine des Spielers
protected  java.lang.String name
          Name des Spielers
protected  int numberOfStones
          Anzahl der Steine des Spielers auf dem Spielfeld
protected  Player opponent
          Der Gegenspieler des Spielers
protected  java.lang.Thread play
          Speichert für den aktuellen Zug den Spielthread,
protected  Stone s
          Spielstein des Spielers
protected  boolean stopSleeping
           
protected  long time
          Denkzeit in Millisekunden
 
Constructor Summary
Player(java.lang.String name, Stone s)
           
Player(java.lang.String name, Stone s, muehle.thinking.Heuristic evalHeuristic)
          erzeugt einen neuen Player mit angegebenem Namen und Spielstein.
Player(java.lang.String name, Stone s, java.lang.String filenameOfEvalHeuristic)
           
 
Method Summary
 boolean acceptDraw(Playground p)
           
 void appendLastAction(Action a)
          setzt die LastAction (die letzte Aktion) des Player und benachrichtigt den Gegenspieler (bei Netzwerkspielen) über den durchgeführten Zug
protected  void calcSituationValue(Playground p)
          Errechnet den Situationswert neu
 boolean canJump()
          gibt zurück, ob der Spieler springen kann, also weniger als 4 Steine auf dem Feld hat.
 boolean canSet()
          gibt zurück, ob der Spieler noch Steine setzen kann, also noch in der Setzphase ist.
 void clearFeatures()
           
 int connect()
          Verbindungsaufbau beim Netzwerkspiel Wird von den Net-Playern überschrieben
 void decrementInitStones()
          erniedrigt die Steinanzahl der zu setzenden Spielsteine des Players um 1
 void decrementStones()
          erniedrigt die Anzahl der Spielsteine des Players, die sich auf dem Spielfeld befinden, um 1
 Action deleteStone(Playground p)
          führt einen Schmeiss-Zug des Spielers aus.
 void disconnect()
          Verbindungsabbau beim Netzwerkspiel Wird von den Net-Playern überschrieben
static void flipSound()
           
 java.util.ArrayList getAllLastActions()
          gibt einen Vector mit allen Actions zurück, die der Spieler bisher gemacht hat
 Player getClone()
          clont den Spieler indem ein neuer Spieler gleichen Namens und gleichen Steins mit gleicher Anzahl an gesetzen und übrigen Steinen generiert wird.
 DeleteAction getDeleteAction(int destination)
           
 int getDepthToThink()
           
protected  muehle.thinking.Heuristic getEvalHeuristic()
          Gibt die EvalHeuristik zurück
 Action getLastAction()
          gibt die Aktion zurück, die der Player als letztes gemacht hat
 MoveAction getMoveAction(int destination, int source)
           
 java.lang.String getName()
          gibt den Namen des Players zurück
 int getNumberOfInitStones()
          gibt die Anzahl der Spielsteine zurück, die der Player noch setzen darf.
 int getNumberOfStones()
          gibt die Anzahl der Spielsteine zurück, die der Player auf dem Spielfeld hat.
 Player getOpponent()
          gibt den Gegner des aktuellen Spielers zurück
 Action getProposalAction()
           
 Action getProposalDrop()
           
 SetAction getSetAction(int destination)
           
 double getSituationValue()
          Gibt die Bewertung der Heuristik für die eigene Situation zurück
 void getStatusPanel(muehle.gui.StatusPanel sp)
           
 Stone getStone()
          gibt den Spielstein des Players zurück
 void getThread(java.lang.Thread play)
           
 int getTimeToThink()
           
 long getTimeUsedByPlayer()
           
 java.lang.String getType()
          gibt einen String zurück, der den Typ des Players beschreibt: HumanPlayer, ComputerPlayer, NetServerPlayer oder NetClientPlayer
 boolean hasLostByStones()
          gibt zurück, ob der Spieler auf Grund seiner Steinanzahl verloren hat, also weniger als 3 Steine auf dem Feld hat
 void incrementInitStones()
          erhöht die Steinanzahl der zu setzenden Spielsteine des Players um 1
 void incrementStones()
          erhöht die Anzahl der Spielsteine des Players, die sich auf dem Spielfeld befinden, um 1
 void informOpponent(Action a)
           
 boolean isUseTimeToBreak()
           
 void learningPhase(double outcome, boolean save)
           
 Action makeMove(Playground p)
          führt einen Zug des Spielers aus.
 void notice(java.lang.String note)
          benachrichtigt den Spieler über eine Aktion.
 void pressedAt(int source)
          setzt die Position an der die Maustaste gedrückt wurde.
 java.lang.String receiveMsg()
           
 void releasedAt(int destination)
          setzt die Position an der die Maustaste wieder losgelassen wurde.
 void reset()
          Setzt den Spieler zurück, indem die Steinanzahl auf dem Feld auf 0 und die zu setzenden Steine auf 9 gesetzt werden
 void saveFeatures(Playground p, Player aktPlayer)
           
static void setAudio(java.applet.AudioClip[] ac)
           
 void setDepthToThink(int depthToThink)
           
 void setHost(java.lang.String s)
          setzt den Hostnamen beim Netzwerkspiel Wird vom Client-Player überschrieben
 void setName(java.lang.String name)
          setzt den Namen des Spielers auf den übergebenen Namen
 void setNumberOfInitStones(int initStones)
          setzt die Anzahl der Spielsteine, die vom Player gesetzt werden können
 void setNumberOfStones(int numberStones)
          setzt die Anzahl der Spielsteine, die der Player auf dem Spielfeld hat
 void setOpponent(Player p)
          setzt einen Gegner für den Player
 void setPort(int port)
          setz den Port für ein Netzwerkspiel Wird von den Net-Playern überschrieben
 void setStone(Stone s)
           
 void setTimeToThink(int power)
          setzt die Spielstärke beim Computerplayer Wird vom ComputerPlayer überschrieben
 void setUseTimeToBreak(boolean useTimeToBreak)
           
 void setVerbose(boolean verbose)
           
protected  void softSleeping()
           
 void soundPlayback(int i)
           
protected  void stopGameThread()
           
 java.lang.String toString()
          Stringdarstellung des Spielers im Format: Name: xxx, InitStones: xxx, Stones: xxx, CanSet, CanJump
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

name

protected java.lang.String name
Name des Spielers


s

protected Stone s
Spielstein des Spielers


numberOfStones

protected int numberOfStones
Anzahl der Steine des Spielers auf dem Spielfeld


initStones

protected int initStones
Anzahl der noch zu setzenden Steine des Spielers


actions

protected java.util.ArrayList actions
Die Aktionen, die der Spieler durchgeführt hat


opponent

protected Player opponent
Der Gegenspieler des Spielers


play

protected java.lang.Thread play
Speichert für den aktuellen Zug den Spielthread,


time

protected long time
Denkzeit in Millisekunden


stopSleeping

protected boolean stopSleeping

clip

protected static java.applet.AudioClip[] clip

gestoppt

protected boolean gestoppt
Speichert den Status des Spielthreads

Constructor Detail

Player

public Player(java.lang.String name,
              Stone s)

Player

public Player(java.lang.String name,
              Stone s,
              java.lang.String filenameOfEvalHeuristic)

Player

public Player(java.lang.String name,
              Stone s,
              muehle.thinking.Heuristic evalHeuristic)
erzeugt einen neuen Player mit angegebenem Namen und Spielstein.

Parameters:
name - Spielername
s - Spielstein
Since:
20.04.2004
Method Detail

setAudio

public static void setAudio(java.applet.AudioClip[] ac)

flipSound

public static void flipSound()

getSetAction

public SetAction getSetAction(int destination)

getDeleteAction

public DeleteAction getDeleteAction(int destination)

getMoveAction

public MoveAction getMoveAction(int destination,
                                int source)

getStone

public Stone getStone()
gibt den Spielstein des Players zurück

Returns:
Spielstein
Since:
20.04.2004

getLastAction

public Action getLastAction()
gibt die Aktion zurück, die der Player als letztes gemacht hat

Returns:
letzte Aktion
Since:
20.04.2004

getAllLastActions

public java.util.ArrayList getAllLastActions()
gibt einen Vector mit allen Actions zurück, die der Spieler bisher gemacht hat


canSet

public boolean canSet()
gibt zurück, ob der Spieler noch Steine setzen kann, also noch in der Setzphase ist.

Returns:
true für ja, false für nein
Since:
20.04.2004

canJump

public boolean canJump()
gibt zurück, ob der Spieler springen kann, also weniger als 4 Steine auf dem Feld hat.

Returns:
true für ja, false für nein
Since:
20.04.2004

hasLostByStones

public boolean hasLostByStones()
gibt zurück, ob der Spieler auf Grund seiner Steinanzahl verloren hat, also weniger als 3 Steine auf dem Feld hat

Returns:
true für ja, false für nein
Since:
20.04.2004

getType

public java.lang.String getType()
gibt einen String zurück, der den Typ des Players beschreibt: HumanPlayer, ComputerPlayer, NetServerPlayer oder NetClientPlayer

Returns:
String des Playertyps
Since:
20.04.2004

getName

public java.lang.String getName()
gibt den Namen des Players zurück

Returns:
Spielername
Since:
20.04.2004

getOpponent

public Player getOpponent()
gibt den Gegner des aktuellen Spielers zurück

Returns:
Gegenspieler
Since:
20.04.2004

getNumberOfStones

public int getNumberOfStones()
gibt die Anzahl der Spielsteine zurück, die der Player auf dem Spielfeld hat.

Returns:
Steinanzahl des Player auf dem Spielfeld
Since:
20.04.2004

setStone

public void setStone(Stone s)

getNumberOfInitStones

public int getNumberOfInitStones()
gibt die Anzahl der Spielsteine zurück, die der Player noch setzen darf.

Returns:
Steinanzahl, die der Player noch setzen darf
Since:
20.04.2004

setNumberOfInitStones

public void setNumberOfInitStones(int initStones)
setzt die Anzahl der Spielsteine, die vom Player gesetzt werden können

Parameters:
initStones - Steinanzahl
Since:
20.04.2004

setNumberOfStones

public void setNumberOfStones(int numberStones)
setzt die Anzahl der Spielsteine, die der Player auf dem Spielfeld hat

Parameters:
numberStones - Steinanzahl
Since:
20.04.2004

incrementInitStones

public void incrementInitStones()
erhöht die Steinanzahl der zu setzenden Spielsteine des Players um 1

Since:
20.04.2004

decrementInitStones

public void decrementInitStones()
erniedrigt die Steinanzahl der zu setzenden Spielsteine des Players um 1

Since:
20.04.2004

incrementStones

public void incrementStones()
erhöht die Anzahl der Spielsteine des Players, die sich auf dem Spielfeld befinden, um 1

Since:
20.04.2004

decrementStones

public void decrementStones()
erniedrigt die Anzahl der Spielsteine des Players, die sich auf dem Spielfeld befinden, um 1

Since:
20.04.2004

setName

public void setName(java.lang.String name)
setzt den Namen des Spielers auf den übergebenen Namen

Parameters:
name - Spielername
Since:
20.04.2004

setOpponent

public void setOpponent(Player p)
setzt einen Gegner für den Player

Parameters:
p - Gegenspieler
Since:
20.04.2004

appendLastAction

public void appendLastAction(Action a)
setzt die LastAction (die letzte Aktion) des Player und benachrichtigt den Gegenspieler (bei Netzwerkspielen) über den durchgeführten Zug

Parameters:
a - Aktion, die zuletzt ausgeführt wurde
Since:
20.04.2004

informOpponent

public void informOpponent(Action a)

stopGameThread

protected void stopGameThread()

soundPlayback

public void soundPlayback(int i)

toString

public java.lang.String toString()
Stringdarstellung des Spielers im Format: Name: xxx, InitStones: xxx, Stones: xxx, CanSet, CanJump

Overrides:
toString in class java.lang.Object
Returns:
Stringdarstellung des Spielers
Since:
20.04.2004

reset

public void reset()
Setzt den Spieler zurück, indem die Steinanzahl auf dem Feld auf 0 und die zu setzenden Steine auf 9 gesetzt werden

Since:
20.04.2004

getClone

public Player getClone()
clont den Spieler indem ein neuer Spieler gleichen Namens und gleichen Steins mit gleicher Anzahl an gesetzen und übrigen Steinen generiert wird.

Returns:
geclonter Spieler
Since:
20.04.2004

notice

public void notice(java.lang.String note)
benachrichtigt den Spieler über eine Aktion. Wird von den Net-Playern überschrieben

Parameters:
note - Nachricht
Since:
20.04.2004

connect

public int connect()
Verbindungsaufbau beim Netzwerkspiel Wird von den Net-Playern überschrieben

Returns:
Erfolg der Verbindung: 0 nein 1 ja Wird von den Net-Playern überschrieben

disconnect

public void disconnect()
Verbindungsabbau beim Netzwerkspiel Wird von den Net-Playern überschrieben

Parameters:
note - Nachricht
Since:
20.04.2004

setHost

public void setHost(java.lang.String s)
setzt den Hostnamen beim Netzwerkspiel Wird vom Client-Player überschrieben

Parameters:
s - Hostname
Since:
20.04.2004

setPort

public void setPort(int port)
setz den Port für ein Netzwerkspiel Wird von den Net-Playern überschrieben

Parameters:
port - Portnummer
Since:
20.04.2004

makeMove

public Action makeMove(Playground p)
führt einen Zug des Spielers aus. Wird vom entsprechenden Player überschrieben

Parameters:
p - Spielfeld auf dem der Zug ausgeführt werden soll
Returns:
TODO
Since:
20.04.2004

deleteStone

public Action deleteStone(Playground p)
führt einen Schmeiss-Zug des Spielers aus. Wird vom entsprechenden Player überschrieben

Parameters:
p - Spielfeld auf dem der Schmeiss-Zug ausgeführt werden soll
Returns:
TODO
Since:
20.04.2004

pressedAt

public void pressedAt(int source)
setzt die Position an der die Maustaste gedrückt wurde. Wird vom HumanPlayer überschrieben

Parameters:
source - Mausposition, an der die Maustaste gedrückt wurde
Since:
20.04.2004

releasedAt

public void releasedAt(int destination)
setzt die Position an der die Maustaste wieder losgelassen wurde. Wird vom HumanPlayer überschrieben

Parameters:
destination - Mausposition, an der die Maustaste losgelassen wurde
Since:
20.04.2004

setTimeToThink

public void setTimeToThink(int power)
setzt die Spielstärke beim Computerplayer Wird vom ComputerPlayer überschrieben

Parameters:
destination - Mausposition, an der die Maustaste losgelassen wurde
Since:
20.04.2004

softSleeping

protected void softSleeping()

receiveMsg

public java.lang.String receiveMsg()
Parameters:
verbose - The verbose to set. Nur für Computerplayer

setVerbose

public void setVerbose(boolean verbose)

getTimeToThink

public int getTimeToThink()

acceptDraw

public boolean acceptDraw(Playground p)

getProposalAction

public Action getProposalAction()

getProposalDrop

public Action getProposalDrop()

getTimeUsedByPlayer

public long getTimeUsedByPlayer()

learningPhase

public void learningPhase(double outcome,
                          boolean save)

saveFeatures

public void saveFeatures(Playground p,
                         Player aktPlayer)

clearFeatures

public void clearFeatures()

getDepthToThink

public int getDepthToThink()

setDepthToThink

public void setDepthToThink(int depthToThink)

isUseTimeToBreak

public boolean isUseTimeToBreak()

setUseTimeToBreak

public void setUseTimeToBreak(boolean useTimeToBreak)

getThread

public void getThread(java.lang.Thread play)

getStatusPanel

public void getStatusPanel(muehle.gui.StatusPanel sp)

getEvalHeuristic

protected muehle.thinking.Heuristic getEvalHeuristic()
Gibt die EvalHeuristik zurück


calcSituationValue

protected void calcSituationValue(Playground p)
Errechnet den Situationswert neu


getSituationValue

public double getSituationValue()
Gibt die Bewertung der Heuristik für die eigene Situation zurück