de.fhwiesbaden.jgamp001.thello.ai
Class Computerspieler

java.lang.Object
  extended by java.util.Observable
      extended by de.fhwiesbaden.jgamp001.thello.ai.Computerspieler
All Implemented Interfaces:
java.lang.Runnable

public class Computerspieler
extends java.util.Observable
implements java.lang.Runnable

Eine "Benutzerklasse". Diese Klasse benutzt die KI, erfragt ihren nächsten Zug. Sie ist Observable, kann also von FlexibleThelloControl auf neue Spielzüge abgehört werden. Sie ist Runnable. Um die GUI weiter lauffähig zu halten, wenn die KI läuft, wird sie als separater Thread ausgeführt. Damit einhergehend wird die KI mit ihren leistungshungrigen Methoden als kritischer Bereich definiert, der nur durch Semaphore erreicht werden kann.


Field Summary
 JanAlphaBetaGame<Pair<java.lang.Byte,java.lang.Byte>> ai
           
 
Constructor Summary
Computerspieler(FlexibleThelloControl console, JanAlphaBetaGame<Pair<java.lang.Byte,java.lang.Byte>> ai)
           
 
Method Summary
 java.lang.Boolean denktGerade()
           
 java.lang.Integer getDepth()
           
 void kiAnschubsen()
           
 void kiBeenden()
           
 void run()
           
 void setDepth(java.lang.Integer depth)
           
 
Methods inherited from class java.util.Observable
addObserver, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ai

public JanAlphaBetaGame<Pair<java.lang.Byte,java.lang.Byte>> ai
Constructor Detail

Computerspieler

public Computerspieler(FlexibleThelloControl console,
                       JanAlphaBetaGame<Pair<java.lang.Byte,java.lang.Byte>> ai)
Method Detail

denktGerade

public java.lang.Boolean denktGerade()

kiAnschubsen

public void kiAnschubsen()

kiBeenden

public void kiBeenden()

getDepth

public java.lang.Integer getDepth()

setDepth

public void setDepth(java.lang.Integer depth)

run

public void run()
Specified by:
run in interface java.lang.Runnable