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

reset()Optional[dict]

Reset method.

Resets the game state.

Returns

roll()Optional[dict]

Roll dice.

Rolls dice for current player.

Returns

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.

bank: int = 0

Active player’s bank.

dn: int

Dice sidedness (Think D&D, d6, d8, d20, etc.).

num_dice: int

Number of dice.

players: int

Number of players.

rolls: int = 0

Number of time’s active player has rolled.

score: Dict[int, int]

Current game score.

target: int

Target score for the game.

turn: int = 0

Active player (who’s turn is it).

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.