Coins
This game is a classical 2 players game called Roman Coins.
By turns, each player takes between A and B coins from a pile of N coins.
The player that can no longer take a coins loses.
This is a 0 sum game with perfect information.
Goal
The goal of this game is to be the last player to take a coin.
Score
The player that takes the last coin: -
0The player that cannot take a coin: -
1
Import
from IArena.games.Coins import CoinsPosition
from IArena.games.Coins import CoinsMovement
from IArena.games.Coins import CoinsRules
Movement
A movement is represented by an int representing the number of coins to take:
n-int-A <= tower_source < min(B, number of coins remaining)- Number of coins to remove
movement = CoinsMovement(n=2) # Remove 2 coins from the stack
Position
A position is represented by an int describing the size of the remaining stack.
# position : CoinsPosition
len(position) # Size of the stack
position.n # Same as len
Rules
It counts with 2 methods to get the minimum and maximum number of coins that can be taken:
rules.min_play() -> intrules.max_play() -> int
Constructor
Can receive 3 arguments:
initial_position-int-0 <= initial_position- Initial size of the stack - Default:15min_play-int-1 <= min_play- Minimum number of coins that can be taken in a turn - Default:1max_play-int-min_play <= max_play- Maximum number of coins that can be taken in a turn - Default:3
# Stack of 15 coins with min_play=1 and max_play=3
rules = coinsRules()
# Stack of 20 coins with min_play=2 and max_play=5
rules = coinsRules(
initial_position=20,
min_play=2,
max_play=5)