(define "ThrowValue" (mapEntry "Throw" (count Pips))) (define "Throw4" (= ("ThrowValue") 4)) (define "SiteToMoveOnTrack" ("NextSiteOnTrack" #2 #1)) (define "AllPiecesInCenter" ("AllOwnedPiecesIn" (sites {(centrePoint)}))) //------------------------------------------------------------------------------ (game "Tamman" (players ) (equipment { (board (merge { (add (merge { (square 2) (shift 4 0 (square 2)) (shift 0 4 (square 2)) (shift 4 4 (square 2)) }) edges:{{2 9} {5 12} {8 15} {6 18} {8 20} {15 27} {17 29} {20 27} {23 30} {26 33} {7 19} {16 28}} ) }) { } ) ("StickDice" 4) (piece "Marker" Each (move (from (from) level:(level)) (to ("SiteToMoveOnTrack" from:(from) ("ThrowValue")) if:True (apply (if (< 1 ("ThrowValue")) (forEach Site (sites Track Mover "Track" from:("SiteToMoveOnTrack" from:(from) 1) to:("SiteToMoveOnTrack" from:(from) (- ("ThrowValue") 1))) (if (not (is In (sites "SafeSites"))) (forEach Level (site) FromTop (if ("IsEnemyAt" (site) level:(level)) (fromTo (from (site) level:(level)) (to (mapEntry "Entry" (who at:(site) level:(level))) ) ) ) ) ) ) ) ) ) ) ) (regions "SafeSites" (sites {2 6 14 20})) (map "Throw" {(pair 0 8) (pair 1 1) (pair 2 2) (pair 3 3) (pair 4 4)}) }) (rules (play ("RollMove" (forEach Piece) (then (if (and ("Throw4") ("NewTurn")) (moveAgain) ) ) ) ) (end (if ("AllPiecesInCenter") (result Mover Win))) ) ) //------------------------------------------------------------------------------ (option "Players" args:{ } { (item "2" <2> < (start { (place Stack "Marker1" 2 count:4) (place Stack "Marker2" 20 count:4) }) > < (track "Track1" "2,E,N,W,S,E1,N3,E2,S2,W1,N1" P1 directed:True) (track "Track2" "20,W,S,E,N,W1,S3,W2,N2,E1,S1" P2 directed:True) > <(map "Entry" {(pair P1 2) (pair P2 20)})> "The game is played with 2 players." ) (item "3" <3> < (start { (place Stack "Marker1" 2 count:4) (place Stack "Marker2" 6 count:4) (place Stack "Marker3" 20 count:4) }) > < (track "Track1" "2,E,N,W,S,E1,N3,E2,S2,W1,N1" P1 directed:True) (track "Track2" "6,S,E,N,W,S1,E3,S2,W2,N1,E1" P2 directed:True) (track "Track3" "20,W,S,E,N,W1,S3,W2,N2,E1,S1" P3 directed:True) > <(map "Entry" {(pair P1 2) (pair P2 6) (pair P3 20)})> "The game is played with 3 players." ) (item "4" <4> < (start { (place Stack "Marker1" 2 count:4) (place Stack "Marker2" 6 count:4) (place Stack "Marker3" 20 count:4) (place Stack "Marker4" 14 count:4) }) > < (track "Track1" "2,E,N,W,S,E1,N3,E2,S2,W1,N1" P1 directed:True) (track "Track2" "6,S,E,N,W,S1,E3,S2,W2,N1,E1" P2 directed:True) (track "Track3" "20,W,S,E,N,W1,S3,W2,N2,E1,S1" P3 directed:True) (track "Track4" "14,N,W,S,E,N1,W3,N2,E2,S1,W1" P4 directed:True) > <(map "Entry" {(pair P1 2) (pair P2 6) (pair P3 20) (pair P4 14)})> "The game is played with 4 players." )* }) //------------------------------------------------------------------------------ (rulesets { (ruleset "Ruleset/Tamman (Described)" { "Players/4" } variations:{"Players/2" "Players/3"} )* }) //------------------------------------------------------------------------------ (metadata (info { (description "Tamman is a race game with a spiralling track on a square board that was played in the coastal regions of Somaliland in the early twentieth century.") (rules "5x5 board; the central row and column being slightly wider than the others. Two to four players. Four pieces per player. Pieces begin on one of the central squares around the perimeter of the squares; if there are two players, they begin from opposite sides. Four cowrie shells are used as dice, with the count of the throw determined by the number of mouths which land face-up, with none facing up equaling 8. A throw of 4 gives the player another throw. Only the first throw matters for winning extra throws. Pieces move anti-clockwise from their origin point around the perimeter of the square, until they come to the final square before returning to the origin point. They then turn left and proceed around the inner perimeter of squares in a clockwise direction, until the space directly between the origin point and the central square, from which the pieces proceed to the center. When a piece overtakes a piece owned by the opponent, and the opponent's piece is not on one of the central squares of the perimeter, the opponent's pieces are sent back to the origin point, and the player is awarded an extra throw for each piece sent back. The first player to place their four pieces in the center wins. ") (source "Marin 1931: 510-511.") (id "199") (version "1.3.12") (classification "board/race/reach") (credit "Eric Piette") } ) (graphics { (stackType site:8 Ring) (stackType 0 Ground) (piece Scale "Marker" 0.5) (board Colour Phase0 (colour 223 178 110)) (board Colour InnerEdges (colour Black)) (board Colour OuterEdges (colour Black)) }) )