GAME¶
Piglr Game module.
- class piglr.game.Game(players: int = 2, num_dice: int = 1, dn: int = 6, target: int = 100)¶
Bases:
object
Game class used to interact with a the pig environment.
Example usage:
>>> import json >>> import random >>> import piglr >>> game = piglr.Game() >>> obs, winner = game.reset() >>> while winner is None: >>> roll = random.randint(0, 1) >>> if roll: >>> obs, winner = game.roll() >>> else: >>> obs, winner = game.bank() >>> print(json.dumps(obs, indent=4)) >>> print(f'Winner: {winner}')
Game init method.
- Parameters
players – Number of players. (Legal range 2-inf)
num_dice – Number of dice. (Legal range 1-inf)
dn – Dice sidedness (Think D&D, d6, d8, d20, etc.). (Legal range 1-inf)
target – Target score for the game. (Legal range 1-inf)
- Raises
TypeError – TypeError is raised whenever one of the passed parameters is not of type int.
piglr.error.IllegalParameterError – is raised whenever a parameter is passed an illegal value. For legal values see args section of init method.
- bank() → Optional[Union[dict, int]]¶
Scores bank.
Scores bank for current player.
- Returns
State property
piglr.game.Game.state
.
- reset() → Optional[dict]¶
Reset method.
Resets the game state.
- Returns
State property
piglr.game.Game.state
.None
.
- roll() → Optional[dict]¶
Roll dice.
Rolls dice for current player.
- Returns
State property
piglr.game.Game.state
.None
.
- property state: dict¶
State property.
- Returns
Instance of
piglr.state.State
converted to a dictionary.
STATE¶
Piglr gamestate module.
- class piglr.state.State(players: int, num_dice: int, dn: int, score: Dict[int, int], target: int, turn: int = 0, rolls: int = 0, bank: int = 0)¶
Bases:
object
Piglr state dataclass.
- piglr.state.as_dict(state: piglr.state.State) → dict¶
See
dataclasses.asdict()
.
ERROR¶
Piglr error module.
- exception piglr.error.IllegalParameterError¶
Bases:
Exception
This error is thrown when an illegal parameter is passed to
piglr.game.Game
.