(game "Guettal"
)
//
(option "Variant" args:{ }
{
(item "Guettal (Ludii 1)" <
(players {
(player N)
(player S)
}
)
(equipment {
(board
(rectangle 5 5 diagonals:Alternating)
use:Vertex)
(piece "Counter" Each
(or
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(is In
(last To)
(sites Next)
)
(promote
(last To)
(piece "DoubleCounter")
Mover )
)
(set Value Mover 0)
)
)
)
(move Step
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 1)
)
)
(then
(if
(is In
(last To)
(sites Next)
)
(promote
(last To)
(piece "DoubleCounter")
Mover)
)
)
)
)
}
)
(rules
(start {
(place "Counter1"
(union {
(expand
(sites Bottom)
)
(sites { "D3" "E3"}
)
}
)
)
(place "Counter2"
(union {
(sites { "A3" "B3"}
)
(expand
(sites Top)
)
}
)
)
}
)
(play
(or
(if
(and
(not
(is Prev Mover)
)
(=
(value Player Prev)
1)
)
(or
(if
(and
(is In
(last From)
(sites Pending)
)
(is In
(last From)
(sites Empty)
)
)
(move Select
(from
(last To)
if:
(is Occupied
(from)
)
)
(then
(and {
(remove
(last To)
)
(moveAgain)
(set Value Prev 0)
}
)
)
)
)
(move Select
(from
(sites Pending)
if:
(is Occupied
(from)
)
)
(then
(and {
(remove
(last To)
)
(moveAgain)
(set Value Prev 0)
}
)
)
)
)
)
(if
(is Prev Mover)
(if
(=
(last To)
(last From)
)
(do
(set Pending
(sites From
(forEach Piece "Counter"
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between )
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
)
)
)
next:
(forEach Piece "Counter"
(or
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between )
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
(move Step
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 1)
)
)
)
)
)
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 0)
)
)
)
(do
(set Pending
(sites From
(forEach Piece "Counter"
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between )
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
)
)
)
next:
(forEach Piece "Counter"
(or
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
(move Step
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 1)
)
)
)
)
)
)
)
)
(end
(if
(and
(no Moves P1)
(no Moves P2)
)
{
(if
(<
(count Pieces P1)
(count Pieces P2)
)
(result P2 Win)
)
(if
(<
(count Pieces P2)
(count Pieces P1)
)
(result P1 Win)
)
(if
(=
(count Pieces P2)
(count Pieces P1)
)
(result Mover Draw)
)
}
)
)
)
> "The Guettal (Ludii 1) ruleset.")
(item "Guettal (Ludii 2)" <
(players {
(player N)
(player S)
}
)
(equipment {
(board
(rectangle 5 5 diagonals:Alternating)
use:Vertex)
(piece "Counter" Each
(or
(move Step Forwards
(to if:
(is Empty
(to)
)
)
)
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
)
(then
(if
(is In
(last To)
(sites Next)
)
(promote
(last To)
(piece "DoubleCounter")
Mover)
)
)
)
)
}
)
(rules
(start {
(place "Counter1"
(union {
(expand
(sites Bottom)
)
(sites { "D3" "E3"}
)
}
)
)
(place "Counter2"
(union {
(sites { "A3" "B3"}
)
(expand
(sites Top)
)
}
)
)
}
)
(play
(or
(if
(and
(not
(is Prev Mover)
)
(=
(value Player Prev)
1)
)
(or
(if
(and
(is In
(last From)
(sites Pending)
)
(is In
(last From)
(sites Empty)
)
)
(move Select
(from
(last To)
if:
(is Occupied
(from)
)
)
(then
(and {
(remove
(last To)
)
(moveAgain)
(set Value Prev 0)
}
)
)
)
)
(move Select
(from
(sites Pending)
if:
(is Occupied
(from)
)
)
(then
(and {
(remove
(last To)
)
(moveAgain)
(set Value Prev 0)
}
)
)
)
)
)
(if
(is Prev Mover)
(if
(=
(last To)
(last From)
)
(do
(set Pending
(sites From
(forEach Piece "Counter"
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between )
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
)
)
)
next:
(forEach Piece "Counter"
(or
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between )
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
(move Step
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 1)
)
)
)
)
)
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 0)
)
)
)
(do
(set Pending
(sites From
(forEach Piece "Counter"
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between )
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
)
)
)
next:
(forEach Piece "Counter"
(or
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
(move Step
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 1)
)
)
)
)
)
)
)
)
(end
(if
(and
(no Moves P1)
(no Moves P2)
)
{
(if
(<
(count Pieces P1)
(count Pieces P2)
)
(result P2 Win)
)
(if
(<
(count Pieces P2)
(count Pieces P1)
)
(result P1 Win)
)
(if
(=
(count Pieces P2)
(count Pieces P1)
)
(result Mover Draw)
)
}
)
)
)
> "The Guettal (Ludii 2) ruleset.")
(item "Guettal (Ludii 3)" <
(players {
(player N)
(player S)
}
)
(equipment {
(board
(rectangle 5 5 diagonals:Alternating)
use:Vertex)
(piece "Counter" Each
(or
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(is In
(last To)
(sites Next)
)
(promote
(last To)
(piece "DoubleCounter")
Mover )
)
(set Value Mover 0)
)
)
)
(move Step
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 1)
)
)
(then
(if
(is In
(last To)
(sites Next)
)
(promote
(last To)
(piece "DoubleCounter")
Mover)
)
)
)
)
}
)
(rules
(start {
(place "Counter1"
(union {
(expand
(sites Bottom)
)
(sites { "D3" "E3"}
)
}
)
)
(place "Counter2"
(union {
(sites { "A3" "B3"}
)
(expand
(sites Top)
)
}
)
)
}
)
(play
(move Add
(to
(sites Empty)
if:
(=
(state at:
(to)
)
0)
)
(then
(and
(forEach Site
(sites Empty)
(if
(!= 0
(state at:
(site)
)
)
(set State at:
(site)
0)
)
)
(enclose
(from
(last To)
)
Orthogonal
(between if:
(or
(is Enemy
(who at:
(between)
)
)
(is Empty
(between)
)
)
(apply
(and
(if
(is Enemy
(who at:
(between)
)
)
(remove
(between)
)
)
(set State at:
(between)
(mover)
)
)
)
)
)
)
)
)
)
(end
(if
(and
(no Moves P1)
(no Moves P2)
)
{
(if
(<
(count Pieces P1)
(count Pieces P2)
)
(result P2 Win)
)
(if
(<
(count Pieces P2)
(count Pieces P1)
)
(result P1 Win)
)
(if
(=
(count Pieces P2)
(count Pieces P1)
)
(result Mover Draw)
)
}
)
)
)
> "The Guettal (Ludii 3) ruleset.")
(item "Guettal (Ludii 4)" <
(players {
(player N)
(player S)
}
)
(equipment {
(board
(rectangle 5 5 diagonals:Alternating)
use:Vertex)
(piece "Counter" Each
(or
(move Step Forwards
(to if:
(is Empty
(to)
)
)
)
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
)
(then
(if
(is In
(last To)
(sites Next)
)
(promote
(last To)
(piece "DoubleCounter")
Mover)
)
)
)
)
}
)
(rules
(start {
(place "Counter1"
(union {
(expand
(sites Bottom)
)
(sites { "D3" "E3"}
)
}
)
)
(place "Counter2"
(union {
(sites { "A3" "B3"}
)
(expand
(sites Top)
)
}
)
)
}
)
(play
(move Add
(to
(sites Empty)
if:
(=
(state at:
(to)
)
0)
)
(then
(and
(forEach Site
(sites Empty)
(if
(!= 0
(state at:
(site)
)
)
(set State at:
(site)
0)
)
)
(enclose
(from
(last To)
)
Orthogonal
(between if:
(or
(is Enemy
(who at:
(between)
)
)
(is Empty
(between)
)
)
(apply
(and
(if
(is Enemy
(who at:
(between)
)
)
(remove
(between)
)
)
(set State at:
(between)
(mover)
)
)
)
)
)
)
)
)
)
(end
(if
(and
(no Moves P1)
(no Moves P2)
)
{
(if
(<
(count Pieces P1)
(count Pieces P2)
)
(result P2 Win)
)
(if
(<
(count Pieces P2)
(count Pieces P1)
)
(result P1 Win)
)
(if
(=
(count Pieces P2)
(count Pieces P1)
)
(result Mover Draw)
)
}
)
)
)
> "The Guettal (Ludii 4) ruleset.")
(item "Guettal (Ludii 5)" <
(players {
(player N)
(player S)
}
)
(equipment {
(board
(rectangle 5 5 diagonals:Alternating)
use:Vertex)
(piece "Counter" Each
(or
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(is In
(last To)
(sites Next)
)
(promote
(last To)
(piece "DoubleCounter")
Mover )
)
(set Value Mover 0)
)
)
)
(move Step
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 1)
)
)
(then
(if
(is In
(last To)
(sites Next)
)
(promote
(last To)
(piece "DoubleCounter")
Mover)
)
)
)
)
}
)
(rules
(start {
(place "Counter1"
(union {
(expand
(sites Bottom)
)
(sites { "D3" "E3"}
)
}
)
)
(place "Counter2"
(union {
(sites { "A3" "B3"}
)
(expand
(sites Top)
)
}
)
)
}
)
(play
(priority {
(if
(is Mover P1)
(or
(forEach Piece
(move Select
(from)
(to
(sites Around
(from)
)
if:
(and
(is Empty
(to)
)
(is Enemy
(who at:
(ahead
(to)
SameDirection )
)
)
)
)
(then
(and
(fromTo
(from
(last From)
)
(to
(last To)
)
)
(directional
(from
(last To)
)
(directions Vertex from:
(last From)
to:
(last To)
)
(to if:
(is Enemy
(who at:
(to)
)
)
(apply
(remove
(to)
)
)
)
)
)
)
)
)
(forEach Piece
(move Select
(from)
(to
(sites Around
(from)
)
if:
(and
(is Empty
(to)
)
(is Enemy
(who at:
(ahead
(from)
OppositeDirection )
)
)
)
)
(then
(and
(fromTo
(from
(last From)
)
(to
(last To)
)
)
(directional
(from
(last From)
)
(directions Vertex from:
(last To)
to:
(last From)
)
(to if:
(is Enemy
(who at:
(to)
)
)
(apply
(remove
(to)
)
)
)
)
)
)
)
)
)
)
(forEach Piece
(move Step
(to if:
(is Empty
(to)
)
)
)
)
}
)
)
(end
(if
(and
(no Moves P1)
(no Moves P2)
)
{
(if
(<
(count Pieces P1)
(count Pieces P2)
)
(result P2 Win)
)
(if
(<
(count Pieces P2)
(count Pieces P1)
)
(result P1 Win)
)
(if
(=
(count Pieces P2)
(count Pieces P1)
)
(result Mover Draw)
)
}
)
)
)
> "The Guettal (Ludii 5) ruleset.")
(item "Guettal (Ludii 6)" <
(players {
(player N)
(player S)
}
)
(equipment {
(board
(rectangle 5 5 diagonals:Alternating)
use:Vertex)
(piece "Counter" Each
(or
(move Step Forwards
(to if:
(is Empty
(to)
)
)
)
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
)
(then
(if
(is In
(last To)
(sites Next)
)
(promote
(last To)
(piece "DoubleCounter")
Mover)
)
)
)
)
}
)
(rules
(start {
(place "Counter1"
(union {
(expand
(sites Bottom)
)
(sites { "D3" "E3"}
)
}
)
)
(place "Counter2"
(union {
(sites { "A3" "B3"}
)
(expand
(sites Top)
)
}
)
)
}
)
(play
(priority {
(if
(is Mover P1)
(or
(forEach Piece
(move Select
(from)
(to
(sites Around
(from)
)
if:
(and
(is Empty
(to)
)
(is Enemy
(who at:
(ahead
(to)
SameDirection )
)
)
)
)
(then
(and
(fromTo
(from
(last From)
)
(to
(last To)
)
)
(directional
(from
(last To)
)
(directions Vertex from:
(last From)
to:
(last To)
)
(to if:
(is Enemy
(who at:
(to)
)
)
(apply
(remove
(to)
)
)
)
)
)
)
)
)
(forEach Piece
(move Select
(from)
(to
(sites Around
(from)
)
if:
(and
(is Empty
(to)
)
(is Enemy
(who at:
(ahead
(from)
OppositeDirection )
)
)
)
)
(then
(and
(fromTo
(from
(last From)
)
(to
(last To)
)
)
(directional
(from
(last From)
)
(directions Vertex from:
(last To)
to:
(last From)
)
(to if:
(is Enemy
(who at:
(to)
)
)
(apply
(remove
(to)
)
)
)
)
)
)
)
)
)
)
(forEach Piece
(move Step
(to if:
(is Empty
(to)
)
)
)
)
}
)
)
(end
(if
(and
(no Moves P1)
(no Moves P2)
)
{
(if
(<
(count Pieces P1)
(count Pieces P2)
)
(result P2 Win)
)
(if
(<
(count Pieces P2)
(count Pieces P1)
)
(result P1 Win)
)
(if
(=
(count Pieces P2)
(count Pieces P1)
)
(result Mover Draw)
)
}
)
)
)
> "The Guettal (Ludii 6) ruleset.")
(item "Guettal (Ludii 7)" <
(players {
(player N)
(player S)
}
)
(equipment {
(board
(rectangle 5 5 diagonals:Alternating)
use:Vertex)
(piece "Counter" Each
(or
(move Hop
(directions { Forwards Rightward Leftward }
)
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(is In
(last To)
(sites Next)
)
(promote
(last To)
(piece "DoubleCounter")
Mover )
)
(set Value Mover 0)
)
)
)
(move Step
(directions { Forwards Rightward Leftward }
)
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 1)
)
)
(then
(if
(is In
(last To)
(sites Next)
)
(promote
(last To)
(piece "DoubleCounter")
Mover)
)
)
)
)
}
)
(rules
(start {
(place "Counter1"
(union {
(expand
(sites Bottom)
)
(sites { "D3" "E3"}
)
}
)
)
(place "Counter2"
(union {
(sites { "A3" "B3"}
)
(expand
(sites Top)
)
}
)
)
}
)
(play
(or
(if
(and
(not
(is Prev Mover)
)
(=
(value Player Prev)
1)
)
(or
(if
(and
(is In
(last From)
(sites Pending)
)
(is In
(last From)
(sites Empty)
)
)
(move Select
(from
(last To)
if:
(is Occupied
(from)
)
)
(then
(and {
(remove
(last To)
)
(moveAgain)
(set Value Prev 0)
}
)
)
)
)
(move Select
(from
(sites Pending)
if:
(is Occupied
(from)
)
)
(then
(and {
(remove
(last To)
)
(moveAgain)
(set Value Prev 0)
}
)
)
)
)
)
(if
(is Prev Mover)
(if
(=
(last To)
(last From)
)
(do
(set Pending
(sites From
(forEach Piece "Counter"
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between )
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
)
)
)
next:
(forEach Piece "Counter"
(or
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between )
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
(move Step
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 1)
)
)
)
)
)
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 0)
)
)
)
(do
(set Pending
(sites From
(forEach Piece "Counter"
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between )
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
)
)
)
next:
(forEach Piece "Counter"
(or
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
(move Step
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 1)
)
)
)
)
)
)
)
)
(end
(if
(and
(no Moves P1)
(no Moves P2)
)
{
(if
(<
(count Pieces P1)
(count Pieces P2)
)
(result P2 Win)
)
(if
(<
(count Pieces P2)
(count Pieces P1)
)
(result P1 Win)
)
(if
(=
(count Pieces P2)
(count Pieces P1)
)
(result Mover Draw)
)
}
)
)
)
> "The Guettal (Ludii 7) ruleset.")
(item "Guettal (Ludii 8)" <
(players {
(player N)
(player S)
}
)
(equipment {
(board
(rectangle 5 5 diagonals:Alternating)
use:Vertex)
(piece "Counter" Each
(or {
(move Step
(if
(!= 0
(count Moves)
)
(difference Adjacent Backwards)
Forwards )
(to if:
(is Empty
(to)
)
)
(then
(if
(is In
(last To)
(sites Next)
)
(promote
(last To)
(piece "DoubleCounter")
Mover )
)
)
)
(move Hop
(difference Adjacent Backwards)
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(if
(is In
(last To)
(sites Next)
)
(promote
(last To)
(piece "DoubleCounter")
Mover )
)
)
)
}
)
)
}
)
(rules
(start {
(place "Counter1"
(union {
(expand
(sites Bottom)
)
(sites { "D3" "E3"}
)
}
)
)
(place "Counter2"
(union {
(sites { "A3" "B3"}
)
(expand
(sites Top)
)
}
)
)
}
)
(play
(or
(if
(and
(not
(is Prev Mover)
)
(=
(value Player Prev)
1)
)
(or
(if
(and
(is In
(last From)
(sites Pending)
)
(is In
(last From)
(sites Empty)
)
)
(move Select
(from
(last To)
if:
(is Occupied
(from)
)
)
(then
(and {
(remove
(last To)
)
(moveAgain)
(set Value Prev 0)
}
)
)
)
)
(move Select
(from
(sites Pending)
if:
(is Occupied
(from)
)
)
(then
(and {
(remove
(last To)
)
(moveAgain)
(set Value Prev 0)
}
)
)
)
)
)
(if
(is Prev Mover)
(if
(=
(last To)
(last From)
)
(do
(set Pending
(sites From
(forEach Piece "Counter"
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between )
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
)
)
)
next:
(forEach Piece "Counter"
(or
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between )
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
(move Step
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 1)
)
)
)
)
)
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 0)
)
)
)
(do
(set Pending
(sites From
(forEach Piece "Counter"
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between )
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
)
)
)
next:
(forEach Piece "Counter"
(or
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
(move Step
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 1)
)
)
)
)
)
)
)
)
(end
(if
(and
(no Moves P1)
(no Moves P2)
)
{
(if
(<
(count Pieces P1)
(count Pieces P2)
)
(result P2 Win)
)
(if
(<
(count Pieces P2)
(count Pieces P1)
)
(result P1 Win)
)
(if
(=
(count Pieces P2)
(count Pieces P1)
)
(result Mover Draw)
)
}
)
)
)
> "The Guettal (Ludii 8) ruleset.")
(item "Guettal (Ludii 9)" <
(players {
(player N)
(player S)
}
)
(equipment {
(board
(rectangle 5 5 diagonals:Alternating)
use:Vertex)
(piece "Counter" Each
(or
(move Step
(difference Forwards Diagonal)
(to if:
(is Empty
(to)
)
)
)
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
)
(then
(if
(is In
(last To)
(sites Next)
)
(promote
(last To)
(piece "DoubleCounter")
Mover)
)
)
)
)
}
)
(rules
(start {
(place "Counter1"
(union {
(expand
(sites Bottom)
)
(sites { "D3" "E3"}
)
}
)
)
(place "Counter2"
(union {
(sites { "A3" "B3"}
)
(expand
(sites Top)
)
}
)
)
}
)
(play
(or
(if
(and
(not
(is Prev Mover)
)
(=
(value Player Prev)
1)
)
(or
(if
(and
(is In
(last From)
(sites Pending)
)
(is In
(last From)
(sites Empty)
)
)
(move Select
(from
(last To)
if:
(is Occupied
(from)
)
)
(then
(and {
(remove
(last To)
)
(moveAgain)
(set Value Prev 0)
}
)
)
)
)
(move Select
(from
(sites Pending)
if:
(is Occupied
(from)
)
)
(then
(and {
(remove
(last To)
)
(moveAgain)
(set Value Prev 0)
}
)
)
)
)
)
(if
(is Prev Mover)
(if
(=
(last To)
(last From)
)
(do
(set Pending
(sites From
(forEach Piece "Counter"
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between )
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
)
)
)
next:
(forEach Piece "Counter"
(or
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between )
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
(move Step
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 1)
)
)
)
)
)
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 0)
)
)
)
(do
(set Pending
(sites From
(forEach Piece "Counter"
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between )
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
)
)
)
next:
(forEach Piece "Counter"
(or
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
(move Step
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 1)
)
)
)
)
)
)
)
)
(end
(if
(and
(no Moves P1)
(no Moves P2)
)
{
(if
(<
(count Pieces P1)
(count Pieces P2)
)
(result P2 Win)
)
(if
(<
(count Pieces P2)
(count Pieces P1)
)
(result P1 Win)
)
(if
(=
(count Pieces P2)
(count Pieces P1)
)
(result Mover Draw)
)
}
)
)
)
> "The Guettal (Ludii 9) ruleset.")
(item "Guettal (Ludii 10)" <
(players {
(player N)
(player S)
}
)
(equipment {
(board
(rectangle 5 5 diagonals:Alternating)
use:Vertex)
(piece "Counter" Each
(move Step
(directions { FR FL }
)
(to if:
(is Empty
(to)
)
)
)
)
}
)
(rules
(start {
(place "Counter1"
(union {
(expand
(sites Bottom)
)
(sites { "D3" "E3"}
)
}
)
)
(place "Counter2"
(union {
(sites { "A3" "B3"}
)
(expand
(sites Top)
)
}
)
)
}
)
(play
(if
(is Prev Mover)
(or
(move Pass)
(move Hop
(from
(last To)
)
(between if:
(and
(not
(is In
(between)
(sites ToClear)
)
)
(is Enemy
(who at:
(between)
)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(if
(can Move
(hop
(from
(last To)
)
(between if:
(and
(not
(is In
(between)
(sites ToClear)
)
)
(is Enemy
(who at:
(between)
)
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
)
)
)
(forEach Piece top:True)
)
)
(end
(if
(and
(no Moves P1)
(no Moves P2)
)
{
(if
(<
(count Pieces P1)
(count Pieces P2)
)
(result P2 Win)
)
(if
(<
(count Pieces P2)
(count Pieces P1)
)
(result P1 Win)
)
(if
(=
(count Pieces P2)
(count Pieces P1)
)
(result Mover Draw)
)
}
)
)
)
> "The Guettal (Ludii 10) ruleset.")
(item "Guettal (Ludii 11)" <
(players {
(player N)
(player S)
}
)
(equipment {
(board
(rectangle 4 9)
use:Cell)
(piece "Counter" Each
(or
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(is In
(last To)
(sites Next)
)
(promote
(last To)
(piece "DoubleCounter")
Mover )
)
(set Value Mover 0)
)
)
)
(move Step
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 1)
)
)
(then
(if
(is In
(last To)
(sites Next)
)
(promote
(last To)
(piece "DoubleCounter")
Mover)
)
)
)
)
}
)
(rules
(start {
(place "Counter1"
(union {
(sites Bottom)
(sites { "G2" "H2" "I2"}
)
}
)
)
(place "Counter2"
(union {
(sites { "A3" "B3" "C3"}
)
(sites Top)
}
)
)
}
)
(play
(or
(if
(and
(not
(is Prev Mover)
)
(=
(value Player Prev)
1)
)
(or
(if
(and
(is In
(last From)
(sites Pending)
)
(is In
(last From)
(sites Empty)
)
)
(move Select
(from
(last To)
if:
(is Occupied
(from)
)
)
(then
(and {
(remove
(last To)
)
(moveAgain)
(set Value Prev 0)
}
)
)
)
)
(move Select
(from
(sites Pending)
if:
(is Occupied
(from)
)
)
(then
(and {
(remove
(last To)
)
(moveAgain)
(set Value Prev 0)
}
)
)
)
)
)
(if
(is Prev Mover)
(if
(=
(last To)
(last From)
)
(do
(set Pending
(sites From
(forEach Piece "Counter"
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between )
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
)
)
)
next:
(forEach Piece "Counter"
(or
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between )
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
(move Step
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 1)
)
)
)
)
)
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 0)
)
)
)
(do
(set Pending
(sites From
(forEach Piece "Counter"
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between )
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
)
)
)
next:
(forEach Piece "Counter"
(or
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
(move Step
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 1)
)
)
)
)
)
)
)
)
(end
(if
(and
(no Moves P1)
(no Moves P2)
)
{
(if
(<
(count Pieces P1)
(count Pieces P2)
)
(result P2 Win)
)
(if
(<
(count Pieces P2)
(count Pieces P1)
)
(result P1 Win)
)
(if
(=
(count Pieces P2)
(count Pieces P1)
)
(result Mover Draw)
)
}
)
)
)
> "The Guettal (Ludii 11) ruleset.")
(item "Guettal (Ludii 12)" <
(players {
(player N)
(player S)
}
)
(equipment {
(board
(rectangle 4 9)
use:Cell)
(piece "Counter" Each
(or
(move Step Forwards
(to if:
(is Empty
(to)
)
)
)
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
)
(then
(if
(is In
(last To)
(sites Next)
)
(promote
(last To)
(piece "DoubleCounter")
Mover)
)
)
)
)
}
)
(rules
(start {
(place "Counter1"
(union {
(sites Bottom)
(sites { "G2" "H2" "I2"}
)
}
)
)
(place "Counter2"
(union {
(sites { "A3" "B3" "C3"}
)
(sites Top)
}
)
)
}
)
(play
(or
(if
(and
(not
(is Prev Mover)
)
(=
(value Player Prev)
1)
)
(or
(if
(and
(is In
(last From)
(sites Pending)
)
(is In
(last From)
(sites Empty)
)
)
(move Select
(from
(last To)
if:
(is Occupied
(from)
)
)
(then
(and {
(remove
(last To)
)
(moveAgain)
(set Value Prev 0)
}
)
)
)
)
(move Select
(from
(sites Pending)
if:
(is Occupied
(from)
)
)
(then
(and {
(remove
(last To)
)
(moveAgain)
(set Value Prev 0)
}
)
)
)
)
)
(if
(is Prev Mover)
(if
(=
(last To)
(last From)
)
(do
(set Pending
(sites From
(forEach Piece "Counter"
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between )
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
)
)
)
next:
(forEach Piece "Counter"
(or
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between )
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
(move Step
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 1)
)
)
)
)
)
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 0)
)
)
)
(do
(set Pending
(sites From
(forEach Piece "Counter"
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between )
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
)
)
)
next:
(forEach Piece "Counter"
(or
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
(move Step
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 1)
)
)
)
)
)
)
)
)
(end
(if
(and
(no Moves P1)
(no Moves P2)
)
{
(if
(<
(count Pieces P1)
(count Pieces P2)
)
(result P2 Win)
)
(if
(<
(count Pieces P2)
(count Pieces P1)
)
(result P1 Win)
)
(if
(=
(count Pieces P2)
(count Pieces P1)
)
(result Mover Draw)
)
}
)
)
)
> "The Guettal (Ludii 12) ruleset.")
(item "Guettal (Ludii 13)" <
(players {
(player N)
(player S)
}
)
(equipment {
(board
(rectangle 4 9)
use:Cell)
(piece "Counter" Each
(or
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(is In
(last To)
(sites Next)
)
(promote
(last To)
(piece "DoubleCounter")
Mover )
)
(set Value Mover 0)
)
)
)
(move Step
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 1)
)
)
(then
(if
(is In
(last To)
(sites Next)
)
(promote
(last To)
(piece "DoubleCounter")
Mover)
)
)
)
)
}
)
(rules
(start {
(place "Counter1"
(union {
(sites Bottom)
(sites { "G2" "H2" "I2"}
)
}
)
)
(place "Counter2"
(union {
(sites { "A3" "B3" "C3"}
)
(sites Top)
}
)
)
}
)
(play
(forEach Piece
(or
(move Step Diagonal
(to if:
(is Empty
(to)
)
)
)
(move Hop Diagonal
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
)
(then
(set State at:
(last To)
0)
)
)
)
)
(end
(if
(and
(no Moves P1)
(no Moves P2)
)
{
(if
(<
(count Pieces P1)
(count Pieces P2)
)
(result P2 Win)
)
(if
(<
(count Pieces P2)
(count Pieces P1)
)
(result P1 Win)
)
(if
(=
(count Pieces P2)
(count Pieces P1)
)
(result Mover Draw)
)
}
)
)
)
> "The Guettal (Ludii 13) ruleset.")
(item "Guettal (Ludii 14)" <
(players {
(player N)
(player S)
}
)
(equipment {
(board
(rectangle 4 9)
use:Cell)
(piece "Counter" Each
(or
(move Step Forwards
(to if:
(is Empty
(to)
)
)
)
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
)
(then
(if
(is In
(last To)
(sites Next)
)
(promote
(last To)
(piece "DoubleCounter")
Mover)
)
)
)
)
}
)
(rules
(start {
(place "Counter1"
(union {
(sites Bottom)
(sites { "G2" "H2" "I2"}
)
}
)
)
(place "Counter2"
(union {
(sites { "A3" "B3" "C3"}
)
(sites Top)
}
)
)
}
)
(play
(forEach Piece
(or
(move Step Diagonal
(to if:
(is Empty
(to)
)
)
)
(move Hop Diagonal
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
)
(then
(set State at:
(last To)
0)
)
)
)
)
(end
(if
(and
(no Moves P1)
(no Moves P2)
)
{
(if
(<
(count Pieces P1)
(count Pieces P2)
)
(result P2 Win)
)
(if
(<
(count Pieces P2)
(count Pieces P1)
)
(result P1 Win)
)
(if
(=
(count Pieces P2)
(count Pieces P1)
)
(result Mover Draw)
)
}
)
)
)
> "The Guettal (Ludii 14) ruleset.")
(item "Guettal (Ludii 15)" <
(players {
(player N)
(player S)
}
)
(equipment {
(board
(rectangle 4 9)
use:Cell)
(piece "Counter" Each
(or
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(is In
(last To)
(sites Next)
)
(promote
(last To)
(piece "DoubleCounter")
Mover )
)
(set Value Mover 0)
)
)
)
(move Step
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 1)
)
)
(then
(if
(is In
(last To)
(sites Next)
)
(promote
(last To)
(piece "DoubleCounter")
Mover)
)
)
)
)
}
)
(rules
(start {
(place "Counter1"
(union {
(sites Bottom)
(sites { "G2" "H2" "I2"}
)
}
)
)
(place "Counter2"
(union {
(sites { "A3" "B3" "C3"}
)
(sites Top)
}
)
)
}
)
(play
(move Add
(to
(sites Empty)
if:
(=
(state at:
(to)
)
0)
)
(then
(and
(forEach Site
(sites Empty)
(if
(!= 0
(state at:
(site)
)
)
(set State at:
(site)
0)
)
)
(enclose
(from
(last To)
)
Orthogonal
(between if:
(or
(is Enemy
(who at:
(between)
)
)
(is Empty
(between)
)
)
(apply
(and
(if
(is Enemy
(who at:
(between)
)
)
(remove
(between)
)
)
(set State at:
(between)
(mover)
)
)
)
)
)
)
)
)
)
(end
(if
(and
(no Moves P1)
(no Moves P2)
)
{
(if
(<
(count Pieces P1)
(count Pieces P2)
)
(result P2 Win)
)
(if
(<
(count Pieces P2)
(count Pieces P1)
)
(result P1 Win)
)
(if
(=
(count Pieces P2)
(count Pieces P1)
)
(result Mover Draw)
)
}
)
)
)
> "The Guettal (Ludii 15) ruleset.")
(item "Guettal (Ludii 16)" <
(players {
(player N)
(player S)
}
)
(equipment {
(board
(rectangle 4 9)
use:Cell)
(piece "Counter" Each
(or
(move Step Forwards
(to if:
(is Empty
(to)
)
)
)
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
)
(then
(if
(is In
(last To)
(sites Next)
)
(promote
(last To)
(piece "DoubleCounter")
Mover)
)
)
)
)
}
)
(rules
(start {
(place "Counter1"
(union {
(sites Bottom)
(sites { "G2" "H2" "I2"}
)
}
)
)
(place "Counter2"
(union {
(sites { "A3" "B3" "C3"}
)
(sites Top)
}
)
)
}
)
(play
(move Add
(to
(sites Empty)
if:
(=
(state at:
(to)
)
0)
)
(then
(and
(forEach Site
(sites Empty)
(if
(!= 0
(state at:
(site)
)
)
(set State at:
(site)
0)
)
)
(enclose
(from
(last To)
)
Orthogonal
(between if:
(or
(is Enemy
(who at:
(between)
)
)
(is Empty
(between)
)
)
(apply
(and
(if
(is Enemy
(who at:
(between)
)
)
(remove
(between)
)
)
(set State at:
(between)
(mover)
)
)
)
)
)
)
)
)
)
(end
(if
(and
(no Moves P1)
(no Moves P2)
)
{
(if
(<
(count Pieces P1)
(count Pieces P2)
)
(result P2 Win)
)
(if
(<
(count Pieces P2)
(count Pieces P1)
)
(result P1 Win)
)
(if
(=
(count Pieces P2)
(count Pieces P1)
)
(result Mover Draw)
)
}
)
)
)
> "The Guettal (Ludii 16) ruleset.")
(item "Guettal (Ludii 17)" <
(players {
(player N)
(player S)
}
)
(equipment {
(board
(rectangle 4 9)
use:Cell)
(piece "Counter" Each
(or
(move Hop
(directions { Forwards Rightward Leftward }
)
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(is In
(last To)
(sites Next)
)
(promote
(last To)
(piece "DoubleCounter")
Mover )
)
(set Value Mover 0)
)
)
)
(move Step
(directions { Forwards Rightward Leftward }
)
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 1)
)
)
(then
(if
(is In
(last To)
(sites Next)
)
(promote
(last To)
(piece "DoubleCounter")
Mover)
)
)
)
)
}
)
(rules
(start {
(place "Counter1"
(union {
(sites Bottom)
(sites { "G2" "H2" "I2"}
)
}
)
)
(place "Counter2"
(union {
(sites { "A3" "B3" "C3"}
)
(sites Top)
}
)
)
}
)
(play
(or
(if
(and
(not
(is Prev Mover)
)
(=
(value Player Prev)
1)
)
(or
(if
(and
(is In
(last From)
(sites Pending)
)
(is In
(last From)
(sites Empty)
)
)
(move Select
(from
(last To)
if:
(is Occupied
(from)
)
)
(then
(and {
(remove
(last To)
)
(moveAgain)
(set Value Prev 0)
}
)
)
)
)
(move Select
(from
(sites Pending)
if:
(is Occupied
(from)
)
)
(then
(and {
(remove
(last To)
)
(moveAgain)
(set Value Prev 0)
}
)
)
)
)
)
(if
(is Prev Mover)
(if
(=
(last To)
(last From)
)
(do
(set Pending
(sites From
(forEach Piece "Counter"
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between )
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
)
)
)
next:
(forEach Piece "Counter"
(or
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between )
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
(move Step
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 1)
)
)
)
)
)
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 0)
)
)
)
(do
(set Pending
(sites From
(forEach Piece "Counter"
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between )
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
)
)
)
next:
(forEach Piece "Counter"
(or
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
(move Step
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 1)
)
)
)
)
)
)
)
)
(end
(if
(and
(no Moves P1)
(no Moves P2)
)
{
(if
(<
(count Pieces P1)
(count Pieces P2)
)
(result P2 Win)
)
(if
(<
(count Pieces P2)
(count Pieces P1)
)
(result P1 Win)
)
(if
(=
(count Pieces P2)
(count Pieces P1)
)
(result Mover Draw)
)
}
)
)
)
> "The Guettal (Ludii 17) ruleset.")
(item "Guettal (Ludii 18)" <
(players {
(player N)
(player S)
}
)
(equipment {
(board
(rectangle 4 9)
use:Cell)
(piece "Counter" Each
(or
(move Hop
(directions { Forwards Rightward Leftward }
)
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(is In
(last To)
(sites Next)
)
(promote
(last To)
(piece "DoubleCounter")
Mover )
)
(set Value Mover 0)
)
)
)
(move Step
(directions { Forwards Rightward Leftward }
)
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 1)
)
)
(then
(if
(is In
(last To)
(sites Next)
)
(promote
(last To)
(piece "DoubleCounter")
Mover)
)
)
)
)
}
)
(rules
(start {
(place "Counter1"
(union {
(sites Bottom)
(sites { "G2" "H2" "I2"}
)
}
)
)
(place "Counter2"
(union {
(sites { "A3" "B3" "C3"}
)
(sites Top)
}
)
)
}
)
(play
(forEach Piece
(or
(move Step Diagonal
(to if:
(is Empty
(to)
)
)
)
(move Hop Diagonal
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
)
(then
(set State at:
(last To)
0)
)
)
)
)
(end
(if
(and
(no Moves P1)
(no Moves P2)
)
{
(if
(<
(count Pieces P1)
(count Pieces P2)
)
(result P2 Win)
)
(if
(<
(count Pieces P2)
(count Pieces P1)
)
(result P1 Win)
)
(if
(=
(count Pieces P2)
(count Pieces P1)
)
(result Mover Draw)
)
}
)
)
)
> "The Guettal (Ludii 18) ruleset.")
(item "Guettal (Ludii 19)" <
(players {
(player N)
(player S)
}
)
(equipment {
(board
(rectangle 4 9)
use:Cell)
(piece "Counter" Each
(or {
(move Step
(if
(!= 0
(count Moves)
)
(difference Adjacent Backwards)
Forwards )
(to if:
(is Empty
(to)
)
)
(then
(if
(is In
(last To)
(sites Next)
)
(promote
(last To)
(piece "DoubleCounter")
Mover )
)
)
)
(move Hop
(difference Adjacent Backwards)
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(if
(is In
(last To)
(sites Next)
)
(promote
(last To)
(piece "DoubleCounter")
Mover )
)
)
)
}
)
)
}
)
(rules
(start {
(place "Counter1"
(union {
(sites Bottom)
(sites { "G2" "H2" "I2"}
)
}
)
)
(place "Counter2"
(union {
(sites { "A3" "B3" "C3"}
)
(sites Top)
}
)
)
}
)
(play
(or
(if
(and
(not
(is Prev Mover)
)
(=
(value Player Prev)
1)
)
(or
(if
(and
(is In
(last From)
(sites Pending)
)
(is In
(last From)
(sites Empty)
)
)
(move Select
(from
(last To)
if:
(is Occupied
(from)
)
)
(then
(and {
(remove
(last To)
)
(moveAgain)
(set Value Prev 0)
}
)
)
)
)
(move Select
(from
(sites Pending)
if:
(is Occupied
(from)
)
)
(then
(and {
(remove
(last To)
)
(moveAgain)
(set Value Prev 0)
}
)
)
)
)
)
(if
(is Prev Mover)
(if
(=
(last To)
(last From)
)
(do
(set Pending
(sites From
(forEach Piece "Counter"
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between )
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
)
)
)
next:
(forEach Piece "Counter"
(or
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between )
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
(move Step
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 1)
)
)
)
)
)
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 0)
)
)
)
(do
(set Pending
(sites From
(forEach Piece "Counter"
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between )
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
)
)
)
next:
(forEach Piece "Counter"
(or
(move Hop
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(and
(if
(can Move
(move Hop
(from
(last To)
)
(between if:
(is Enemy
(who at:
(between )
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
)
)
(moveAgain)
)
(set Value Mover 0)
)
)
)
(move Step
(to if:
(is Empty
(to)
)
)
(then
(set Value Mover 1)
)
)
)
)
)
)
)
)
(end
(if
(and
(no Moves P1)
(no Moves P2)
)
{
(if
(<
(count Pieces P1)
(count Pieces P2)
)
(result P2 Win)
)
(if
(<
(count Pieces P2)
(count Pieces P1)
)
(result P1 Win)
)
(if
(=
(count Pieces P2)
(count Pieces P1)
)
(result Mover Draw)
)
}
)
)
)
> "The Guettal (Ludii 19) ruleset.")
(item "Guettal (Ludii 20)" <
(players {
(player N)
(player S)
}
)
(equipment {
(board
(rectangle 4 9)
use:Cell)
(piece "Counter" Each
(or {
(move Step
(if
(!= 0
(count Moves)
)
(difference Adjacent Backwards)
Forwards )
(to if:
(is Empty
(to)
)
)
(then
(if
(is In
(last To)
(sites Next)
)
(promote
(last To)
(piece "DoubleCounter")
Mover )
)
)
)
(move Hop
(difference Adjacent Backwards)
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
(then
(if
(is In
(last To)
(sites Next)
)
(promote
(last To)
(piece "DoubleCounter")
Mover )
)
)
)
}
)
)
}
)
(rules
(start {
(place "Counter1"
(union {
(sites Bottom)
(sites { "G2" "H2" "I2"}
)
}
)
)
(place "Counter2"
(union {
(sites { "A3" "B3" "C3"}
)
(sites Top)
}
)
)
}
)
(play
(forEach Piece
(or
(move Step Diagonal
(to if:
(is Empty
(to)
)
)
)
(move Hop Diagonal
(between if:
(is Enemy
(who at:
(between)
)
)
(apply
(remove
(between)
)
)
)
(to if:
(is Empty
(to)
)
)
)
(then
(set State at:
(last To)
0)
)
)
)
)
(end
(if
(and
(no Moves P1)
(no Moves P2)
)
{
(if
(<
(count Pieces P1)
(count Pieces P2)
)
(result P2 Win)
)
(if
(<
(count Pieces P2)
(count Pieces P1)
)
(result P1 Win)
)
(if
(=
(count Pieces P2)
(count Pieces P1)
)
(result Mover Draw)
)
}
)
)
)
> "The Guettal (Ludii 20) ruleset.")
(item "Incomplete"
<
("TwoPlayersNorthSouth")
[
(equipment {
(board (rectangle 4 9) use:Cell)
(piece "Counter" Each [#])
})
(rules
(start {
(place "Counter1" (union {(sites Bottom) (sites {"G2" "H2" "I2"}) }))
(place "Counter2" (union {(sites {"A3" "B3" "C3"}) (sites Top) }))
})
(play [#])
(end
(if (and (no Moves P1) (no Moves P2))
{
(if (< (count Pieces P1) (count Pieces P2)) (result P2 Win))
(if (< (count Pieces P2) (count Pieces P1)) (result P1 Win))
(if (= (count Pieces P2) (count Pieces P1)) (result Mover Draw))
}
)
)
)

(equipment {
("AlquerqueBoard" 5 5)
(piece "Counter" Each [#])
})
(rules
(start {
(place "Counter1" (union {(expand (sites Bottom)) (sites {"D3" "E3"}) }))
(place "Counter2" (union {(sites {"A3" "B3"}) (expand (sites Top)) }))
})
(play [#])
(end
(if (and (no Moves P1) (no Moves P2))
{
(if (< (count Pieces P1) (count Pieces P2)) (result P2 Win))
(if (< (count Pieces P2) (count Pieces P1)) (result P1 Win))
(if (= (count Pieces P2) (count Pieces P1)) (result Mover Draw))
}
)
)
)
]
>
"The incomplete ruleset."
)
})
//
(rulesets {
(ruleset "Ruleset/Guettal (Ludii 1) (Reconstructed)" {
"Variant/Guettal (Ludii 1)"
})
(ruleset "Ruleset/Guettal (Ludii 2) (Reconstructed)" {
"Variant/Guettal (Ludii 2)"
})
(ruleset "Ruleset/Guettal (Ludii 3) (Reconstructed)" {
"Variant/Guettal (Ludii 3)"
})
(ruleset "Ruleset/Guettal (Ludii 4) (Reconstructed)" {
"Variant/Guettal (Ludii 4)"
})
(ruleset "Ruleset/Guettal (Ludii 5) (Reconstructed)" {
"Variant/Guettal (Ludii 5)"
})
(ruleset "Ruleset/Guettal (Ludii 6) (Reconstructed)" {
"Variant/Guettal (Ludii 6)"
})
(ruleset "Ruleset/Guettal (Ludii 7) (Reconstructed)" {
"Variant/Guettal (Ludii 7)"
})
(ruleset "Ruleset/Guettal (Ludii 8) (Reconstructed)" {
"Variant/Guettal (Ludii 8)"
})
(ruleset "Ruleset/Guettal (Ludii 9) (Reconstructed)" {
"Variant/Guettal (Ludii 9)"
})
(ruleset "Ruleset/Guettal (Ludii 10) (Reconstructed)" {
"Variant/Guettal (Ludii 10)"
})
(ruleset "Ruleset/Guettal (Ludii 11) (Reconstructed)" {
"Variant/Guettal (Ludii 11)"
})
(ruleset "Ruleset/Guettal (Ludii 12) (Reconstructed)" {
"Variant/Guettal (Ludii 12)"
})
(ruleset "Ruleset/Guettal (Ludii 13) (Reconstructed)" {
"Variant/Guettal (Ludii 13)"
})
(ruleset "Ruleset/Guettal (Ludii 14) (Reconstructed)" {
"Variant/Guettal (Ludii 14)"
})
(ruleset "Ruleset/Guettal (Ludii 15) (Reconstructed)" {
"Variant/Guettal (Ludii 15)"
})
(ruleset "Ruleset/Guettal (Ludii 16) (Reconstructed)" {
"Variant/Guettal (Ludii 16)"
})
(ruleset "Ruleset/Guettal (Ludii 17) (Reconstructed)" {
"Variant/Guettal (Ludii 17)"
})
(ruleset "Ruleset/Guettal (Ludii 18) (Reconstructed)" {
"Variant/Guettal (Ludii 18)"
})
(ruleset "Ruleset/Guettal (Ludii 19) (Reconstructed)" {
"Variant/Guettal (Ludii 19)"
})
(ruleset "Ruleset/Guettal (Ludii 20) (Reconstructed)" {
"Variant/Guettal (Ludii 20)"
})
(ruleset "Ruleset/Historical Information (Incomplete)" {
"Variant/Incomplete"
})
})
//
(metadata
(info
{
(description "Guettal is a capturing game played in the Bordj Bou Arreridj region of Algeria in the early twentieth century.")
(useFor "Ruleset/Historical Information (Incomplete)" (rules "Square board divided into 36 divisions (probably like the Alquerque board). Twelve pieces per player, which begin on the side of the board closest to the player. Players alternate turns moving their pieces toward the opponent's side of the board. Players capture their opponent's pieces. The player who has more pieces at the end of the game wins."))
(useFor "Ruleset/Historical Information (Incomplete)" (source "DLP evidence."))
(useFor "Ruleset/Historical Information (Incomplete)" (id "1949"))
(useFor "Ruleset/Guettal (Ludii 1) (Reconstructed)" (rules "The game Guettal is played by two players on a 5x5 rectangle board with square tiling.
All players play with Counters.
Rules for Pieces:
Counters hop adjacent then if the to location of the last move is in , a piece of the moving player the to location of the last move, this piece can promote into DoubleCounter and set the value of Player the moving player to 0 or step adjacent then set the value of Player the moving player to 1 if the to location of the last move is in , a piece of the moving player the to location of the last move, this piece can promote into DoubleCounter.
Players take turns moving.
Setup:
Place a Counter for player one at the union of the bottom sites of the board expanded by 1 steps and the vertexes with coordinates [D3, E3].
Place a Counter for player two at the union of the vertexes with coordinates [A3, B3] and the top sites of the board expanded by 1 steps..
Rules:
If not in the same turn and the value of Player Prev is equal to 1, if the from location of the last move is in the pending sites and the from location of the last move is in the set of empty vertexs, select Vertex in the to location of the last move if vertex the location of the piece is occupied then remove pieces at the to location of the last move and move again and set the value of Player Prev to 0 or select Vertex in the pending sites if vertex the location of the piece is occupied then remove pieces at the to location of the last move and move again and set the value of Player Prev to 0 or if in the same turn, if the to location of the last move is equal to the from location of the last move, set the region the from sites of move one of your pieces to pending and afterwards move one of your pieces, else hop adjacent then set the value of Player the moving player to 0, else set the region the from sites of move one of your pieces to pending and afterwards move one of your pieces.
Aim:
If player one cannot move and player two cannot move.
"))
(useFor "Ruleset/Guettal (Ludii 1) (Reconstructed)" (id "3677"))
(useFor "Ruleset/Guettal (Ludii 2) (Reconstructed)" (rules "The game Guettal is played by two players on a 5x5 rectangle board with square tiling.
All players play with Counters.
Rules for Pieces:
Counters step forwards or hop adjacent if the to location of the last move is in , a piece of the moving player the to location of the last move, this piece can promote into DoubleCounter.
Players take turns moving.
Setup:
Place a Counter for player one at the union of the bottom sites of the board expanded by 1 steps and the vertexes with coordinates [D3, E3].
Place a Counter for player two at the union of the vertexes with coordinates [A3, B3] and the top sites of the board expanded by 1 steps..
Rules:
If not in the same turn and the value of Player Prev is equal to 1, if the from location of the last move is in the pending sites and the from location of the last move is in the set of empty vertexs, select Vertex in the to location of the last move if vertex the location of the piece is occupied then remove pieces at the to location of the last move and move again and set the value of Player Prev to 0 or select Vertex in the pending sites if vertex the location of the piece is occupied then remove pieces at the to location of the last move and move again and set the value of Player Prev to 0 or if in the same turn, if the to location of the last move is equal to the from location of the last move, set the region the from sites of move one of your pieces to pending and afterwards move one of your pieces, else hop adjacent then set the value of Player the moving player to 0, else set the region the from sites of move one of your pieces to pending and afterwards move one of your pieces.
Aim:
If player one cannot move and player two cannot move.
"))
(useFor "Ruleset/Guettal (Ludii 2) (Reconstructed)" (id "3678"))
(useFor "Ruleset/Guettal (Ludii 3) (Reconstructed)" (rules "The game Guettal is played by two players on a 5x5 rectangle board with square tiling.
All players play with Counters.
Rules for Pieces:
Counters hop adjacent then if the to location of the last move is in , a piece of the moving player the to location of the last move, this piece can promote into DoubleCounter and set the value of Player the moving player to 0 or step adjacent then set the value of Player the moving player to 1 if the to location of the last move is in , a piece of the moving player the to location of the last move, this piece can promote into DoubleCounter.
Players take turns moving.
Setup:
Place a Counter for player one at the union of the bottom sites of the board expanded by 1 steps and the vertexes with coordinates [D3, E3].
Place a Counter for player two at the union of the vertexes with coordinates [A3, B3] and the top sites of the board expanded by 1 steps..
Rules:
Add one of your pieces to the set of empty vertexs then Each turn, where the site is within the set of empty vertexs, if 0 is not equal to State at current site, set the state of the Vertex current site to 0 and for all enclosed pieces on Vertexes starting from the to location of the last move with orthogonal direction if the number of liberties is less than or equal to 0 if the target is there is an enemy Player at between or emptyif there is an enemy Player at between, remove pieces at between and set the state of the Vertex between to current moving player.
Aim:
If player one cannot move and player two cannot move.
"))
(useFor "Ruleset/Guettal (Ludii 3) (Reconstructed)" (id "3679"))
(useFor "Ruleset/Guettal (Ludii 4) (Reconstructed)" (rules "The game Guettal is played by two players on a 5x5 rectangle board with square tiling.
All players play with Counters.
Rules for Pieces:
Counters step forwards or hop adjacent if the to location of the last move is in , a piece of the moving player the to location of the last move, this piece can promote into DoubleCounter.
Players take turns moving.
Setup:
Place a Counter for player one at the union of the bottom sites of the board expanded by 1 steps and the vertexes with coordinates [D3, E3].
Place a Counter for player two at the union of the vertexes with coordinates [A3, B3] and the top sites of the board expanded by 1 steps..
Rules:
Add one of your pieces to the set of empty vertexs then Each turn, where the site is within the set of empty vertexs, if 0 is not equal to State at current site, set the state of the Vertex current site to 0 and for all enclosed pieces on Vertexes starting from the to location of the last move with orthogonal direction if the number of liberties is less than or equal to 0 if the target is there is an enemy Player at between or emptyif there is an enemy Player at between, remove pieces at between and set the state of the Vertex between to current moving player.
Aim:
If player one cannot move and player two cannot move.
"))
(useFor "Ruleset/Guettal (Ludii 4) (Reconstructed)" (id "3680"))
(useFor "Ruleset/Guettal (Ludii 5) (Reconstructed)" (rules "The game Guettal is played by two players on a 5x5 rectangle board with square tiling.
All players play with Counters.
Rules for Pieces:
Counters hop adjacent then if the to location of the last move is in , a piece of the moving player the to location of the last move, this piece can promote into DoubleCounter and set the value of Player the moving player to 0 or step adjacent then set the value of Player the moving player to 1 if the to location of the last move is in , a piece of the moving player the to location of the last move, this piece can promote into DoubleCounter.
Players take turns moving.
Setup:
Place a Counter for player one at the union of the bottom sites of the board expanded by 1 steps and the vertexes with coordinates [D3, E3].
Place a Counter for player two at the union of the vertexes with coordinates [A3, B3] and the top sites of the board expanded by 1 steps..
Rules:
Moves with priority: if 1 is the mover, move one of your pieces or move one of your pieces, move one of your pieces.
Aim:
If player one cannot move and player two cannot move.
"))
(useFor "Ruleset/Guettal (Ludii 5) (Reconstructed)" (id "3681"))
(useFor "Ruleset/Guettal (Ludii 6) (Reconstructed)" (rules "The game Guettal is played by two players on a 5x5 rectangle board with square tiling.
All players play with Counters.
Rules for Pieces:
Counters step forwards or hop adjacent if the to location of the last move is in , a piece of the moving player the to location of the last move, this piece can promote into DoubleCounter.
Players take turns moving.
Setup:
Place a Counter for player one at the union of the bottom sites of the board expanded by 1 steps and the vertexes with coordinates [D3, E3].
Place a Counter for player two at the union of the vertexes with coordinates [A3, B3] and the top sites of the board expanded by 1 steps..
Rules:
Moves with priority: if 1 is the mover, move one of your pieces or move one of your pieces, move one of your pieces.
Aim:
If player one cannot move and player two cannot move.
"))
(useFor "Ruleset/Guettal (Ludii 6) (Reconstructed)" (id "3682"))
(useFor "Ruleset/Guettal (Ludii 7) (Reconstructed)" (rules "The game Guettal is played by two players on a 5x5 rectangle board with square tiling.
All players play with Counters.
Rules for Pieces:
Counters hop forwards, rightward or leftward then if the to location of the last move is in , a piece of the moving player the to location of the last move, this piece can promote into DoubleCounter and set the value of Player the moving player to 0 or step forwards, rightward or leftward then set the value of Player the moving player to 1 if the to location of the last move is in , a piece of the moving player the to location of the last move, this piece can promote into DoubleCounter.
Players take turns moving.
Setup:
Place a Counter for player one at the union of the bottom sites of the board expanded by 1 steps and the vertexes with coordinates [D3, E3].
Place a Counter for player two at the union of the vertexes with coordinates [A3, B3] and the top sites of the board expanded by 1 steps..
Rules:
If not in the same turn and the value of Player Prev is equal to 1, if the from location of the last move is in the pending sites and the from location of the last move is in the set of empty vertexs, select Vertex in the to location of the last move if vertex the location of the piece is occupied then remove pieces at the to location of the last move and move again and set the value of Player Prev to 0 or select Vertex in the pending sites if vertex the location of the piece is occupied then remove pieces at the to location of the last move and move again and set the value of Player Prev to 0 or if in the same turn, if the to location of the last move is equal to the from location of the last move, set the region the from sites of move one of your pieces to pending and afterwards move one of your pieces, else hop adjacent then set the value of Player the moving player to 0, else set the region the from sites of move one of your pieces to pending and afterwards move one of your pieces.
Aim:
If player one cannot move and player two cannot move.
"))
(useFor "Ruleset/Guettal (Ludii 7) (Reconstructed)" (id "3683"))
(useFor "Ruleset/Guettal (Ludii 8) (Reconstructed)" (rules "The game Guettal is played by two players on a 5x5 rectangle board with square tiling.
All players play with Counters.
Rules for Pieces:
Counters step if 0 is not equal to the number of moves then the difference between directions adjacent and DirectionChoice(Backwards, ) else forwards then if the to location of the last move is in , a piece of the moving player the to location of the last move, this piece can promote into DoubleCounter or hop the difference between directions adjacent and DirectionChoice(Backwards, ) then if the to location of the last move is in , a piece of the moving player the to location of the last move, this piece can promote into DoubleCounter.
Players take turns moving.
Setup:
Place a Counter for player one at the union of the bottom sites of the board expanded by 1 steps and the vertexes with coordinates [D3, E3].
Place a Counter for player two at the union of the vertexes with coordinates [A3, B3] and the top sites of the board expanded by 1 steps..
Rules:
If not in the same turn and the value of Player Prev is equal to 1, if the from location of the last move is in the pending sites and the from location of the last move is in the set of empty vertexs, select Vertex in the to location of the last move if vertex the location of the piece is occupied then remove pieces at the to location of the last move and move again and set the value of Player Prev to 0 or select Vertex in the pending sites if vertex the location of the piece is occupied then remove pieces at the to location of the last move and move again and set the value of Player Prev to 0 or if in the same turn, if the to location of the last move is equal to the from location of the last move, set the region the from sites of move one of your pieces to pending and afterwards move one of your pieces, else hop adjacent then set the value of Player the moving player to 0, else set the region the from sites of move one of your pieces to pending and afterwards move one of your pieces.
Aim:
If player one cannot move and player two cannot move.
"))
(useFor "Ruleset/Guettal (Ludii 8) (Reconstructed)" (id "3684"))
(useFor "Ruleset/Guettal (Ludii 9) (Reconstructed)" (rules "The game Guettal is played by two players on a 5x5 rectangle board with square tiling.
All players play with Counters.
Rules for Pieces:
Counters step the difference between directions forwards and DirectionChoice(Diagonal, ) or hop adjacent if the to location of the last move is in , a piece of the moving player the to location of the last move, this piece can promote into DoubleCounter.
Players take turns moving.
Setup:
Place a Counter for player one at the union of the bottom sites of the board expanded by 1 steps and the vertexes with coordinates [D3, E3].
Place a Counter for player two at the union of the vertexes with coordinates [A3, B3] and the top sites of the board expanded by 1 steps..
Rules:
If not in the same turn and the value of Player Prev is equal to 1, if the from location of the last move is in the pending sites and the from location of the last move is in the set of empty vertexs, select Vertex in the to location of the last move if vertex the location of the piece is occupied then remove pieces at the to location of the last move and move again and set the value of Player Prev to 0 or select Vertex in the pending sites if vertex the location of the piece is occupied then remove pieces at the to location of the last move and move again and set the value of Player Prev to 0 or if in the same turn, if the to location of the last move is equal to the from location of the last move, set the region the from sites of move one of your pieces to pending and afterwards move one of your pieces, else hop adjacent then set the value of Player the moving player to 0, else set the region the from sites of move one of your pieces to pending and afterwards move one of your pieces.
Aim:
If player one cannot move and player two cannot move.
"))
(useFor "Ruleset/Guettal (Ludii 9) (Reconstructed)" (id "3685"))
(useFor "Ruleset/Guettal (Ludii 10) (Reconstructed)" (rules "The game Guettal is played by two players on a 5x5 rectangle board with square tiling.
All players play with Counters.
Rules for Pieces:
Counters step forwardright or forwardleft.
Players take turns moving.
Setup:
Place a Counter for player one at the union of the bottom sites of the board expanded by 1 steps and the vertexes with coordinates [D3, E3].
Place a Counter for player two at the union of the vertexes with coordinates [A3, B3] and the top sites of the board expanded by 1 steps..
Rules:
If in the same turn, pass or hop adjacent then if can move hop adjacent, move again, else move one of your pieces.
Aim:
If player one cannot move and player two cannot move.
"))
(useFor "Ruleset/Guettal (Ludii 10) (Reconstructed)" (id "3686"))
(useFor "Ruleset/Guettal (Ludii 11) (Reconstructed)" (rules "The game Guettal is played by two players on a 4x9 rectangle board with square tiling.
All players play with Counters.
Rules for Pieces:
Counters hop adjacent then if the to location of the last move is in , a piece of the moving player the to location of the last move, this piece can promote into DoubleCounter and set the value of Player the moving player to 0 or step adjacent then set the value of Player the moving player to 1 if the to location of the last move is in , a piece of the moving player the to location of the last move, this piece can promote into DoubleCounter.
Players take turns moving.
Setup:
Place a Counter for player one at the union of the bottom sites of the board and the cells with coordinates [G2, H2, I2].
Place a Counter for player two at the union of the cells with coordinates [A3, B3, C3] and the top sites of the board..
Rules:
If not in the same turn and the value of Player Prev is equal to 1, if the from location of the last move is in the pending sites and the from location of the last move is in the set of empty cells, select Cell in the to location of the last move if cell the location of the piece is occupied then remove pieces at the to location of the last move and move again and set the value of Player Prev to 0 or select Cell in the pending sites if cell the location of the piece is occupied then remove pieces at the to location of the last move and move again and set the value of Player Prev to 0 or if in the same turn, if the to location of the last move is equal to the from location of the last move, set the region the from sites of move one of your pieces to pending and afterwards move one of your pieces, else hop adjacent then set the value of Player the moving player to 0, else set the region the from sites of move one of your pieces to pending and afterwards move one of your pieces.
Aim:
If player one cannot move and player two cannot move.
"))
(useFor "Ruleset/Guettal (Ludii 11) (Reconstructed)" (id "3687"))
(useFor "Ruleset/Guettal (Ludii 12) (Reconstructed)" (rules "The game Guettal is played by two players on a 4x9 rectangle board with square tiling.
All players play with Counters.
Rules for Pieces:
Counters step forwards or hop adjacent if the to location of the last move is in , a piece of the moving player the to location of the last move, this piece can promote into DoubleCounter.
Players take turns moving.
Setup:
Place a Counter for player one at the union of the bottom sites of the board and the cells with coordinates [G2, H2, I2].
Place a Counter for player two at the union of the cells with coordinates [A3, B3, C3] and the top sites of the board..
Rules:
If not in the same turn and the value of Player Prev is equal to 1, if the from location of the last move is in the pending sites and the from location of the last move is in the set of empty cells, select Cell in the to location of the last move if cell the location of the piece is occupied then remove pieces at the to location of the last move and move again and set the value of Player Prev to 0 or select Cell in the pending sites if cell the location of the piece is occupied then remove pieces at the to location of the last move and move again and set the value of Player Prev to 0 or if in the same turn, if the to location of the last move is equal to the from location of the last move, set the region the from sites of move one of your pieces to pending and afterwards move one of your pieces, else hop adjacent then set the value of Player the moving player to 0, else set the region the from sites of move one of your pieces to pending and afterwards move one of your pieces.
Aim:
If player one cannot move and player two cannot move.
"))
(useFor "Ruleset/Guettal (Ludii 12) (Reconstructed)" (id "3688"))
(useFor "Ruleset/Guettal (Ludii 13) (Reconstructed)" (rules "The game Guettal is played by two players on a 4x9 rectangle board with square tiling.
All players play with Counters.
Rules for Pieces:
Counters hop adjacent then if the to location of the last move is in , a piece of the moving player the to location of the last move, this piece can promote into DoubleCounter and set the value of Player the moving player to 0 or step adjacent then set the value of Player the moving player to 1 if the to location of the last move is in , a piece of the moving player the to location of the last move, this piece can promote into DoubleCounter.
Players take turns moving.
Setup:
Place a Counter for player one at the union of the bottom sites of the board and the cells with coordinates [G2, H2, I2].
Place a Counter for player two at the union of the cells with coordinates [A3, B3, C3] and the top sites of the board..
Rules:
Move one of your pieces.
Aim:
If player one cannot move and player two cannot move.
"))
(useFor "Ruleset/Guettal (Ludii 13) (Reconstructed)" (id "3689"))
(useFor "Ruleset/Guettal (Ludii 14) (Reconstructed)" (rules "The game Guettal is played by two players on a 4x9 rectangle board with square tiling.
All players play with Counters.
Rules for Pieces:
Counters step forwards or hop adjacent if the to location of the last move is in , a piece of the moving player the to location of the last move, this piece can promote into DoubleCounter.
Players take turns moving.
Setup:
Place a Counter for player one at the union of the bottom sites of the board and the cells with coordinates [G2, H2, I2].
Place a Counter for player two at the union of the cells with coordinates [A3, B3, C3] and the top sites of the board..
Rules:
Move one of your pieces.
Aim:
If player one cannot move and player two cannot move.
"))
(useFor "Ruleset/Guettal (Ludii 14) (Reconstructed)" (id "3690"))
(useFor "Ruleset/Guettal (Ludii 15) (Reconstructed)" (rules "The game Guettal is played by two players on a 4x9 rectangle board with square tiling.
All players play with Counters.
Rules for Pieces:
Counters hop adjacent then if the to location of the last move is in , a piece of the moving player the to location of the last move, this piece can promote into DoubleCounter and set the value of Player the moving player to 0 or step adjacent then set the value of Player the moving player to 1 if the to location of the last move is in , a piece of the moving player the to location of the last move, this piece can promote into DoubleCounter.
Players take turns moving.
Setup:
Place a Counter for player one at the union of the bottom sites of the board and the cells with coordinates [G2, H2, I2].
Place a Counter for player two at the union of the cells with coordinates [A3, B3, C3] and the top sites of the board..
Rules:
Add one of your pieces to the set of empty cells then Each turn, where the site is within the set of empty cells, if 0 is not equal to State at current site, set the state of the Cell current site to 0 and for all enclosed pieces on Cells starting from the to location of the last move with orthogonal direction if the number of liberties is less than or equal to 0 if the target is there is an enemy Player at between or emptyif there is an enemy Player at between, remove pieces at between and set the state of the Cell between to current moving player.
Aim:
If player one cannot move and player two cannot move.
"))
(useFor "Ruleset/Guettal (Ludii 15) (Reconstructed)" (id "3691"))
(useFor "Ruleset/Guettal (Ludii 16) (Reconstructed)" (rules "The game Guettal is played by two players on a 4x9 rectangle board with square tiling.
All players play with Counters.
Rules for Pieces:
Counters step forwards or hop adjacent if the to location of the last move is in , a piece of the moving player the to location of the last move, this piece can promote into DoubleCounter.
Players take turns moving.
Setup:
Place a Counter for player one at the union of the bottom sites of the board and the cells with coordinates [G2, H2, I2].
Place a Counter for player two at the union of the cells with coordinates [A3, B3, C3] and the top sites of the board..
Rules:
Add one of your pieces to the set of empty cells then Each turn, where the site is within the set of empty cells, if 0 is not equal to State at current site, set the state of the Cell current site to 0 and for all enclosed pieces on Cells starting from the to location of the last move with orthogonal direction if the number of liberties is less than or equal to 0 if the target is there is an enemy Player at between or emptyif there is an enemy Player at between, remove pieces at between and set the state of the Cell between to current moving player.
Aim:
If player one cannot move and player two cannot move.
"))
(useFor "Ruleset/Guettal (Ludii 16) (Reconstructed)" (id "3692"))
(useFor "Ruleset/Guettal (Ludii 17) (Reconstructed)" (rules "The game Guettal is played by two players on a 4x9 rectangle board with square tiling.
All players play with Counters.
Rules for Pieces:
Counters hop forwards, rightward or leftward then if the to location of the last move is in , a piece of the moving player the to location of the last move, this piece can promote into DoubleCounter and set the value of Player the moving player to 0 or step forwards, rightward or leftward then set the value of Player the moving player to 1 if the to location of the last move is in , a piece of the moving player the to location of the last move, this piece can promote into DoubleCounter.
Players take turns moving.
Setup:
Place a Counter for player one at the union of the bottom sites of the board and the cells with coordinates [G2, H2, I2].
Place a Counter for player two at the union of the cells with coordinates [A3, B3, C3] and the top sites of the board..
Rules:
If not in the same turn and the value of Player Prev is equal to 1, if the from location of the last move is in the pending sites and the from location of the last move is in the set of empty cells, select Cell in the to location of the last move if cell the location of the piece is occupied then remove pieces at the to location of the last move and move again and set the value of Player Prev to 0 or select Cell in the pending sites if cell the location of the piece is occupied then remove pieces at the to location of the last move and move again and set the value of Player Prev to 0 or if in the same turn, if the to location of the last move is equal to the from location of the last move, set the region the from sites of move one of your pieces to pending and afterwards move one of your pieces, else hop adjacent then set the value of Player the moving player to 0, else set the region the from sites of move one of your pieces to pending and afterwards move one of your pieces.
Aim:
If player one cannot move and player two cannot move.
"))
(useFor "Ruleset/Guettal (Ludii 17) (Reconstructed)" (id "3693"))
(useFor "Ruleset/Guettal (Ludii 18) (Reconstructed)" (rules "The game Guettal is played by two players on a 4x9 rectangle board with square tiling.
All players play with Counters.
Rules for Pieces:
Counters hop forwards, rightward or leftward then if the to location of the last move is in , a piece of the moving player the to location of the last move, this piece can promote into DoubleCounter and set the value of Player the moving player to 0 or step forwards, rightward or leftward then set the value of Player the moving player to 1 if the to location of the last move is in , a piece of the moving player the to location of the last move, this piece can promote into DoubleCounter.
Players take turns moving.
Setup:
Place a Counter for player one at the union of the bottom sites of the board and the cells with coordinates [G2, H2, I2].
Place a Counter for player two at the union of the cells with coordinates [A3, B3, C3] and the top sites of the board..
Rules:
Move one of your pieces.
Aim:
If player one cannot move and player two cannot move.
"))
(useFor "Ruleset/Guettal (Ludii 18) (Reconstructed)" (id "3694"))
(useFor "Ruleset/Guettal (Ludii 19) (Reconstructed)" (rules "The game Guettal is played by two players on a 4x9 rectangle board with square tiling.
All players play with Counters.
Rules for Pieces:
Counters step if 0 is not equal to the number of moves then the difference between directions adjacent and DirectionChoice(Backwards, ) else forwards then if the to location of the last move is in , a piece of the moving player the to location of the last move, this piece can promote into DoubleCounter or hop the difference between directions adjacent and DirectionChoice(Backwards, ) then if the to location of the last move is in , a piece of the moving player the to location of the last move, this piece can promote into DoubleCounter.
Players take turns moving.
Setup:
Place a Counter for player one at the union of the bottom sites of the board and the cells with coordinates [G2, H2, I2].
Place a Counter for player two at the union of the cells with coordinates [A3, B3, C3] and the top sites of the board..
Rules:
If not in the same turn and the value of Player Prev is equal to 1, if the from location of the last move is in the pending sites and the from location of the last move is in the set of empty cells, select Cell in the to location of the last move if cell the location of the piece is occupied then remove pieces at the to location of the last move and move again and set the value of Player Prev to 0 or select Cell in the pending sites if cell the location of the piece is occupied then remove pieces at the to location of the last move and move again and set the value of Player Prev to 0 or if in the same turn, if the to location of the last move is equal to the from location of the last move, set the region the from sites of move one of your pieces to pending and afterwards move one of your pieces, else hop adjacent then set the value of Player the moving player to 0, else set the region the from sites of move one of your pieces to pending and afterwards move one of your pieces.
Aim:
If player one cannot move and player two cannot move.
"))
(useFor "Ruleset/Guettal (Ludii 19) (Reconstructed)" (id "3695"))
(useFor "Ruleset/Guettal (Ludii 20) (Reconstructed)" (rules "The game Guettal is played by two players on a 4x9 rectangle board with square tiling.
All players play with Counters.
Rules for Pieces:
Counters step if 0 is not equal to the number of moves then the difference between directions adjacent and DirectionChoice(Backwards, ) else forwards then if the to location of the last move is in , a piece of the moving player the to location of the last move, this piece can promote into DoubleCounter or hop the difference between directions adjacent and DirectionChoice(Backwards, ) then if the to location of the last move is in , a piece of the moving player the to location of the last move, this piece can promote into DoubleCounter.
Players take turns moving.
Setup:
Place a Counter for player one at the union of the bottom sites of the board and the cells with coordinates [G2, H2, I2].
Place a Counter for player two at the union of the cells with coordinates [A3, B3, C3] and the top sites of the board..
Rules:
Move one of your pieces.
Aim:
If player one cannot move and player two cannot move.
"))
(useFor "Ruleset/Guettal (Ludii 20) (Reconstructed)" (id "3696"))
(version "1.3.9")
(classification "board/war/leaping/lines/reconstruction/done")
(credit "Eric Piette")
(origin "This game was played in Algeria, around 1921.")
}
)
(recon {
(concept "Capture" True)
})
)