Rules
[Tow Bowl Tactics]

Located in bb5/common directory. More...

Collaboration diagram for Rules:

Classes

class  Ball< T >
 Base class describing the ball. More...
class  Dice
 X-faced dice. More...
class  Field< T >
 Game playing ground.Parameter T: Player type (CPlayer or SPlayer). More...
class  Match< T >
 Base class describing a BB match. More...
class  Player
 Base class describing a BB player. More...
class  Team< T >
 Base class describing a BB team. More...
class  Weather
 Base class for storing current match weather. More...
struct  MsgBallCoord
 Changes Ball Coordinates.Client -> Server, only during a kick-off. Server -> Client, at any time of the game. More...
struct  MsgBallOwner
 Changes Ball owner.Client -> Server, after a touchback. Server -> Client, at any time of the game. More...
struct  MsgInitGame
 Both coaches and arbiter are ready.Server -> Client. More...
struct  MsgInitHalf
 A new half-time begins.Server -> Client. More...
struct  MsgDrawKicker
 Drawn coach chooses to either kick or receive the ball.Server <-> Client. More...
struct  MsgInitKickoff
 Teams and ball placement during a kick-off.Server <-> Client. More...
struct  MsgTouchBack
 Team is awarded a touchback.Server -> Client. More...
struct  MsgNewTurn
 A new turn begins.Server -> Client. More...
struct  MsgRequestProcessed
 A coach's request (action, effort, etc.) has been fully processed.Server -> Client. More...
struct  MsgEndTurn
 The turn ends.Client <-> Server. More...
struct  MsgEndGame
 Game ends, according to the rules.Server <-> Client. More...
struct  MsgCancelGame
 Game is cancelled, according to the rules.Server -> Client. More...
struct  MsgTimer
 Timer Synchronization.Client <-> Server. More...
struct  MsgTurnOver
 A turnover happens.Client <-> Server. More...
struct  MsgMoveTurnMarker
 Coach moves his turn marker.Client <-> Server. More...
struct  MsgIllegalProc
 Coach asks for an illegal procedure.Client <-> Server. More...
struct  MsgChat
 Coaches have better to play rather than use this...Client <-> Server. FIXME: Handle different charsets. More...
struct  MsgDebug
 Request both server and clients to print a debug trace.Client <-> Server. More...
struct  MsgIllegal
 A client sent an illegal request.Server -> Client. More...
struct  MsgCheatDice
 Load the next Dice roll result.Client -> Server, used for rules tests. More...
struct  MsgAction
 A player begins or ends his action.Client <-> Server. More...
struct  MsgEffort
 A player does an effort (woow).Client UI <- Client API. More...
struct  MsgMove
 A Player moves of one or several squares.Client <-> Server. More...
struct  MsgStandUp
 A Player stands up.Client <-> Server. More...
struct  MsgFoul
 Player fouls a prone or stunned opponent.Client <-> Server. More...
struct  MsgHandOff
 Player hands the ball off to a standing adjacent player.Client <-> Server. More...
struct  MsgBlock
 Player blocks as standing opponent.Client <-> Server. More...
struct  MsgBlockPush
 A Player pushes another Player, due to a block.Client <-> Server. More...
struct  MsgMultiBlock
 TODO FOR EXTRA RULES: See skill MultiBlock.Client <-> Server. More...
struct  MsgPass
 A Player throws the ball.Client <-> Server. More...
struct  MsgPlayerCreate
 Create a Player at the very beginning of the game.Client <-> Server. More...
struct  MsgPlayerCoord
 Player Coordinates changed.Client <-> Server. More...
struct  MsgPlayerKnocked
 A Player is knocked down to the ground.Client <-> Server. More...
struct  MsgPlayerStatus
 Player status changed.Client <-> Server. More...
struct  MsgPlayerMaRemain
 Player mouvement allowance remaining changed.Server -> Client. More...
struct  MsgResult
 Dice roll result associated to a Player, often agility roll.Server -> Client. More...
struct  MsgBlockResult
 Block dices roll result.Server -> Client. More...
struct  MsgBlockDice
 Coach chooses a block dice roll result.Client -> Server. More...
struct  MsgFollow
 Attacker follows the defender after having pushed him.Client <-> Server. More...
struct  MsgSkill
 A player use one of his skill.Client <-> Server. More...
struct  MsgReroll
 Team reroll use, or result acceptation.Client <-> Server. More...
struct  MsgTeamInfo
 Create a Team, at the very beginning of the game.Client <-> Server. More...
struct  MsgTouchdooown
 Touchdooown!Server <-> Client. More...
struct  MsgWeather
 Current Weather.Server -> Client. More...

Enumerations

enum  eDirection {
  DIR_UNASSIGNED = 0, DIR_NORTHWEST, DIR_NORTH, DIR_NORTHEAST,
  DIR_EAST, DIR_SOUTHEAST, DIR_SOUTH, DIR_SOUTHWEST,
  DIR_WEST, DIR_LAST = DIR_WEST
}
 

Scatter template.

More...

Variables

const int MAX_MOVE = 16
 Maximum number of moves for a single MsgMove packet.
const int MAX_SKILL = 16
 Maximum number of skills for a single MsgPlayerCreate packet.



enum  {
  GS_UNASSIGNED = 0, GS_INITGAME, GS_INITHALF, GS_DRAWKICKER,
  GS_INITKICKOFF, GS_KICKOFF, GS_TOUCHBACK, GS_TOUCHDOOOWN,
  GS_CELEBRATE, GS_TURN, GS_REROLL, GS_BLOCK,
  GS_PUSH, GS_FOLLOW, GS_SKILL, GS_LAST = GS_SKILL
}
 

Constants describing the current state of the game.

More...
enum  {
  MSG_CHAT = 0, MSG_DEBUG, MSG_ILLEGAL, MSG_INITGAME,
  MSG_INITHALF, MSG_DRAWKICKER, MSG_INITKICKOFF, MSG_TOUCHBACK,
  MSG_CHEATDICE, MSG_RESULT, MSG_BLOCKRESULT, MSG_BLOCKDICE,
  MSG_FOLLOW, MSG_REROLL, MSG_NEWTURN, MSG_ENDTURN,
  MSG_ENDGAME, MSG_CANCELGAME, MSG_BALLCOORD, MSG_BALLOWNER,
  MSG_WEATHER, MSG_TIMER, MSG_TURNOVER, MSG_TOUCHDOOOWN,
  MSG_TEAMINFO, MSG_PLAYERCREATE, MSG_PLAYERCOORD, MSG_PLAYERKNOCKED,
  MSG_PLAYERSTATUS, MSG_PLAYERMAREMAIN, MSG_SKILL, MSG_ROLLINFO,
  MSG_MOVETURNMARKER, MSG_ILLEGALPROC, MSG_ACTION, MSG_EFFORT,
  MSG_REQUESTPROCESSED, MSG_MOVE, MSG_STANDUP, MSG_BLOCK,
  MSG_BLOCKPUSH, MSG_MULTIBLOCK, MSG_FOUL, MSG_HANDOFF,
  MSG_PASS, RULES_TOKEN_LAST
}
 

Tokens used for the game.

More...
enum  eStatus {
  STA_UNASSIGNED = 0, STA_RESERVE, STA_STANDING, STA_PRONE,
  STA_STUNNED, STA_KO, STA_INJURED, STA_SENTOFF,
  STA_LAST = STA_SENTOFF
}
 

Player status.

More...
enum  eAction {
  ACT_UNASSIGNED = 0, ACT_MOVE, ACT_BLOCK, ACT_BLITZ,
  ACT_FOUL, ACT_PASS, ACT_TRANSMIT, ACT_LAST = ACT_TRANSMIT
}
 

Player actions, which are the bits of a team turn.

More...
enum  eEffort {
  EFF_UNASSIGNED = 0, EFF_BLOCK, EFF_FOUL, EFF_HANDOFF,
  EFF_MOVE, EFF_STANDUP, EFF_THROW, EFF_LAST = EFF_THROW
}
 

Player efforts, which are the bits of a player action.

More...
enum  eRoll {
  R_UNASSIGNED = 0, R_ARMOUR, R_BLOCK, R_CATCH,
  R_DODGE, R_INJURY, R_PICKUP, R_REGENERATE,
  R_STANDUP, R_TAME, R_THROW, R_WAKEUP,
  R_LAST = R_WAKEUP
}
 

Type of dice Roll.

More...
enum  eSkill {
  SK_UNASSIGNED = 0, SK_BLOCK, SK_CATCH, SK_CLAWS,
  SK_DODGE, SK_GUARD, SK_HORNS, SK_MIGHTYBLOW,
  SK_PASS, SK_REGENERATION, SK_SUREHANDS, SK_STRONGARM,
  SK_STUNTY, SK_TACKLE, SK_TITCHY, SK_THICKSKULL,
  SK_WILDANIMAL, SK_LAST = SK_WILDANIMAL
}
 

List of player skills.

More...
enum  eTurnOverMotive {
  TOM_UNASSIGNED = 0, TOM_KNOCKEDDOWN, TOM_LOSTBALL, TOM_FAILEDPICKUP,
  TOM_TOUCHDOOOWN, TOM_TIMEEXCEEDED, TOM_FUMBLEDPASS, TOM_THROWNTMFAILED,
  TOM_EJECTEDFORAFOUL, TOM_LAST = TOM_EJECTEDFORAFOUL
}
 

Motive for turnover.

More...
enum  eError {
  ERR_UNASSIGNED = 0, ERR_UNREADABLE, ERR_WRONGCONTEXT, ERR_INVALIDTEAMINFO,
  ERR_ALREADYEXISTS, ERR_INVALIDPLAYERINFO, ERR_NONEXISTENTPLAYER, ERR_CANNOTENTERINPLAY,
  ERR_ALREADYHERE, ERR_PLAYERSINOPPOSITEHALF, ERR_TOOMANYPLAYERSINWIDEZONE, ERR_LINEOFSCRIMMAGENOTFILLED,
  ERR_TOOMANYPLAYERSINTHEFIELD, ERR_TOOMANYPLAYERSINRESERVE, ERR_INVALIDBALLPLACEMENT, ERR_CANNOTCARRYTHEBALL,
  ERR_HASPLAYED, ERR_ISPLAYING, ERR_SINGLEACTIONUSED, ERR_ACTIONMISSEFFORT,
  ERR_NOTACTIVEPLAYER, ERR_SINGLEEFFORTUSED, ERR_PLAYERSTATUS, ERR_NONEXISTENTTARGET,
  ERR_DOESNTOWNTHEBALL, ERR_CANTPASSTOTHECROWD, ERR_CANTPASSTHATFARAWAY, ERR_NOTENOUGHMOVEMENT,
  ERR_NOTADJACENTSQUARE, ERR_NOTEMPTYSQUARE, ERR_USEDTEAMREROLL, ERR_NOTSKILLED,
  ERR_USEDSKILL, ERR_LAST = ERR_USEDSKILL
}
 

List of possible errors, for use in MsgIllegal.

More...
const char * bb5_gamestate_str [1+GS_LAST]
 Game state string constants for bb5 rules.
const int MAX_PERIOD = 5
 Maximum number of periods in a game.
const char * bb5_period_str [1+MAX_PERIOD]
 Game period string constants for bb5 rules.
const int COLS = 15
 Field width [| 0, 14 |].
const int ROWS = 26
 Field length [| 0, 25 |].
const int SIDE = 4
 Wide zone width [| 0, 3 |] [| 11, 14 |].
const int HOME = 0
 Home team identifiant.
const int VISITOR = 1
 Visitor team identifiant.
const int MAX_PLAYER = 16
 Maximum number of players in a team.
const int INVALID_REQUEST = -4
 Coach's request doesn't follow the rules.
const int BAD_TEAM = -3
 No team has been selected.
const int BAD_PLAYER = -2
 No player has been selected.
const int BAD_ARGUMENT = -1
 Your client program stinks.
const int SUCCESS = 0
 Success.
const char * bb5_token_str [RULES_TOKEN_LAST]
 Token string constants for bb5 rules.
const char * bb5_playerstatus_str [1+STA_LAST]
 Player status string constants for bb5 rules.
const char * bb5_action_str [1+ACT_LAST]
 Action string constants for bb5 rules.
const char * bb5_effort_str [1+EFF_LAST]
 Effort string constants for bb5 rules.
const char * bb5_roll_str [1+R_LAST]
 Roll string constants for bb5 rules.
const char * bb5_skill_str [1+SK_LAST]
 Skill string constants for bb5 rules.
const char * bb5_turnovermotive_str [1+TOM_LAST]
 Turnover motive string constants for bb5 rules.
const char * bb5_error_str [1+ERR_LAST]
 Errors string constants for bb5 rules.
int kickoff
 Whether kick off or receive the ball.
int place_team
 Place team or kick-off the ball.
 END_PACKET
 DECLARE_PACKET (MSG_DRAWKICKER, MsgDrawKicker)
 DECLARE_PACKET (MSG_INITKICKOFF, MsgInitKickoff)
 DECLARE_PACKET (MSG_TOUCHBACK, MsgTouchBack)
 DECLARE_PACKET (MSG_REQUESTPROCESSED, MsgRequestProcessed)
 DECLARE_PACKET (MSG_ENDTURN, MsgEndTurn)
 DECLARE_PACKET (MSG_CANCELGAME, MsgCancelGame)
 DECLARE_PACKET (MSG_MOVETURNMARKER, MsgMoveTurnMarker)
 DECLARE_PACKET (MSG_ILLEGALPROC, MsgIllegalProc)
 DECLARE_PACKET (MSG_DEBUG, MsgDebug)



enum  eDiceFaceNumber {
  D2 = 2, D3, D4, DBLOCK,
  D6, D8 = 8, D10 = 10, D12 = 12,
  D16 = 16, D66 = 666
}
 

Some Dice number of face.


enum  eBlockDiceFace {
  BATTACKER_DOWN = 1, BBOTH_DOWN, BPUSHED, BDEFENDER_STUMBLE,
  BDEFENDER_DOWN
}
 

Faces of block dice.



Detailed Description

Located in bb5/common directory.


Enumeration Type Documentation

anonymous enum

Constants describing the current state of the game.

Note:
You can get a stringified version into the class Api.
Enumerator:
GS_INITGAME 

Wait for coaches to declare their team and players.

GS_INITHALF 

Wait for arbiter to prepare the beginning of a half-time.

GS_DRAWKICKER 

Wait for coach to choose to either kick off or receive the ball.

GS_INITKICKOFF 

Wait for coach to set up team placement.

GS_KICKOFF 

Wait for coach to place the ball on the field.

GS_TOUCHBACK 

Wait for coach to give the ball to one of his players.

GS_TOUCHDOOOWN 

Wait for coaches to calm down after a touchdooown!

GS_CELEBRATE 

Wait for coaches to celebrate the end of the match.

GS_TURN 

Any team's turn.

GS_REROLL 

Wait for coach to use or not a reroll.

GS_BLOCK 

Wait for coach to choose a block dice.

GS_PUSH 

Wait for coach to choose a square.

GS_FOLLOW 

Wait for coach to follow or not, after a block.

GS_SKILL 

Wait for coach to use or not a skill.

anonymous enum

Tokens used for the game.

See also:
Packet.
Note:
Keep this list below BASE_TOKEN_START (248), otherwise you'll run into trouble.
enum eAction

Player actions, which are the bits of a team turn.

Note:
You can get a stringified version into the class Player.
enum eDirection

Scatter template.

Note:
It is slightly different from BB's template.
123
8B4
765
enum eEffort

Player efforts, which are the bits of a player action.

Note:
You can get a stringified version into the class Player.
enum eError

List of possible errors, for use in MsgIllegal.

Note:
You can get a stringified version into the class Rules.
enum eRoll

Type of dice Roll.

Note:
You can get a stringified version into the class Dice.
enum eSkill

List of player skills.

Note:
You can get a stringified version into the class Player.
enum eStatus

Player status.

Note:
You can get a stringified version into the class Player.

Motive for turnover.

Note:
You can get a stringified version into the class Rules.

Variable Documentation

const int BAD_ARGUMENT = -1
const int BAD_PLAYER = -2

No player has been selected.

See also:
Api

Referenced by Api::doGiveBall(), Api::doUseSkill(), Api::selectPlayer(), and Api::selectSkilledPlayer().

const int BAD_TEAM = -3

No team has been selected.

See also:
Api
const char* bb5_action_str[1+ACT_LAST]

Action string constants for bb5 rules.

Note:
Keep it synchronized with ACT_* enum above.

Referenced by Player::stringify().

const char* bb5_effort_str[1+EFF_LAST]

Effort string constants for bb5 rules.

Note:
Keep it synchronized with EFF_* enum above.

Referenced by Player::stringify().

const char* bb5_error_str[1+ERR_LAST]

Errors string constants for bb5 rules.

Note:
Keep it synchronized with ERR_* enum above.

Referenced by Match< T >::stringify().

const char* bb5_gamestate_str[1+GS_LAST]

Game state string constants for bb5 rules.

Note:
Keep it synchronized with GS_* enum above.

Referenced by Match< T >::stringifyGameState().

const char* bb5_period_str[1+MAX_PERIOD]

Game period string constants for bb5 rules.

Note:
Keep it synchronized with MAX_PERIOD constant above.

Referenced by Match< T >::stringifyPeriod().

const char* bb5_playerstatus_str[1+STA_LAST]

Player status string constants for bb5 rules.

Note:
Keep it synchronized with STA_* enum above.

Referenced by Player::stringify().

const char* bb5_roll_str[1+R_LAST]

Roll string constants for bb5 rules.

Note:
Keep it synchronized with R_* enum above.

Referenced by Dice::stringify().

const char* bb5_skill_str[1+SK_LAST]

Skill string constants for bb5 rules.

Note:
Keep it synchronized with SK_* enum above.

Referenced by Player::stringify().

const char* bb5_token_str[RULES_TOKEN_LAST]

Token string constants for bb5 rules.

Note:
Keep it synchronized with MSG_* enum above.

Referenced by Match< T >::tokenToString().

const char* bb5_turnovermotive_str[1+TOM_LAST]

Turnover motive string constants for bb5 rules.

Note:
Keep it synchronized with TOM_* enum above.

Referenced by Match< T >::stringify().

const int INVALID_REQUEST = -4
int kickoff

Whether kick off or receive the ball.

-1 Server gives the coach his choice. 0 Team will receive the ball. 1 Team will kick off the ball.

const int SUCCESS = 0
Generated on Mon Apr 5 21:17:25 2010 for Stechec/TBT by  doxygen 1.6.3