org.dartra.games.cricket
Class CricketGame

java.lang.Object
  extended byorg.dartra.standard.PersistentObject
      extended byorg.dartra.standard.StandardGame
          extended byorg.dartra.games.cricket.CricketGame
All Implemented Interfaces:
Game, Persistent
Direct Known Subclasses:
CutThroatCricketGame, FreeChoiceCricketGame, GentlemensCricketGame, ScramCricketGame, ScramCricketGame.ScramCricketGamePart, SuicideCricketGame

public class CricketGame
extends StandardGame

CricketGame implementation

Author:
Bieke Meeussen

Field Summary
protected static java.lang.String[] DEFAULT_GOALS
           
protected  java.util.Hashtable goalsMap
           
 
Constructor Summary
  CricketGame(StandardBoard board, Player[] players, boolean usePoints)
           
  CricketGame(StandardBoard board, Player[] players, StringProperties props)
           
protected CricketGame(java.lang.String name, StandardBoard board, Player[] players, boolean usePoints)
           
protected CricketGame(java.lang.String name, StandardBoard board, Player[] players, boolean usePoints, java.lang.String[] goals)
           
protected CricketGame(java.lang.String name, StandardBoard board, Player[] players, StringProperties props)
           
 
Method Summary
protected  void addHitToTracker(Player player, java.util.Hashtable goalsTracker, java.util.Hashtable scoreTracker, Hit hit)
           
protected  void addPlayerThrow(Zone hitTargetZone, Hit hit)
           
 void addTurnToTracker(Turn turn, java.util.Hashtable goalsTracker, java.util.Hashtable scoreTracker)
           
protected  Player calculateWinner()
           
protected  void changePlayer()
           
protected  java.util.Hashtable createTracker()
           
protected  boolean emptyTurn(Turn turn)
           
protected  int findPlace(int numberThrown)
           
protected  boolean gameOver()
           
 java.lang.String[] getGoals()
           
 java.util.Hashtable getGoalsMap()
           
 Objective getObjective()
          Get the current objective of the game: the current player should try to hit a zone of the board, or should end this turn.
 Score getPlayerScore(Player player)
          Get the current score for given player in this game.
 StringProperties getProperties()
          Subclasses should implement this to properly return their game specific properties (for instance the "start score" for an x01 game).
protected  int highestScoreNumber(Player player)
           
protected  Zone highestScoreZone(Player player)
           
protected  boolean isClosedByOtherPlayer(int number, Player player)
           
protected  boolean isClosedByPlayer(int number, Player player)
           
 boolean isUsePoints()
           
 int multiplierToClose(int number, Player player)
           
 void registerHit(Zone targetZone, Hit hit)
          Register the hit of a dart on the board.
 int score(int[] scoreTracker)
           
 void setGoals(java.lang.String[] newGoals)
           
 void setUsePoints(boolean b)
           
protected  Zone suggestZone(int number, int multiplier)
           
 java.lang.String toString()
           
protected  boolean turnOver()
           
protected  boolean wasClosedByOtherPlayer(java.util.Hashtable goalsTracker, int place, Player player)
           
protected  boolean wasClosedByPlayer(java.util.Hashtable goalsTracker, int place, Player player)
           
protected  Zone zoneToCloseHighestOpenForPlayer(Player player)
           
 
Methods inherited from class org.dartra.standard.StandardGame
accept, addGameEventListener, addTurn, getBoard, getCurrentPlayer, getCurrentTurn, getEndTime, getFirstPlayer, getGameEventListeners, getName, getPlayer, getPlayers, getPlayerTurn, getPlayerTurnHistory, getStartTime, getTurn, getTurnHistory, getWinner, removeGameEventListener, setEndTime, setFirstPlayer, setPlayers, setStartTime, setWinner, start, undoHit
 
Methods inherited from class org.dartra.standard.PersistentObject
getId, setId
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.dartra.framework.Persistent
getId, setId
 

Field Detail

DEFAULT_GOALS

protected static final java.lang.String[] DEFAULT_GOALS

goalsMap

protected java.util.Hashtable goalsMap
Constructor Detail

CricketGame

public CricketGame(StandardBoard board,
                   Player[] players,
                   boolean usePoints)

CricketGame

public CricketGame(StandardBoard board,
                   Player[] players,
                   StringProperties props)

CricketGame

protected CricketGame(java.lang.String name,
                      StandardBoard board,
                      Player[] players,
                      boolean usePoints)

CricketGame

protected CricketGame(java.lang.String name,
                      StandardBoard board,
                      Player[] players,
                      boolean usePoints,
                      java.lang.String[] goals)

CricketGame

protected CricketGame(java.lang.String name,
                      StandardBoard board,
                      Player[] players,
                      StringProperties props)
Method Detail

getObjective

public Objective getObjective()
Description copied from interface: Game

Get the current objective of the game: the current player should try to hit a zone of the board, or should end this turn.

See Also:
Game.getObjective()

registerHit

public void registerHit(Zone targetZone,
                        Hit hit)
Description copied from interface: Game

Register the hit of a dart on the board. A particular zone of the board was targetted.

See Also:
Game.registerHit(org.dartra.framework.Zone, org.dartra.framework.Hit)

getPlayerScore

public Score getPlayerScore(Player player)
Description copied from interface: Game

Get the current score for given player in this game.

See Also:
Game.getPlayerScore(org.dartra.framework.Player)

toString

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

getProperties

public StringProperties getProperties()
Description copied from class: StandardGame

Subclasses should implement this to properly return their game specific properties (for instance the "start score" for an x01 game).

It is legal to return null if there are no game specific properties.

Specified by:
getProperties in class StandardGame

score

public int score(int[] scoreTracker)

createTracker

protected java.util.Hashtable createTracker()

addTurnToTracker

public void addTurnToTracker(Turn turn,
                             java.util.Hashtable goalsTracker,
                             java.util.Hashtable scoreTracker)

addHitToTracker

protected void addHitToTracker(Player player,
                               java.util.Hashtable goalsTracker,
                               java.util.Hashtable scoreTracker,
                               Hit hit)

wasClosedByOtherPlayer

protected boolean wasClosedByOtherPlayer(java.util.Hashtable goalsTracker,
                                         int place,
                                         Player player)

wasClosedByPlayer

protected boolean wasClosedByPlayer(java.util.Hashtable goalsTracker,
                                    int place,
                                    Player player)

findPlace

protected int findPlace(int numberThrown)

addPlayerThrow

protected void addPlayerThrow(Zone hitTargetZone,
                              Hit hit)

zoneToCloseHighestOpenForPlayer

protected Zone zoneToCloseHighestOpenForPlayer(Player player)

suggestZone

protected Zone suggestZone(int number,
                           int multiplier)

highestScoreZone

protected Zone highestScoreZone(Player player)

isClosedByPlayer

protected boolean isClosedByPlayer(int number,
                                   Player player)

isClosedByOtherPlayer

protected boolean isClosedByOtherPlayer(int number,
                                        Player player)

highestScoreNumber

protected int highestScoreNumber(Player player)

multiplierToClose

public int multiplierToClose(int number,
                             Player player)

emptyTurn

protected boolean emptyTurn(Turn turn)

gameOver

protected boolean gameOver()

calculateWinner

protected Player calculateWinner()

turnOver

protected boolean turnOver()

changePlayer

protected void changePlayer()

getGoals

public java.lang.String[] getGoals()

isUsePoints

public boolean isUsePoints()

setUsePoints

public void setUsePoints(boolean b)

setGoals

public void setGoals(java.lang.String[] newGoals)

getGoalsMap

public java.util.Hashtable getGoalsMap()