(game "Four-Fang"
)
//------------------------------------------------------------------------------
(option "Variant" args:{ }
{
(item "Four-Fang (Ludii 1)" <
(players 2)
(equipment {
(board
(square 4)
use:Vertex)
(piece "Marker" Each
(move Step
(to if:
(is Empty
(to)
)
)
(then
(if
(>
(count Sites in:
(forEach
(sites Around
(last To)
)
if:
(if
(is Empty
(site)
)
(or
(and {
(is In
(last To)
(sites {
(ahead
(site)
N )
(ahead
(site)
S )
(ahead
(site)
W )
(ahead
(site)
E )
}
)
)
(is Mover
(who at:
(ahead
(site)
N )
)
)
(is Mover
(who at:
(ahead
(site)
S )
)
)
(is Mover
(who at:
(ahead
(site)
W )
)
)
(is Mover
(who at:
(ahead
(site)
E )
)
)
}
)
(and {
(is In
(last To)
(sites {
(ahead
(site)
NE )
(ahead
(site)
SE )
(ahead
(site)
SW )
(ahead
(site)
NW )
}
)
)
(is Mover
(who at:
(ahead
(site)
NE )
)
)
(is Mover
(who at:
(ahead
(site)
SE )
)
)
(is Mover
(who at:
(ahead
(site)
SW )
)
)
(is Mover
(who at:
(ahead
(site)
NW )
)
)
}
)
)
)
)
)
0 )
(and
(set Value Mover
(count Sites in:
(forEach
(sites Around
(last To)
)
if:
(if
(is Empty
(site)
)
(or
(and {
(is In
(last To)
(sites {
(ahead
(site )
N )
(ahead
(site )
S )
(ahead
(site )
W )
(ahead
(site )
E )
}
)
)
(is Mover
(who at:
(ahead
(site)
N )
)
)
(is Mover
(who at:
(ahead
(site)
S )
)
)
(is Mover
(who at:
(ahead
(site)
W )
)
)
(is Mover
(who at:
(ahead
(site)
E )
)
)
}
)
(and {
(is In
(last To)
(sites {
(ahead
(site )
NE )
(ahead
(site )
SE )
(ahead
(site )
SW )
(ahead
(site )
NW )
}
)
)
(is Mover
(who at:
(ahead
(site)
NE )
)
)
(is Mover
(who at:
(ahead
(site)
SE )
)
)
(is Mover
(who at:
(ahead
(site)
SW )
)
)
(is Mover
(who at:
(ahead
(site)
NW )
)
)
}
)
)
)
)
)
)
(moveAgain)
)
)
)
)
)
(hand Each)
}
)
(rules
(start
(place "Marker" "Hand" count:24)
)
phases:{
(phase "FirstPlacement" P1
(play
(move
(from
(handSite Mover)
)
(to
(sites Centre)
)
)
)
(nextPhase "Placement")
)
(phase "Placement"
(play
(move
(from
(handSite Mover)
)
(to
(sites Empty)
)
)
)
(nextPhase Mover
(all Sites
(sites Hand Mover)
if:
(= 0
(count Cell at:
(site)
)
)
)
"Playing" )
)
(phase "Playing"
(play
(if
(is Prev Mover)
(move Remove
(sites Occupied by:Next)
(then
(if
(>
(value Player Mover)
1)
(and
(moveAgain)
(set Value Mover
(-
(value Player Mover)
1)
)
)
(set Value Mover 0)
)
)
)
(forEach Piece)
)
)
)
}
(end
(if
(no Pieces Next)
(result Next Loss)
)
)
)
> "The Four-Fang (Ludii 1) ruleset.")
(item "Four-Fang (Ludii 2)" <
(players 2)
(equipment {
(board
(square 4)
use:Vertex)
(piece "Marker" Each
(move Step
(to if:
(is Empty
(to)
)
)
(then
(if
(>
(count Sites in:
(forEach
(sites Around
(last To)
)
if:
(if
(is Empty
(site)
)
(or
(and {
(is In
(last To)
(sites {
(ahead
(site)
N )
(ahead
(site)
S )
(ahead
(site)
W )
(ahead
(site)
E )
}
)
)
(is Mover
(who at:
(ahead
(site)
N )
)
)
(is Mover
(who at:
(ahead
(site)
S )
)
)
(is Mover
(who at:
(ahead
(site)
W )
)
)
(is Mover
(who at:
(ahead
(site)
E )
)
)
}
)
(and {
(is In
(last To)
(sites {
(ahead
(site)
NE )
(ahead
(site)
SE )
(ahead
(site)
SW )
(ahead
(site)
NW )
}
)
)
(is Mover
(who at:
(ahead
(site)
NE )
)
)
(is Mover
(who at:
(ahead
(site)
SE )
)
)
(is Mover
(who at:
(ahead
(site)
SW )
)
)
(is Mover
(who at:
(ahead
(site)
NW )
)
)
}
)
)
)
)
)
0 )
(and
(set Value Mover
(count Sites in:
(forEach
(sites Around
(last To)
)
if:
(if
(is Empty
(site)
)
(or
(and {
(is In
(last To)
(sites {
(ahead
(site )
N )
(ahead
(site )
S )
(ahead
(site )
W )
(ahead
(site )
E )
}
)
)
(is Mover
(who at:
(ahead
(site)
N )
)
)
(is Mover
(who at:
(ahead
(site)
S )
)
)
(is Mover
(who at:
(ahead
(site)
W )
)
)
(is Mover
(who at:
(ahead
(site)
E )
)
)
}
)
(and {
(is In
(last To)
(sites {
(ahead
(site )
NE )
(ahead
(site )
SE )
(ahead
(site )
SW )
(ahead
(site )
NW )
}
)
)
(is Mover
(who at:
(ahead
(site)
NE )
)
)
(is Mover
(who at:
(ahead
(site)
SE )
)
)
(is Mover
(who at:
(ahead
(site)
SW )
)
)
(is Mover
(who at:
(ahead
(site)
NW )
)
)
}
)
)
)
)
)
)
(moveAgain)
)
)
)
)
)
(hand Each)
}
)
(rules
(start
(place "Marker" "Hand" count:40)
)
phases:{
(phase "Placement"
(play
(if
(is Prev Mover)
(move Remove
(forEach
(sites Occupied by:Next container:"Board")
if:
(and
(not
(is Line 3 All through:
(site)
)
)
(not
(is Pattern { F R F R F R F }
from:
(site)
)
)
)
)
)
(move
(from
(handSite Mover)
)
(to
(sites Empty)
)
(then
(if
(or
(is Line 3 All)
(is Pattern { F R F R F R F }
)
)
(moveAgain)
)
)
)
)
)
(nextPhase Mover
(all Sites
(sites Hand Mover)
if:
(= 0
(count Cell at:
(site)
)
)
)
"Movement" )
)
(phase "Movement"
(play
(if
(is Prev Mover)
(move Remove
(forEach
(sites Occupied by:Next container:"Board")
if:
(and
(not
(is Line 3 All through:
(site)
)
)
(not
(is Pattern { F R F R F R F }
from:
(site)
)
)
)
)
)
(forEach Piece)
)
)
)
}
(end
(if
(no Pieces Next)
(result Next Loss)
)
)
)
> "The Four-Fang (Ludii 2) ruleset.")
(item "Four-Fang (Ludii 3)" <
(players 2)
(equipment {
(board
(square 4)
use:Vertex)
(piece "Marker" Each
(move Step
(to if:
(is Empty
(to)
)
)
(then
(if
(or
(is Line 3 All)
(is Pattern { F R F R F R F }
)
)
(moveAgain)
)
)
)
)
(hand Each)
}
)
(rules
(start
(place "Marker" "Hand" count:24)
)
phases:{
(phase "FirstPlacement" P1
(play
(move
(from
(handSite Mover)
)
(to
(sites Centre)
)
)
)
(nextPhase "Placement")
)
(phase "Placement"
(play
(move
(from
(handSite Mover)
)
(to
(sites Empty)
)
)
)
(nextPhase Mover
(all Sites
(sites Hand Mover)
if:
(= 0
(count Cell at:
(site)
)
)
)
"Playing" )
)
(phase "Playing"
(play
(if
(is Prev Mover)
(move Remove
(sites Occupied by:Next)
(then
(if
(>
(value Player Mover)
1)
(and
(moveAgain)
(set Value Mover
(-
(value Player Mover)
1)
)
)
(set Value Mover 0)
)
)
)
(forEach Piece)
)
)
)
}
(end
(if
(no Pieces Next)
(result Next Loss)
)
)
)
> "The Four-Fang (Ludii 3) ruleset.")
(item "Four-Fang (Ludii 4)" <
(players 2)
(equipment {
(board
(square 4)
use:Vertex)
(piece "Marker" Each
(move Step
(to if:
(is Empty
(to)
)
)
(then
(if
(>
(count Sites in:
(forEach
(sites Around
(last To)
)
if:
(if
(is Empty
(site)
)
(or
(and {
(is In
(last To)
(sites {
(ahead
(site)
N )
(ahead
(site)
S )
(ahead
(site)
W )
(ahead
(site)
E )
}
)
)
(is Mover
(who at:
(ahead
(site)
N )
)
)
(is Mover
(who at:
(ahead
(site)
S )
)
)
(is Mover
(who at:
(ahead
(site)
W )
)
)
(is Mover
(who at:
(ahead
(site)
E )
)
)
}
)
(and {
(is In
(last To)
(sites {
(ahead
(site)
NE )
(ahead
(site)
SE )
(ahead
(site)
SW )
(ahead
(site)
NW )
}
)
)
(is Mover
(who at:
(ahead
(site)
NE )
)
)
(is Mover
(who at:
(ahead
(site)
SE )
)
)
(is Mover
(who at:
(ahead
(site)
SW )
)
)
(is Mover
(who at:
(ahead
(site)
NW )
)
)
}
)
)
)
)
)
0 )
(and
(set Value Mover
(count Sites in:
(forEach
(sites Around
(last To)
)
if:
(if
(is Empty
(site)
)
(or
(and {
(is In
(last To)
(sites {
(ahead
(site )
N )
(ahead
(site )
S )
(ahead
(site )
W )
(ahead
(site )
E )
}
)
)
(is Mover
(who at:
(ahead
(site)
N )
)
)
(is Mover
(who at:
(ahead
(site)
S )
)
)
(is Mover
(who at:
(ahead
(site)
W )
)
)
(is Mover
(who at:
(ahead
(site)
E )
)
)
}
)
(and {
(is In
(last To)
(sites {
(ahead
(site )
NE )
(ahead
(site )
SE )
(ahead
(site )
SW )
(ahead
(site )
NW )
}
)
)
(is Mover
(who at:
(ahead
(site)
NE )
)
)
(is Mover
(who at:
(ahead
(site)
SE )
)
)
(is Mover
(who at:
(ahead
(site)
SW )
)
)
(is Mover
(who at:
(ahead
(site)
NW )
)
)
}
)
)
)
)
)
)
(moveAgain)
)
)
)
)
)
(hand Each)
}
)
(rules
(start {
(place Stack "Marker1"
(handSite P1)
count:12)
(place Stack "Marker2"
(handSite P2)
count:12)
}
)
phases:{
(phase "Placement"
(play
(if
(is Prev Mover)
(move
(from
(handSite Mover)
)
(to
(forEach
(sites Occupied by:Next container:"Board")
if:
(=
(size Stack at:
(site)
)
1)
)
)
)
(if
(not
(all Sites
(sites Hand Mover)
if:
(= 0
(count Cell at:
(site)
)
)
)
)
(move
(from
(handSite Mover)
)
(to
(sites Empty)
)
(then
(if
(is Line 3 if:
(= 1
(size Stack at:
(to)
)
)
)
(moveAgain)
)
)
)
)
(then
(if
(and
(not
(is Next Mover)
)
(and
(all Sites
(sites Hand P1)
if:
(= 0
(count Cell at:
(site)
)
)
)
(all Sites
(sites Hand P2)
if:
(= 0
(count Cell at:
(site)
)
)
)
)
)
(and
(forEach Site
(forEach
(sites Occupied by:P1 container:"Board" )
if:
(=
(size Stack at:
(site)
)
2)
)
(and {
(remove
(site)
)
(remove
(site)
)
(add
(piece
(id "Marker" P1)
)
(to
(site)
)
)
}
)
)
(forEach Site
(forEach
(sites Occupied by:P2 container:"Board" )
if:
(=
(size Stack at:
(site)
)
2)
)
(and {
(remove
(site)
)
(remove
(site)
)
(add
(piece
(id "Marker" P2)
)
(to
(site)
)
)
}
)
)
)
)
)
)
)
(nextPhase
(and
(not
(is Next Mover)
)
(and
(all Sites
(sites Hand P1)
if:
(= 0
(count Cell at:
(site)
)
)
)
(all Sites
(sites Hand P2)
if:
(= 0
(count Cell at:
(site)
)
)
)
)
)
"Movement" )
)
(phase "Movement"
(play
(if
(is Prev Mover)
(move Remove
(sites Occupied by:Enemy container:"Board")
)
(if
(>
(count Pieces Mover)
3)
(forEach Piece)
(move
(from
(sites Occupied by:Mover)
)
(to
(sites Empty)
)
)
)
)
)
(end
(if
(no Moves Next)
(result Mover Win)
)
)
)
}
)
> "The Four-Fang (Ludii 4) ruleset.")
(item "Four-Fang (Ludii 5)" <
(players 2)
(equipment {
(board
(square 4)
use:Vertex)
(piece "Marker" Each
(move Step
(to if:
(is Empty
(to)
)
)
(then
(if
(is Line 3 if:
(= 1
(size Stack at:
(to)
)
)
)
(moveAgain)
)
)
)
)
(hand Each)
}
)
(rules
(start
(place "Marker" "Hand" count:24)
)
phases:{
(phase "FirstPlacement" P1
(play
(move
(from
(handSite Mover)
)
(to
(sites Centre)
)
)
)
(nextPhase "Placement")
)
(phase "Placement"
(play
(move
(from
(handSite Mover)
)
(to
(sites Empty)
)
)
)
(nextPhase Mover
(all Sites
(sites Hand Mover)
if:
(= 0
(count Cell at:
(site)
)
)
)
"Playing" )
)
(phase "Playing"
(play
(if
(is Prev Mover)
(move Remove
(sites Occupied by:Next)
(then
(if
(>
(value Player Mover)
1)
(and
(moveAgain)
(set Value Mover
(-
(value Player Mover)
1)
)
)
(set Value Mover 0)
)
)
)
(forEach Piece)
)
)
)
}
(end
(if
(no Pieces Next)
(result Next Loss)
)
)
)
> "The Four-Fang (Ludii 5) ruleset.")
(item "Four-Fang (Ludii 6)" <
(players 2)
(equipment {
(board
(square 4)
use:Vertex)
(piece "Marker" Each
(move Step
(to if:
(is Empty
(to)
)
)
(then
(if
(>
(count Sites in:
(forEach
(sites Around
(last To)
)
if:
(if
(is Empty
(site)
)
(or
(and {
(is In
(last To)
(sites {
(ahead
(site)
N )
(ahead
(site)
S )
(ahead
(site)
W )
(ahead
(site)
E )
}
)
)
(is Mover
(who at:
(ahead
(site)
N )
)
)
(is Mover
(who at:
(ahead
(site)
S )
)
)
(is Mover
(who at:
(ahead
(site)
W )
)
)
(is Mover
(who at:
(ahead
(site)
E )
)
)
}
)
(and {
(is In
(last To)
(sites {
(ahead
(site)
NE )
(ahead
(site)
SE )
(ahead
(site)
SW )
(ahead
(site)
NW )
}
)
)
(is Mover
(who at:
(ahead
(site)
NE )
)
)
(is Mover
(who at:
(ahead
(site)
SE )
)
)
(is Mover
(who at:
(ahead
(site)
SW )
)
)
(is Mover
(who at:
(ahead
(site)
NW )
)
)
}
)
)
)
)
)
0 )
(and
(set Value Mover
(count Sites in:
(forEach
(sites Around
(last To)
)
if:
(if
(is Empty
(site)
)
(or
(and {
(is In
(last To)
(sites {
(ahead
(site )
N )
(ahead
(site )
S )
(ahead
(site )
W )
(ahead
(site )
E )
}
)
)
(is Mover
(who at:
(ahead
(site)
N )
)
)
(is Mover
(who at:
(ahead
(site)
S )
)
)
(is Mover
(who at:
(ahead
(site)
W )
)
)
(is Mover
(who at:
(ahead
(site)
E )
)
)
}
)
(and {
(is In
(last To)
(sites {
(ahead
(site )
NE )
(ahead
(site )
SE )
(ahead
(site )
SW )
(ahead
(site )
NW )
}
)
)
(is Mover
(who at:
(ahead
(site)
NE )
)
)
(is Mover
(who at:
(ahead
(site)
SE )
)
)
(is Mover
(who at:
(ahead
(site)
SW )
)
)
(is Mover
(who at:
(ahead
(site)
NW )
)
)
}
)
)
)
)
)
)
(moveAgain)
)
)
)
)
)
(hand Each)
}
)
(rules
(start
(place "Marker" "Hand" count:12)
)
phases:{
(phase "Placement"
(play
(if
(=
(count Moves)
24)
(forEach Piece)
(move
(from
(handSite Mover)
)
(to
(difference
(sites Empty)
(centrePoint)
)
)
(then
(if
(or
(=
(count Moves)
24)
(not
(is Prev Mover)
)
)
(moveAgain)
)
)
)
)
)
(nextPhase
(=
(count Moves)
25)
"Movement")
)
(phase "Movement"
(play
(if
(is Prev Mover)
(move Step
(from
(last To)
)
Orthogonal
(to if:
(and
(is Empty
(to)
)
(or {
(and
(is Enemy
(who at:
(ahead
(to)
W)
)
)
(is Friend
(who at:
(ahead
(ahead
(to)
W)
W )
)
)
)
(and
(is Enemy
(who at:
(ahead
(to)
E)
)
)
(is Friend
(who at:
(ahead
(ahead
(to)
E)
E )
)
)
)
(and
(is Enemy
(who at:
(ahead
(to)
N)
)
)
(is Friend
(who at:
(ahead
(ahead
(to)
N)
N )
)
)
)
(and
(is Enemy
(who at:
(ahead
(to)
S)
)
)
(is Friend
(who at:
(ahead
(ahead
(to)
S)
S )
)
)
)
}
)
)
)
(then
(custodial
(from
(last To)
)
Orthogonal
(between
(max 1)
if:
(and
(is Enemy
(who at:
(between)
)
)
(!=
(centrePoint)
(between)
)
)
(apply
(and
(remove
(between)
)
(if
(or {
(can Move
(custodial
(from
(ahead
(last To )
N )
)
Orthogonal
(between
(max 1 )
if:
(and
(is Enemy
(who at:
(between )
)
)
(!=
(centrePoint )
(between )
)
)
)
(to if:
(is Friend
(who at:
(to )
)
)
)
)
)
(can Move
(custodial
(from
(ahead
(last To )
E )
)
Orthogonal
(between
(max 1 )
if:
(and
(is Enemy
(who at:
(between )
)
)
(!=
(centrePoint )
(between )
)
)
)
(to if:
(is Friend
(who at:
(to )
)
)
)
)
)
(can Move
(custodial
(from
(ahead
(last To )
W )
)
Orthogonal
(between
(max 1 )
if:
(and
(is Enemy
(who at:
(between )
)
)
(!=
(centrePoint )
(between )
)
)
)
(to if:
(is Friend
(who at:
(to )
)
)
)
)
)
(can Move
(custodial
(from
(ahead
(last To )
S )
)
Orthogonal
(between
(max 1 )
if:
(and
(is Enemy
(who at:
(between )
)
)
(!=
(centrePoint )
(between )
)
)
)
(to if:
(is Friend
(who at:
(to )
)
)
)
)
)
}
)
(moveAgain)
(if
(no Moves Next)
(and
(set Pending)
(moveAgain)
)
)
)
)
)
)
(to if:
(is Friend
(who at:
(to)
)
)
)
)
)
)
(do
(forEach Piece)
ifAfterwards:
(not
(no Moves Next)
)
)
)
)
)
}
(end
(if
(no Pieces Next)
(result Next Loss)
)
)
)
> "The Four-Fang (Ludii 6) ruleset.")
(item "Four-Fang (Ludii 7)" <
(players 2)
(equipment {
(board
(square 4)
use:Vertex)
(piece "Marker" Each
(move Step
(to if:
(is Empty
(to)
)
)
(then
(if
(or
(is Line 3 All)
(is Pattern { F R F R F R F }
)
)
(moveAgain)
)
)
)
)
(hand Each)
}
)
(rules
(start
(place "Marker" "Hand" count:40)
)
phases:{
(phase "Placement"
(play
(if
(is Prev Mover)
(move Remove
(forEach
(sites Occupied by:Next container:"Board")
if:
(and
(not
(is Line 3 All through:
(site)
)
)
(not
(is Pattern { F R F R F R F }
from:
(site)
)
)
)
)
)
(move
(from
(handSite Mover)
)
(to
(sites Empty)
)
(then
(if
(or
(is Line 3 All)
(is Pattern { F R F R F R F }
)
)
(moveAgain)
)
)
)
)
)
(nextPhase Mover
(all Sites
(sites Hand Mover)
if:
(= 0
(count Cell at:
(site)
)
)
)
"Movement" )
)
(phase "Movement"
(play
(if
(is Prev Mover)
(move Remove
(forEach
(sites Occupied by:Next container:"Board")
if:
(and
(not
(is Line 3 All through:
(site)
)
)
(not
(is Pattern { F R F R F R F }
from:
(site)
)
)
)
)
)
(forEach Piece)
)
)
)
}
(end
(if
(no Pieces Next)
(result Next Loss)
)
)
)
> "The Four-Fang (Ludii 7) ruleset.")
(item "Four-Fang (Ludii 8)" <
(players 2)
(equipment {
(board
(square 4)
use:Vertex)
(piece "Marker" Each
(move Step
(to if:
(is Empty
(to)
)
)
(then
(if
(or
(is Line 3 All)
(is Pattern { F R F R F R F }
)
)
(moveAgain)
)
)
)
)
(hand Each)
}
)
(rules
(start {
(place Stack "Marker1"
(handSite P1)
count:12)
(place Stack "Marker2"
(handSite P2)
count:12)
}
)
phases:{
(phase "Placement"
(play
(if
(is Prev Mover)
(move
(from
(handSite Mover)
)
(to
(forEach
(sites Occupied by:Next container:"Board")
if:
(=
(size Stack at:
(site)
)
1)
)
)
)
(if
(not
(all Sites
(sites Hand Mover)
if:
(= 0
(count Cell at:
(site)
)
)
)
)
(move
(from
(handSite Mover)
)
(to
(sites Empty)
)
(then
(if
(is Line 3 if:
(= 1
(size Stack at:
(to)
)
)
)
(moveAgain)
)
)
)
)
(then
(if
(and
(not
(is Next Mover)
)
(and
(all Sites
(sites Hand P1)
if:
(= 0
(count Cell at:
(site)
)
)
)
(all Sites
(sites Hand P2)
if:
(= 0
(count Cell at:
(site)
)
)
)
)
)
(and
(forEach Site
(forEach
(sites Occupied by:P1 container:"Board" )
if:
(=
(size Stack at:
(site)
)
2)
)
(and {
(remove
(site)
)
(remove
(site)
)
(add
(piece
(id "Marker" P1)
)
(to
(site)
)
)
}
)
)
(forEach Site
(forEach
(sites Occupied by:P2 container:"Board" )
if:
(=
(size Stack at:
(site)
)
2)
)
(and {
(remove
(site)
)
(remove
(site)
)
(add
(piece
(id "Marker" P2)
)
(to
(site)
)
)
}
)
)
)
)
)
)
)
(nextPhase
(and
(not
(is Next Mover)
)
(and
(all Sites
(sites Hand P1)
if:
(= 0
(count Cell at:
(site)
)
)
)
(all Sites
(sites Hand P2)
if:
(= 0
(count Cell at:
(site)
)
)
)
)
)
"Movement" )
)
(phase "Movement"
(play
(if
(is Prev Mover)
(move Remove
(sites Occupied by:Enemy container:"Board")
)
(if
(>
(count Pieces Mover)
3)
(forEach Piece)
(move
(from
(sites Occupied by:Mover)
)
(to
(sites Empty)
)
)
)
)
)
(end
(if
(no Moves Next)
(result Mover Win)
)
)
)
}
)
> "The Four-Fang (Ludii 8) ruleset.")
(item "Four-Fang (Ludii 9)" <
(players 2)
(equipment {
(board
(square 4)
use:Vertex)
(piece "Marker" Each
(move Step
(to if:
(is Empty
(to)
)
)
(then
(if
(is Line 3 if:
(= 1
(size Stack at:
(to)
)
)
)
(moveAgain)
)
)
)
)
(hand Each)
}
)
(rules
(start
(place "Marker" "Hand" count:40)
)
phases:{
(phase "Placement"
(play
(if
(is Prev Mover)
(move Remove
(forEach
(sites Occupied by:Next container:"Board")
if:
(and
(not
(is Line 3 All through:
(site)
)
)
(not
(is Pattern { F R F R F R F }
from:
(site)
)
)
)
)
)
(move
(from
(handSite Mover)
)
(to
(sites Empty)
)
(then
(if
(or
(is Line 3 All)
(is Pattern { F R F R F R F }
)
)
(moveAgain)
)
)
)
)
)
(nextPhase Mover
(all Sites
(sites Hand Mover)
if:
(= 0
(count Cell at:
(site)
)
)
)
"Movement" )
)
(phase "Movement"
(play
(if
(is Prev Mover)
(move Remove
(forEach
(sites Occupied by:Next container:"Board")
if:
(and
(not
(is Line 3 All through:
(site)
)
)
(not
(is Pattern { F R F R F R F }
from:
(site)
)
)
)
)
)
(forEach Piece)
)
)
)
}
(end
(if
(no Pieces Next)
(result Next Loss)
)
)
)
> "The Four-Fang (Ludii 9) ruleset.")
(item "Four-Fang (Ludii 10)" <
(players 2)
(equipment {
(board
(square 4)
use:Vertex)
(piece "Marker" Each
(move Step
(to if:
(is Empty
(to)
)
)
(then
(if
(is Line 3 if:
(= 1
(size Stack at:
(to)
)
)
)
(moveAgain)
)
)
)
)
(hand Each)
}
)
(rules
(start {
(place Stack "Marker1"
(handSite P1)
count:12)
(place Stack "Marker2"
(handSite P2)
count:12)
}
)
phases:{
(phase "Placement"
(play
(if
(is Prev Mover)
(move
(from
(handSite Mover)
)
(to
(forEach
(sites Occupied by:Next container:"Board")
if:
(=
(size Stack at:
(site)
)
1)
)
)
)
(if
(not
(all Sites
(sites Hand Mover)
if:
(= 0
(count Cell at:
(site)
)
)
)
)
(move
(from
(handSite Mover)
)
(to
(sites Empty)
)
(then
(if
(is Line 3 if:
(= 1
(size Stack at:
(to)
)
)
)
(moveAgain)
)
)
)
)
(then
(if
(and
(not
(is Next Mover)
)
(and
(all Sites
(sites Hand P1)
if:
(= 0
(count Cell at:
(site)
)
)
)
(all Sites
(sites Hand P2)
if:
(= 0
(count Cell at:
(site)
)
)
)
)
)
(and
(forEach Site
(forEach
(sites Occupied by:P1 container:"Board" )
if:
(=
(size Stack at:
(site)
)
2)
)
(and {
(remove
(site)
)
(remove
(site)
)
(add
(piece
(id "Marker" P1)
)
(to
(site)
)
)
}
)
)
(forEach Site
(forEach
(sites Occupied by:P2 container:"Board" )
if:
(=
(size Stack at:
(site)
)
2)
)
(and {
(remove
(site)
)
(remove
(site)
)
(add
(piece
(id "Marker" P2)
)
(to
(site)
)
)
}
)
)
)
)
)
)
)
(nextPhase
(and
(not
(is Next Mover)
)
(and
(all Sites
(sites Hand P1)
if:
(= 0
(count Cell at:
(site)
)
)
)
(all Sites
(sites Hand P2)
if:
(= 0
(count Cell at:
(site)
)
)
)
)
)
"Movement" )
)
(phase "Movement"
(play
(if
(is Prev Mover)
(move Remove
(sites Occupied by:Enemy container:"Board")
)
(if
(>
(count Pieces Mover)
3)
(forEach Piece)
(move
(from
(sites Occupied by:Mover)
)
(to
(sites Empty)
)
)
)
)
)
(end
(if
(no Moves Next)
(result Mover Win)
)
)
)
}
)
> "The Four-Fang (Ludii 10) ruleset.")
(item "Incomplete"
<
(players 2)
(equipment {
(board
(square 4)
use:Vertex
)
(piece "Marker" Each [#])
(hand Each)
})
(rules [#])
>
"The incomplete ruleset."
)
})
//------------------------------------------------------------------------------
(rulesets {
(ruleset "Ruleset/Four-Fang (Ludii 1) (Reconstructed)" {
"Variant/Four-Fang (Ludii 1)"
})
(ruleset "Ruleset/Four-Fang (Ludii 2) (Reconstructed)" {
"Variant/Four-Fang (Ludii 2)"
})
(ruleset "Ruleset/Four-Fang (Ludii 3) (Reconstructed)" {
"Variant/Four-Fang (Ludii 3)"
})
(ruleset "Ruleset/Four-Fang (Ludii 4) (Reconstructed)" {
"Variant/Four-Fang (Ludii 4)"
})
(ruleset "Ruleset/Four-Fang (Ludii 5) (Reconstructed)" {
"Variant/Four-Fang (Ludii 5)"
})
(ruleset "Ruleset/Four-Fang (Ludii 6) (Reconstructed)" {
"Variant/Four-Fang (Ludii 6)"
})
(ruleset "Ruleset/Four-Fang (Ludii 7) (Reconstructed)" {
"Variant/Four-Fang (Ludii 7)"
})
(ruleset "Ruleset/Four-Fang (Ludii 8) (Reconstructed)" {
"Variant/Four-Fang (Ludii 8)"
})
(ruleset "Ruleset/Four-Fang (Ludii 9) (Reconstructed)" {
"Variant/Four-Fang (Ludii 9)"
})
(ruleset "Ruleset/Four-Fang (Ludii 10) (Reconstructed)" {
"Variant/Four-Fang (Ludii 10)"
})
(ruleset "Ruleset/Historical Information (Incomplete)" {
"Variant/Incomplete"
})
})
//------------------------------------------------------------------------------
(metadata
(info
{
(description "Four-Fang is a game that is played in China. It was played during the twentieth century, but graffiti at earlier sites suggest that it could be much older. Though it was observed, the rules were not documented, but it may be similar to the game Fang played by the Uighur people.")
(useFor "Ruleset/Historical Information (Incomplete)" (rules "4x4 intersecting lines."))
(useFor "Ruleset/Historical Information (Incomplete)" (source "DLP evidence."))
(useFor "Ruleset/Historical Information (Incomplete)" (id "1135"))
(useFor "Ruleset/Four-Fang (Ludii 1) (Reconstructed)" (rules "The game Four-Fang is played by two players on a 4x4 rectangle board with square tiling.
All players play with Markers.
Rules for Pieces:
Markers step adjacent then if the number of sites in if empty then the to location of the last move is in sites [ the Vertex 1 steps ahead of current site in the direction north, the Vertex 1 steps ahead of current site in the direction south, the Vertex 1 steps ahead of current site in the direction west, the Vertex 1 steps ahead of current site in the direction east], Player at the Vertex 1 steps ahead of current site in the direction north is the mover, Player at the Vertex 1 steps ahead of current site in the direction south is the mover, Player at the Vertex 1 steps ahead of current site in the direction west is the mover and Player at the Vertex 1 steps ahead of current site in the direction east is the mover or the to location of the last move is in sites [ the Vertex 1 steps ahead of current site in the direction ne, the Vertex 1 steps ahead of current site in the direction se, the Vertex 1 steps ahead of current site in the direction sw, the Vertex 1 steps ahead of current site in the direction nw], Player at the Vertex 1 steps ahead of current site in the direction ne is the mover, Player at the Vertex 1 steps ahead of current site in the direction se is the mover, Player at the Vertex 1 steps ahead of current site in the direction sw is the mover and Player at the Vertex 1 steps ahead of current site in the direction nw is the mover the number of sites within 1 spaces of the to location of the last move includeOrigin: false is greater than 0, set the value of Player the moving player to the number of sites in if empty then the to location of the last move is in sites [ the Vertex 1 steps ahead of current site in the direction north, the Vertex 1 steps ahead of current site in the direction south, the Vertex 1 steps ahead of current site in the direction west, the Vertex 1 steps ahead of current site in the direction east], Player at the Vertex 1 steps ahead of current site in the direction north is the mover, Player at the Vertex 1 steps ahead of current site in the direction south is the mover, Player at the Vertex 1 steps ahead of current site in the direction west is the mover and Player at the Vertex 1 steps ahead of current site in the direction east is the mover or the to location of the last move is in sites [ the Vertex 1 steps ahead of current site in the direction ne, the Vertex 1 steps ahead of current site in the direction se, the Vertex 1 steps ahead of current site in the direction sw, the Vertex 1 steps ahead of current site in the direction nw], Player at the Vertex 1 steps ahead of current site in the direction ne is the mover, Player at the Vertex 1 steps ahead of current site in the direction se is the mover, Player at the Vertex 1 steps ahead of current site in the direction sw is the mover and Player at the Vertex 1 steps ahead of current site in the direction nw is the mover the number of sites within 1 spaces of the to location of the last move includeOrigin: false and move again.
Players take turns moving.
Rules:
From vertex in Player the moving player's hand site 0 to vertex in the centre sites of the board moveRule: true from vertex in Player the moving player's hand site 0 to vertex in the set of empty vertexs moveRule: true if in the same turn, remove pieces at sites occupied by any component owned by Next then if the value of Player the moving player is greater than 1, move again and set the value of Player the moving player to the value of Player the moving player minus 1, else set the value of Player the moving player to 0, else move one of your pieces.
Aim:
If there are no pieces owned by Player the next player, the next player loses.
"))
(useFor "Ruleset/Four-Fang (Ludii 1) (Reconstructed)" (id "3335"))
(useFor "Ruleset/Four-Fang (Ludii 2) (Reconstructed)" (rules "The game Four-Fang is played by two players on a 4x4 rectangle board with square tiling.
All players play with Markers.
Rules for Pieces:
Markers step adjacent then if the number of sites in if empty then the to location of the last move is in sites [ the Vertex 1 steps ahead of current site in the direction north, the Vertex 1 steps ahead of current site in the direction south, the Vertex 1 steps ahead of current site in the direction west, the Vertex 1 steps ahead of current site in the direction east], Player at the Vertex 1 steps ahead of current site in the direction north is the mover, Player at the Vertex 1 steps ahead of current site in the direction south is the mover, Player at the Vertex 1 steps ahead of current site in the direction west is the mover and Player at the Vertex 1 steps ahead of current site in the direction east is the mover or the to location of the last move is in sites [ the Vertex 1 steps ahead of current site in the direction ne, the Vertex 1 steps ahead of current site in the direction se, the Vertex 1 steps ahead of current site in the direction sw, the Vertex 1 steps ahead of current site in the direction nw], Player at the Vertex 1 steps ahead of current site in the direction ne is the mover, Player at the Vertex 1 steps ahead of current site in the direction se is the mover, Player at the Vertex 1 steps ahead of current site in the direction sw is the mover and Player at the Vertex 1 steps ahead of current site in the direction nw is the mover the number of sites within 1 spaces of the to location of the last move includeOrigin: false is greater than 0, set the value of Player the moving player to the number of sites in if empty then the to location of the last move is in sites [ the Vertex 1 steps ahead of current site in the direction north, the Vertex 1 steps ahead of current site in the direction south, the Vertex 1 steps ahead of current site in the direction west, the Vertex 1 steps ahead of current site in the direction east], Player at the Vertex 1 steps ahead of current site in the direction north is the mover, Player at the Vertex 1 steps ahead of current site in the direction south is the mover, Player at the Vertex 1 steps ahead of current site in the direction west is the mover and Player at the Vertex 1 steps ahead of current site in the direction east is the mover or the to location of the last move is in sites [ the Vertex 1 steps ahead of current site in the direction ne, the Vertex 1 steps ahead of current site in the direction se, the Vertex 1 steps ahead of current site in the direction sw, the Vertex 1 steps ahead of current site in the direction nw], Player at the Vertex 1 steps ahead of current site in the direction ne is the mover, Player at the Vertex 1 steps ahead of current site in the direction se is the mover, Player at the Vertex 1 steps ahead of current site in the direction sw is the mover and Player at the Vertex 1 steps ahead of current site in the direction nw is the mover the number of sites within 1 spaces of the to location of the last move includeOrigin: false and move again.
Players take turns moving.
Rules:
If in the same turn, remove pieces at not a player places 3 of their pieces in an all direction line and not the walk [F,R,F,R,F,R,F] from vertex current site goes through any sites sites occupied by any component owned by Next in Board, else from vertex in Player the moving player's hand site 0 to vertex in the set of empty vertexs moveRule: true then if a player places 3 of their pieces in an all direction line or the walk [F,R,F,R,F,R,F] from vertex the to location of the last move goes through any sites, move again if in the same turn, remove pieces at not a player places 3 of their pieces in an all direction line and not the walk [F,R,F,R,F,R,F] from vertex current site goes through any sites sites occupied by any component owned by Next in Board, else move one of your pieces.
Aim:
If there are no pieces owned by Player the next player, the next player loses.
"))
(useFor "Ruleset/Four-Fang (Ludii 2) (Reconstructed)" (id "3336"))
(useFor "Ruleset/Four-Fang (Ludii 3) (Reconstructed)" (rules "The game Four-Fang is played by two players on a 4x4 rectangle board with square tiling.
All players play with Markers.
Rules for Pieces:
Markers step adjacent then if a player places 3 of their pieces in an all direction line or the walk [F,R,F,R,F,R,F] from vertex the to location of the last move goes through any sites, move again.
Players take turns moving.
Rules:
From vertex in Player the moving player's hand site 0 to vertex in the centre sites of the board moveRule: true from vertex in Player the moving player's hand site 0 to vertex in the set of empty vertexs moveRule: true if in the same turn, remove pieces at sites occupied by any component owned by Next then if the value of Player the moving player is greater than 1, move again and set the value of Player the moving player to the value of Player the moving player minus 1, else set the value of Player the moving player to 0, else move one of your pieces.
Aim:
If there are no pieces owned by Player the next player, the next player loses.
"))
(useFor "Ruleset/Four-Fang (Ludii 3) (Reconstructed)" (id "3337"))
(useFor "Ruleset/Four-Fang (Ludii 4) (Reconstructed)" (rules "The game Four-Fang is played by two players on a 4x4 rectangle board with square tiling.
All players play with Markers.
Rules for Pieces:
Markers step adjacent then if the number of sites in if empty then the to location of the last move is in sites [ the Vertex 1 steps ahead of current site in the direction north, the Vertex 1 steps ahead of current site in the direction south, the Vertex 1 steps ahead of current site in the direction west, the Vertex 1 steps ahead of current site in the direction east], Player at the Vertex 1 steps ahead of current site in the direction north is the mover, Player at the Vertex 1 steps ahead of current site in the direction south is the mover, Player at the Vertex 1 steps ahead of current site in the direction west is the mover and Player at the Vertex 1 steps ahead of current site in the direction east is the mover or the to location of the last move is in sites [ the Vertex 1 steps ahead of current site in the direction ne, the Vertex 1 steps ahead of current site in the direction se, the Vertex 1 steps ahead of current site in the direction sw, the Vertex 1 steps ahead of current site in the direction nw], Player at the Vertex 1 steps ahead of current site in the direction ne is the mover, Player at the Vertex 1 steps ahead of current site in the direction se is the mover, Player at the Vertex 1 steps ahead of current site in the direction sw is the mover and Player at the Vertex 1 steps ahead of current site in the direction nw is the mover the number of sites within 1 spaces of the to location of the last move includeOrigin: false is greater than 0, set the value of Player the moving player to the number of sites in if empty then the to location of the last move is in sites [ the Vertex 1 steps ahead of current site in the direction north, the Vertex 1 steps ahead of current site in the direction south, the Vertex 1 steps ahead of current site in the direction west, the Vertex 1 steps ahead of current site in the direction east], Player at the Vertex 1 steps ahead of current site in the direction north is the mover, Player at the Vertex 1 steps ahead of current site in the direction south is the mover, Player at the Vertex 1 steps ahead of current site in the direction west is the mover and Player at the Vertex 1 steps ahead of current site in the direction east is the mover or the to location of the last move is in sites [ the Vertex 1 steps ahead of current site in the direction ne, the Vertex 1 steps ahead of current site in the direction se, the Vertex 1 steps ahead of current site in the direction sw, the Vertex 1 steps ahead of current site in the direction nw], Player at the Vertex 1 steps ahead of current site in the direction ne is the mover, Player at the Vertex 1 steps ahead of current site in the direction se is the mover, Player at the Vertex 1 steps ahead of current site in the direction sw is the mover and Player at the Vertex 1 steps ahead of current site in the direction nw is the mover the number of sites within 1 spaces of the to location of the last move includeOrigin: false and move again.
Players take turns moving.
Setup:
Place stack of [Marker1] at vertex Player 1's hand site 0
Place stack of [Marker2] at vertex Player 2's hand site 0.
Rules:
If in the same turn, from vertex in Player the moving player's hand site 0 to vertex in the size of the stack on vertex current site is equal to 1 sites occupied by any component owned by Next in Board moveRule: true, else if not all sites in the sites in Player the moving player's hand satisfy the condition 0 is equal to the total number of cell in current site, from vertex in Player the moving player's hand site 0 to vertex in the set of empty vertexs moveRule: true then if a player places 3 of their pieces in an adjacent direction line, move again if in the same turn, remove pieces at sites occupied by any component owned by Enemy in Board, else if the number of pieces owned by Player the moving player is greater than 3, move one of your pieces, else from vertex in sites occupied by any component owned by Mover to vertex in the set of empty vertexs moveRule: true.
"))
(useFor "Ruleset/Four-Fang (Ludii 4) (Reconstructed)" (id "3338"))
(useFor "Ruleset/Four-Fang (Ludii 5) (Reconstructed)" (rules "The game Four-Fang is played by two players on a 4x4 rectangle board with square tiling.
All players play with Markers.
Rules for Pieces:
Markers step adjacent then if a player places 3 of their pieces in an adjacent direction line, move again.
Players take turns moving.
Rules:
From vertex in Player the moving player's hand site 0 to vertex in the centre sites of the board moveRule: true from vertex in Player the moving player's hand site 0 to vertex in the set of empty vertexs moveRule: true if in the same turn, remove pieces at sites occupied by any component owned by Next then if the value of Player the moving player is greater than 1, move again and set the value of Player the moving player to the value of Player the moving player minus 1, else set the value of Player the moving player to 0, else move one of your pieces.
Aim:
If there are no pieces owned by Player the next player, the next player loses.
"))
(useFor "Ruleset/Four-Fang (Ludii 5) (Reconstructed)" (id "3339"))
(useFor "Ruleset/Four-Fang (Ludii 6) (Reconstructed)" (rules "The game Four-Fang is played by two players on a 4x4 rectangle board with square tiling.
All players play with Markers.
Rules for Pieces:
Markers step adjacent then if the number of sites in if empty then the to location of the last move is in sites [ the Vertex 1 steps ahead of current site in the direction north, the Vertex 1 steps ahead of current site in the direction south, the Vertex 1 steps ahead of current site in the direction west, the Vertex 1 steps ahead of current site in the direction east], Player at the Vertex 1 steps ahead of current site in the direction north is the mover, Player at the Vertex 1 steps ahead of current site in the direction south is the mover, Player at the Vertex 1 steps ahead of current site in the direction west is the mover and Player at the Vertex 1 steps ahead of current site in the direction east is the mover or the to location of the last move is in sites [ the Vertex 1 steps ahead of current site in the direction ne, the Vertex 1 steps ahead of current site in the direction se, the Vertex 1 steps ahead of current site in the direction sw, the Vertex 1 steps ahead of current site in the direction nw], Player at the Vertex 1 steps ahead of current site in the direction ne is the mover, Player at the Vertex 1 steps ahead of current site in the direction se is the mover, Player at the Vertex 1 steps ahead of current site in the direction sw is the mover and Player at the Vertex 1 steps ahead of current site in the direction nw is the mover the number of sites within 1 spaces of the to location of the last move includeOrigin: false is greater than 0, set the value of Player the moving player to the number of sites in if empty then the to location of the last move is in sites [ the Vertex 1 steps ahead of current site in the direction north, the Vertex 1 steps ahead of current site in the direction south, the Vertex 1 steps ahead of current site in the direction west, the Vertex 1 steps ahead of current site in the direction east], Player at the Vertex 1 steps ahead of current site in the direction north is the mover, Player at the Vertex 1 steps ahead of current site in the direction south is the mover, Player at the Vertex 1 steps ahead of current site in the direction west is the mover and Player at the Vertex 1 steps ahead of current site in the direction east is the mover or the to location of the last move is in sites [ the Vertex 1 steps ahead of current site in the direction ne, the Vertex 1 steps ahead of current site in the direction se, the Vertex 1 steps ahead of current site in the direction sw, the Vertex 1 steps ahead of current site in the direction nw], Player at the Vertex 1 steps ahead of current site in the direction ne is the mover, Player at the Vertex 1 steps ahead of current site in the direction se is the mover, Player at the Vertex 1 steps ahead of current site in the direction sw is the mover and Player at the Vertex 1 steps ahead of current site in the direction nw is the mover the number of sites within 1 spaces of the to location of the last move includeOrigin: false and move again.
Players take turns moving.
Rules:
If the number of moves is equal to 24, move one of your pieces, else from vertex in Player the moving player's hand site 0 to vertex in the difference between the set of empty vertexs and site the centre point of the board moveRule: true then if the number of moves is equal to 24 or not in the same turn, move again if in the same turn, step orthogonal then for all flanked pieces on Vertexes starting from the to location of the last move with Orthogonal direction with a limit of 1 pieces if the target is there is an enemy Player at between and the centre point of the board is not equal to between if the friend is is a friendremove pieces at between and if can move for all flanked pieces on Vertexes starting from the Vertex 1 steps ahead of the to location of the last move in the direction north with Orthogonal direction with a limit of 1 pieces if the target is there is an enemy Player at between and the centre point of the board is not equal to between if the friend is is a friendremove pieces at between, can move for all flanked pieces on Vertexes starting from the Vertex 1 steps ahead of the to location of the last move in the direction east with Orthogonal direction with a limit of 1 pieces if the target is there is an enemy Player at between and the centre point of the board is not equal to between if the friend is is a friendremove pieces at between, can move for all flanked pieces on Vertexes starting from the Vertex 1 steps ahead of the to location of the last move in the direction west with Orthogonal direction with a limit of 1 pieces if the target is there is an enemy Player at between and the centre point of the board is not equal to between if the friend is is a friendremove pieces at between or can move for all flanked pieces on Vertexes starting from the Vertex 1 steps ahead of the to location of the last move in the direction south with Orthogonal direction with a limit of 1 pieces if the target is there is an enemy Player at between and the centre point of the board is not equal to between if the friend is is a friendremove pieces at between, move again, else if the next player cannot move, set pending and move again, else move one of your pieces.
Aim:
If there are no pieces owned by Player the next player, the next player loses.
"))
(useFor "Ruleset/Four-Fang (Ludii 6) (Reconstructed)" (id "3340"))
(useFor "Ruleset/Four-Fang (Ludii 7) (Reconstructed)" (rules "The game Four-Fang is played by two players on a 4x4 rectangle board with square tiling.
All players play with Markers.
Rules for Pieces:
Markers step adjacent then if a player places 3 of their pieces in an all direction line or the walk [F,R,F,R,F,R,F] from vertex the to location of the last move goes through any sites, move again.
Players take turns moving.
Rules:
If in the same turn, remove pieces at not a player places 3 of their pieces in an all direction line and not the walk [F,R,F,R,F,R,F] from vertex current site goes through any sites sites occupied by any component owned by Next in Board, else from vertex in Player the moving player's hand site 0 to vertex in the set of empty vertexs moveRule: true then if a player places 3 of their pieces in an all direction line or the walk [F,R,F,R,F,R,F] from vertex the to location of the last move goes through any sites, move again if in the same turn, remove pieces at not a player places 3 of their pieces in an all direction line and not the walk [F,R,F,R,F,R,F] from vertex current site goes through any sites sites occupied by any component owned by Next in Board, else move one of your pieces.
Aim:
If there are no pieces owned by Player the next player, the next player loses.
"))
(useFor "Ruleset/Four-Fang (Ludii 7) (Reconstructed)" (id "3341"))
(useFor "Ruleset/Four-Fang (Ludii 8) (Reconstructed)" (rules "The game Four-Fang is played by two players on a 4x4 rectangle board with square tiling.
All players play with Markers.
Rules for Pieces:
Markers step adjacent then if a player places 3 of their pieces in an all direction line or the walk [F,R,F,R,F,R,F] from vertex the to location of the last move goes through any sites, move again.
Players take turns moving.
Setup:
Place stack of [Marker1] at vertex Player 1's hand site 0
Place stack of [Marker2] at vertex Player 2's hand site 0.
Rules:
If in the same turn, from vertex in Player the moving player's hand site 0 to vertex in the size of the stack on vertex current site is equal to 1 sites occupied by any component owned by Next in Board moveRule: true, else if not all sites in the sites in Player the moving player's hand satisfy the condition 0 is equal to the total number of cell in current site, from vertex in Player the moving player's hand site 0 to vertex in the set of empty vertexs moveRule: true then if a player places 3 of their pieces in an adjacent direction line, move again if in the same turn, remove pieces at sites occupied by any component owned by Enemy in Board, else if the number of pieces owned by Player the moving player is greater than 3, move one of your pieces, else from vertex in sites occupied by any component owned by Mover to vertex in the set of empty vertexs moveRule: true.
"))
(useFor "Ruleset/Four-Fang (Ludii 8) (Reconstructed)" (id "3342"))
(useFor "Ruleset/Four-Fang (Ludii 9) (Reconstructed)" (rules "The game Four-Fang is played by two players on a 4x4 rectangle board with square tiling.
All players play with Markers.
Rules for Pieces:
Markers step adjacent then if a player places 3 of their pieces in an adjacent direction line, move again.
Players take turns moving.
Rules:
If in the same turn, remove pieces at not a player places 3 of their pieces in an all direction line and not the walk [F,R,F,R,F,R,F] from vertex current site goes through any sites sites occupied by any component owned by Next in Board, else from vertex in Player the moving player's hand site 0 to vertex in the set of empty vertexs moveRule: true then if a player places 3 of their pieces in an all direction line or the walk [F,R,F,R,F,R,F] from vertex the to location of the last move goes through any sites, move again if in the same turn, remove pieces at not a player places 3 of their pieces in an all direction line and not the walk [F,R,F,R,F,R,F] from vertex current site goes through any sites sites occupied by any component owned by Next in Board, else move one of your pieces.
Aim:
If there are no pieces owned by Player the next player, the next player loses.
"))
(useFor "Ruleset/Four-Fang (Ludii 9) (Reconstructed)" (id "3343"))
(useFor "Ruleset/Four-Fang (Ludii 10) (Reconstructed)" (rules "The game Four-Fang is played by two players on a 4x4 rectangle board with square tiling.
All players play with Markers.
Rules for Pieces:
Markers step adjacent then if a player places 3 of their pieces in an adjacent direction line, move again.
Players take turns moving.
Setup:
Place stack of [Marker1] at vertex Player 1's hand site 0
Place stack of [Marker2] at vertex Player 2's hand site 0.
Rules:
If in the same turn, from vertex in Player the moving player's hand site 0 to vertex in the size of the stack on vertex current site is equal to 1 sites occupied by any component owned by Next in Board moveRule: true, else if not all sites in the sites in Player the moving player's hand satisfy the condition 0 is equal to the total number of cell in current site, from vertex in Player the moving player's hand site 0 to vertex in the set of empty vertexs moveRule: true then if a player places 3 of their pieces in an adjacent direction line, move again if in the same turn, remove pieces at sites occupied by any component owned by Enemy in Board, else if the number of pieces owned by Player the moving player is greater than 3, move one of your pieces, else from vertex in sites occupied by any component owned by Mover to vertex in the set of empty vertexs moveRule: true.
"))
(useFor "Ruleset/Four-Fang (Ludii 10) (Reconstructed)" (id "3344"))
(version "1.3.12")
(classification "board/war/reconstruction/done")
(credit "Eric Piette")
(origin "This game was played in China, from around 680 to 1999.")
}
)
(graphics {
(show Edges Diagonal Hidden)
})
)