(game "Cram" (players 2) (equipment { (board (rectangle )) (tile "Tile" P1 {F} numSides:4) (tile "Tile" P2 {F} numSides:4) }) (rules (play (or (move Add (piece (mover) state:0) (to (sites Empty)) ) (move Add (piece (mover) state:1) (to (sites Empty)) ) ) ) (end ("NoMoves" )) ) ) //------------------------------------------------------------------------------ (option "Rows" args:{ } { (item "1" <1> "The board has 1 row.") (item "2" <2> "The board has 2 rows.") (item "3" <3> "The board has 3 rows.") (item "4" <4> "The board has 4 rows.") (item "5" <5> "The board has 5 rows.") (item "6" <6> "The board has 6 rows.")* (item "7" <7> "The board has 7 rows.") (item "8" <8> "The board has 8 rows.") (item "9" <9> "The board has 9 rows.") (item "10" <10> "The board has 10 rows.") (item "11" <11> "The board has 11 rows.") (item "12" <12> "The board has 12 rows.") (item "13" <13> "The board has 13 rows.") (item "14" <14> "The board has 14 rows.") (item "15" <15> "The board has 15 rows.") (item "16" <16> "The board has 16 rows.") (item "17" <17> "The board has 17 rows.") (item "18" <18> "The board has 18 rows.") (item "19" <19> "The board has 19 rows.") } ) (option "Columns" args:{ } { (item "2" <2> "The board has 2 columns.") (item "3" <3> "The board has 3 columns.") (item "4" <4> "The board has 4 columns.") (item "5" <5> "The board has 5 columns.") (item "6" <6> "The board has 6 columns.")* (item "7" <7> "The board has 7 columns.") (item "8" <8> "The board has 8 columns.") (item "9" <9> "The board has 9 columns.") (item "10" <10> "The board has 10 columns.") (item "11" <11> "The board has 11 columns.") (item "12" <11> "The board has 12 columns.") (item "13" <11> "The board has 13 columns.") (item "14" <14> "The board has 14 columns.") (item "15" <14> "The board has 15 columns.") (item "16" <14> "The board has 16 columns.") (item "17" <14> "The board has 17 columns.") (item "18" <14> "The board has 18 columns.") (item "19" <19> "The board has 19 columns.") } ) (option "End" args:{} { (item "Normal" "The Last player to play wins.")* (item "Misere" "The Last player to play loses.") } ) //------------------------------------------------------------------------------ (metadata (info { (description "Cram is a mathematical game played on a sheet of graph paper. It is the impartial version of Domineering and the only difference in the rules is that each player may place their dominoes in either orientation, but it results in a very different game.") (aliases {"Plugg" "Dots and Pairs"}) (rules "The game is played on a sheet of graph paper, with any set of designs traced out. It is most commonly played on rectangular board like a 6×6 square. Two players have a collection of dominoes which they place on the grid in turn. A player can place a domino either horizontally or vertically. Contrary to the related game of Domineering, the possible moves are the same for the two players, and Cram is then an impartial game. As for all impartial games, there are two possible conventions for victory: in the normal game, the first player who cannot move loses, and on the contrary, in the misere version, the first player who cannot move wins.") (id "683") (source "Wikipedia") (version "1.3.14") (classification "board/space/blocking") (author "Martin Gardner") (credit "Eric Piette") } ) (graphics { (player Colour P1 (colour Blue)) (player Colour P2 (colour Red)) }) (ai "Cram_ai" ) )