de.fhwiesbaden.jgamp001.thello
Class ThelloGame

java.lang.Object
  extended by de.fhwiesbaden.jgamp001.thello.AbstractRegularGame<Pair<java.lang.Byte,java.lang.Byte>>
      extended by de.fhwiesbaden.jgamp001.thello.ThelloGame
All Implemented Interfaces:
Game<Pair<java.lang.Byte,java.lang.Byte>>, PerfectInformationGame<Pair<java.lang.Byte,java.lang.Byte>>, RegularGame<Pair<java.lang.Byte,java.lang.Byte>>, java.lang.Cloneable

public class ThelloGame
extends AbstractRegularGame<Pair<java.lang.Byte,java.lang.Byte>>

Othello, das Herzstück des Spiels. In Anlehnung an die Game Klassen ist dies die vollständige und regelkonforme Implementation des Spiels.


Field Summary
 
Fields inherited from class de.fhwiesbaden.jgamp001.thello.AbstractRegularGame
movesDone
 
Constructor Summary
ThelloGame()
           
 
Method Summary
 ThelloGame clone()
           
 ThelloGame doMove(Pair<java.lang.Byte,java.lang.Byte> m)
           
 int evalState(byte player)
           
 java.util.List<Pair<Pair<java.lang.Integer,java.lang.Integer>,java.lang.Integer>> feldSchliesstGegnerEin(int x, int y, byte spieler)
           
 java.lang.Integer getCurrentPlayersNumberOfStones()
           
 java.util.List<Pair<java.lang.Byte,java.lang.Byte>> getMovesCurrent()
           
 java.lang.Integer getMovesDone()
           
 java.util.List<Pair<java.lang.Byte,java.lang.Byte>> getMovesOpponent()
           
 java.lang.Integer getOpponentsNumberOfStones()
           
 java.lang.Integer getSteineEins()
           
 java.lang.Integer getSteineZwei()
           
 java.lang.Boolean isLegalMove(Pair<java.lang.Byte,java.lang.Byte> move)
           
 java.util.List<Pair<java.lang.Byte,java.lang.Byte>> moves()
           
 java.util.List<Pair<java.lang.Byte,java.lang.Byte>> moves(byte spieler)
           
 byte nextPlayer()
           
 boolean noMoreMove()
           
 ThelloGame setAtPosition(byte column, byte row)
           
 int steineZaehlen(java.util.List<Pair<java.lang.Integer,java.lang.Integer>> liste, byte player)
           
 java.lang.String toString()
           
 boolean wins(byte player)
           
 
Methods inherited from class de.fhwiesbaden.jgamp001.thello.AbstractRegularGame
currentPlayer, ended, getAtPosition, getColumns, getPlayerNone, getPlayerOne, getPlayerTwo, getRows, lastPlayer, otherPlayer, wins
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ThelloGame

public ThelloGame()
Method Detail

getSteineEins

public java.lang.Integer getSteineEins()

getSteineZwei

public java.lang.Integer getSteineZwei()

clone

public ThelloGame clone()
Overrides:
clone in class AbstractRegularGame<Pair<java.lang.Byte,java.lang.Byte>>

setAtPosition

public ThelloGame setAtPosition(byte column,
                                byte row)
Specified by:
setAtPosition in interface RegularGame<Pair<java.lang.Byte,java.lang.Byte>>
Specified by:
setAtPosition in class AbstractRegularGame<Pair<java.lang.Byte,java.lang.Byte>>

doMove

public ThelloGame doMove(Pair<java.lang.Byte,java.lang.Byte> m)

nextPlayer

public byte nextPlayer()
Overrides:
nextPlayer in class AbstractRegularGame<Pair<java.lang.Byte,java.lang.Byte>>

evalState

public int evalState(byte player)

steineZaehlen

public int steineZaehlen(java.util.List<Pair<java.lang.Integer,java.lang.Integer>> liste,
                         byte player)

moves

public java.util.List<Pair<java.lang.Byte,java.lang.Byte>> moves()

getMovesCurrent

public java.util.List<Pair<java.lang.Byte,java.lang.Byte>> getMovesCurrent()

getMovesOpponent

public java.util.List<Pair<java.lang.Byte,java.lang.Byte>> getMovesOpponent()

moves

public java.util.List<Pair<java.lang.Byte,java.lang.Byte>> moves(byte spieler)

feldSchliesstGegnerEin

public java.util.List<Pair<Pair<java.lang.Integer,java.lang.Integer>,java.lang.Integer>> feldSchliesstGegnerEin(int x,
                                                                                                                int y,
                                                                                                                byte spieler)

noMoreMove

public boolean noMoreMove()

wins

public boolean wins(byte player)

isLegalMove

public java.lang.Boolean isLegalMove(Pair<java.lang.Byte,java.lang.Byte> move)
Specified by:
isLegalMove in interface PerfectInformationGame<Pair<java.lang.Byte,java.lang.Byte>>
Specified by:
isLegalMove in interface RegularGame<Pair<java.lang.Byte,java.lang.Byte>>
Specified by:
isLegalMove in class AbstractRegularGame<Pair<java.lang.Byte,java.lang.Byte>>

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

getMovesDone

public java.lang.Integer getMovesDone()

getCurrentPlayersNumberOfStones

public java.lang.Integer getCurrentPlayersNumberOfStones()

getOpponentsNumberOfStones

public java.lang.Integer getOpponentsNumberOfStones()