muehle.player
Class ComputerPlayer

java.lang.Object
  extended by muehle.player.Player
      extended by muehle.player.ComputerPlayer
Direct Known Subclasses:
LearningPlayer, RoboterComputerPlayer

public class ComputerPlayer
extends Player

Diese Klasse implementiert den Computerspieler, der, wenn er zum Zug aufgefordert wird, eine KI aufruft und den durch die KI berechneten Zug ausführt.

Since:
29.04.2004
Version:
2.03
Author:
Bastian Späth, Florian Lemmerich

Field Summary
protected  muehle.thinking.EvaluatedAction bestAction
          Position an der geschmissen wurde, im Falle einer geschlossen Mühle
protected  int depthToThink
           
protected  muehle.thinking.Heuristic heuristic
           
protected  muehle.thinking.QuiescentSearch qs
           
protected  int timeToThink
           
protected  boolean useTimeToBreak
           
protected  boolean verbose
           
 
Fields inherited from class muehle.player.Player
actions, clip, gestoppt, initStones, name, numberOfStones, opponent, play, s, stopSleeping, time
 
Constructor Summary
ComputerPlayer(java.lang.String name, Stone s)
          erstellt einen Computerspieler mit angegebenem Namen und Stein und der Spielstärke 200
ComputerPlayer(java.lang.String name, Stone s, muehle.thinking.Heuristic heuristic)
           
ComputerPlayer(java.lang.String name, Stone s, muehle.thinking.Heuristic h, muehle.thinking.Heuristic evalHeuristic)
           
ComputerPlayer(java.lang.String name, Stone s, java.lang.String filenameOfHeuristic)
           
ComputerPlayer(java.lang.String name, Stone s, java.lang.String filenameOfHeuristic, java.lang.String filenameOfEvalHeuristik)
           
 
Method Summary
 boolean acceptDraw(Playground p)
           
 muehle.thinking.EvaluatedAction calculateBestAction(Playground p)
           
 Action deleteStone(Playground p)
          veranlasst den Computerplayer zum Schmeissen eines Gegnersteines.
 Player getClone()
          clont den Computerspieler, indem ein neuer Spieler gleichen Namens und gleichen Steins mit gleicher Anzahl an gesetzen und übrigen Steinen generiert wird.
 int getDepthToThink()
           
 double getEvaluatedValueOfPlayground()
           
 muehle.thinking.Heuristic getHeuristic()
           
 double getLambda()
           
 muehle.thinking.QuiescentSearch getQs()
           
 double getRandomRadius()
           
 int getTimeToThink()
          gibt die Spielstärke zurück
 boolean isEndgame()
           
 boolean isUseTimeToBreak()
           
 boolean isVerbose()
           
 Action makeMove(Playground p)
          erzeugt das KI-Objekt Minmax und führt diese KI zur Berechnung des besten Zuges iterativ aus.
 void setDepthToThink(int depthToThink)
           
 void setHeuristic(muehle.thinking.Heuristic h)
           
 void setLambda(double lambda)
           
 void setQs(muehle.thinking.QuiescentSearch qs2)
           
 void setRandomRadius(double randomRadius)
           
 void setTimeToThink(int power)
          setzt die Spielstärke
 void setUseTimeToBreak(boolean useTimeToBreak)
           
 void setVerbose(boolean verbose)
           
 java.lang.String toString()
          Stringdarstellung des Spielers im Format: Name: xxx, InitStones: xxx, Stones: xxx, CanSet, CanJump
 
Methods inherited from class muehle.player.Player
appendLastAction, calcSituationValue, canJump, canSet, clearFeatures, connect, decrementInitStones, decrementStones, disconnect, flipSound, getAllLastActions, getDeleteAction, getEvalHeuristic, getLastAction, getMoveAction, getName, getNumberOfInitStones, getNumberOfStones, getOpponent, getProposalAction, getProposalDrop, getSetAction, getSituationValue, getStatusPanel, getStone, getThread, getTimeUsedByPlayer, getType, hasLostByStones, incrementInitStones, incrementStones, informOpponent, learningPhase, notice, pressedAt, receiveMsg, releasedAt, reset, saveFeatures, setAudio, setHost, setName, setNumberOfInitStones, setNumberOfStones, setOpponent, setPort, setStone, softSleeping, soundPlayback, stopGameThread
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

bestAction

protected muehle.thinking.EvaluatedAction bestAction
Position an der geschmissen wurde, im Falle einer geschlossen Mühle

Since:
20.04.2004

heuristic

protected muehle.thinking.Heuristic heuristic

verbose

protected boolean verbose

useTimeToBreak

protected boolean useTimeToBreak

timeToThink

protected int timeToThink

depthToThink

protected int depthToThink

qs

protected muehle.thinking.QuiescentSearch qs
Constructor Detail

ComputerPlayer

public ComputerPlayer(java.lang.String name,
                      Stone s)
erstellt einen Computerspieler mit angegebenem Namen und Stein und der Spielstärke 200

Parameters:
name - Spielername
s - Stein
Since:
20.04.2004

ComputerPlayer

public ComputerPlayer(java.lang.String name,
                      Stone s,
                      muehle.thinking.Heuristic heuristic)

ComputerPlayer

public ComputerPlayer(java.lang.String name,
                      Stone s,
                      java.lang.String filenameOfHeuristic)

ComputerPlayer

public ComputerPlayer(java.lang.String name,
                      Stone s,
                      java.lang.String filenameOfHeuristic,
                      java.lang.String filenameOfEvalHeuristik)

ComputerPlayer

public ComputerPlayer(java.lang.String name,
                      Stone s,
                      muehle.thinking.Heuristic h,
                      muehle.thinking.Heuristic evalHeuristic)
Method Detail

makeMove

public Action makeMove(Playground p)
erzeugt das KI-Objekt Minmax und führt diese KI zur Berechnung des besten Zuges iterativ aus. Schließlich wird der beste Zug ausgeführt. Ein eventueller Schmeiss-Zug wird in drop gespeichert.

Overrides:
makeMove in class Player
Parameters:
p - Playground auf dem der Zug ausgeführt werden soll
Returns:
TODO
Since:
294.2004

calculateBestAction

public muehle.thinking.EvaluatedAction calculateBestAction(Playground p)

deleteStone

public Action deleteStone(Playground p)
veranlasst den Computerplayer zum Schmeissen eines Gegnersteines. Dieser Zug wurde bereits beim vorangehenden makeMove in drop gespeichert.

Overrides:
deleteStone in class Player
Parameters:
p - Playground, von dem gelöscht wird
Returns:
TODO
Since:
204.2004

setTimeToThink

public void setTimeToThink(int power)
setzt die Spielstärke

Overrides:
setTimeToThink in class Player
Parameters:
power - Spielstärke
Since:
214.2004

getTimeToThink

public int getTimeToThink()
gibt die Spielstärke zurück

Overrides:
getTimeToThink in class Player
Returns:
Spielstärke
Since:
214.2004

getDepthToThink

public int getDepthToThink()
Overrides:
getDepthToThink in class Player
Returns:
Returns the depthToThink.

setDepthToThink

public void setDepthToThink(int depthToThink)
Overrides:
setDepthToThink in class Player
Parameters:
depthToThink - The depthToThink to set.

isUseTimeToBreak

public boolean isUseTimeToBreak()
Overrides:
isUseTimeToBreak in class Player
Returns:
Returns the useTimeToBreak.

setUseTimeToBreak

public void setUseTimeToBreak(boolean useTimeToBreak)
Overrides:
setUseTimeToBreak in class Player
Parameters:
useTimeToBreak - The useTimeToBreak to set.

getClone

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

Overrides:
getClone in class Player
Returns:
geclonter Computerspieler
Since:
204.2004

setQs

public void setQs(muehle.thinking.QuiescentSearch qs2)

acceptDraw

public boolean acceptDraw(Playground p)
Overrides:
acceptDraw in class Player

isEndgame

public boolean isEndgame()

isVerbose

public boolean isVerbose()
Returns:
Returns the verbose.

setVerbose

public void setVerbose(boolean verbose)
Overrides:
setVerbose in class Player
Parameters:
verbose - The verbose to set.

getHeuristic

public muehle.thinking.Heuristic getHeuristic()
Returns:
Returns the h.

setHeuristic

public void setHeuristic(muehle.thinking.Heuristic h)
Parameters:
h - The h to set.

getEvaluatedValueOfPlayground

public double getEvaluatedValueOfPlayground()
Returns:
Returns the generalValueOfPlayground.

getRandomRadius

public double getRandomRadius()
Returns:
Returns the randomRadius.

setRandomRadius

public void setRandomRadius(double randomRadius)
Parameters:
randomRadius - The randomRadius to set.

getLambda

public double getLambda()
Returns:
Returns the lambda.

setLambda

public void setLambda(double lambda)
Parameters:
lambda - The lambda to set.

toString

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

Overrides:
toString in class Player
Returns:
Stringdarstellung des Spielers

getQs

public muehle.thinking.QuiescentSearch getQs()
Returns:
Returns the qs.