The object of the game is to bring all of your game pieces safely home, while trying to avoid being sent to the “bar” by your opponent. Each turn you roll 2 dice, determining how many spaces to move your game piece(s).
Design-Time
· board: Board-grid object, 13 columns by 12 rows. Grid width property is set to zero pixels, Boolean property transparent is set to true. Horizontal offset (distance between adjacent cards) is set to one quarter of the diameter of a white/black disk. Horizontal alignment property of each cell is set to "centered".
· board-container: Layer-book object with 2 layers. Bottom layer contains a bitmap of triangular, alternating light/dark "points". Top layer contains board object.
· white-stack: Card-stack object containing one Card object (a white, circular disk). Boolean property infinite is set to true.
· black-stack: Card-stack object containing one Card object (a black, circular disk). Boolean property infinite is set to true.
· score-grid: Editable-grid object, 2 columns by 2 rows. An Editable-grid is similar to a StringGrid object in Delphi, except that it can be edited at run-time. Boolean property persistent is set to true, meaning that the contents of this grid will survive a call of the new-game method of the game-server object.
· dice: Rack-grid object of length 2. Both cells contain a Card-stack object which consists of a stack of 6 bitmap-containing Card objects. Boolean property random of both Card-stack objects is set to true.
· double-cube: Card-stack object is a stack of six string-containing Card objects.
· undo-double: Card-stack object.
Run-Time
At run-time, the player clicks on both dice to "roll" them, and then moves his or her men, dragging them from the source grid squares to the destination grid squares. The player may double by clicking the double cube, which automatically moves the top card in the double cube Card-stack to the undo-double Card-stack. To undo a double operation, the player simply clicks on the undo-double Card-stack.