|
Holger's Java API |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.antelmann.game.AbstractGame
com.antelmann.game.chess.ChessGame
public class ChessGame
ChessGame provides all external functions needed to play chess. It contains a ChessBoard which represents the game status. It overrides equals() and hashCode() to properly support serialized games.
| Constructor Summary | |
|---|---|
ChessGame()
|
|
ChessGame(String name)
|
|
| Method Summary | |
|---|---|
Object |
clone()
Any inheriting class with non-primitive members must override this clone() method to provide a full deep copy of the object, which is essential for spawnChild() to work correctly. |
boolean |
equals(Object obj)
This implementation of equals() does currently not care about the move history, it only considers the state of the board. |
boolean |
gameOver()
Current limitations: gameOver() doesn't currently check for things like insufficient material for checkmate or 3rd repititions. |
com.antelmann.game.chess.ChessBoard |
getBoard()
|
int[] |
getWinner()
getWinner() returns an array of all winning game roles - as there could be more than one winner. |
int |
hashCode()
|
GameMove[] |
listLegalMoves()
listLegalMoves() returns the legal moves for this game. |
int |
nextPlayer()
nextPlayer() returns the integer representing the game role of the next player. |
protected boolean |
popMove()
popMove undoes the last move by altering the game board to the stage before the last move happened. |
protected boolean |
pushMove(GameMove move)
pushMove takes a GameMove and alters the game according to to the move. |
protected void |
resetLists()
overridden to provide package access |
String |
toString()
overridden to provide useful information about the game |
| Methods inherited from class com.antelmann.game.AbstractGame |
|---|
addObserver, clearRedoList, getGameName, getLastMove, getLastPlayer, getLegalMoves, getLegalMoves, getMoveHistory, getNumberOfRedoMoves, getObservers, getRedoList, getResult, isLegalMove, isWinner, loadFromFile, makeMove, numberOfMoves, numberOfPlayers, redoMove, removeObserver, resetLegalMoves, saveToFile, spawnChild, undoLastMove, undoMoves |
| Methods inherited from class java.lang.Object |
|---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public ChessGame()
public ChessGame(String name)
| Method Detail |
|---|
protected void resetLists()
resetLists in class AbstractGamepublic int[] getWinner()
GamePlay
public boolean gameOver()
gameOver in class AbstractGamepublic int nextPlayer()
GamePlay
public GameMove[] listLegalMoves()
AbstractGame
listLegalMoves in class AbstractGameprotected boolean popMove()
AbstractGame
popMove in class AbstractGameprotected boolean pushMove(GameMove move)
AbstractGame
pushMove in class AbstractGamepublic com.antelmann.game.chess.ChessBoard getBoard()
public boolean equals(Object obj)
equals in class Objectpublic int hashCode()
hashCode in class Objectpublic String toString()
AbstractGame
toString in class AbstractGame
public Object clone()
throws CloneNotSupportedException
AbstractGamespawnChild() to work correctly. Ay overriding
of this method should still begin with a call to
super.clone(), though.
Also, note that this clone() method does not clone the
embedded GameMove objects, i.e. those are expected not to change
(except for their heuristics, which shouldn't affect game
functionality) - or the subclass will have to take care of this.
clone in interface GamePlayclone in class AbstractGameCloneNotSupportedExceptionAbstractGame.spawnChild(GameMove)
|
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||