|
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.puzzle.WSPuzzle
public class WSPuzzle
WSPuzzle implements the 'Wolf & Sheep Puzzle'.
This puzzle is inspired by
http://www.fitzweb.com/brainteasers/wolves.shtml
The solution can be easily found by searching through 6379
game positions.
| Field Summary | |
|---|---|
static byte |
SHEEP
|
static byte |
WOLF
|
| Constructor Summary | |
|---|---|
WSPuzzle()
|
|
| 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. |
int[] |
getWinner()
getWinner() returns an array of all winning game roles - as there could be more than one winner. |
protected GameMove[] |
listLegalMoves()
lists all legal moves. |
static void |
main(String[] args)
solves the puzzle and then fires up a GUI to let you examine the solution |
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. |
static GamePlay |
searchSolution()
tries to solve the puzzle with GameUtilities functions |
String |
toString()
overridden to provide useful information about the game |
| Methods inherited from class com.antelmann.game.AbstractGame |
|---|
addObserver, clearRedoList, gameOver, getGameName, getLastMove, getLastPlayer, getLegalMoves, getLegalMoves, getMoveHistory, getNumberOfRedoMoves, getObservers, getRedoList, getResult, isLegalMove, isWinner, loadFromFile, makeMove, numberOfMoves, numberOfPlayers, redoMove, removeObserver, resetLegalMoves, resetLists, saveToFile, spawnChild, undoLastMove, undoMoves |
| Methods inherited from class java.lang.Object |
|---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
public static final byte WOLF
public static final byte SHEEP
| Constructor Detail |
|---|
public WSPuzzle()
| Method Detail |
|---|
public static void main(String[] args)
public static GamePlay searchSolution()
protected GameMove[] listLegalMoves()
listLegalMoves in class AbstractGameprotected boolean pushMove(GameMove move)
AbstractGame
pushMove in class AbstractGameprotected boolean popMove()
AbstractGame
popMove in class AbstractGamepublic int nextPlayer()
GamePlay
public int[] getWinner()
GamePlay
public 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 | |||||||||