Engine¶
patiencepilot.engine ¶
Pure engine functions for Solitaire game state transitions.
new_game ¶
new_game(
variant: Variant | str | None = None,
seed: Seed = None,
options: VariantOptions | None = None,
) -> GameState
Return a new game state.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
variant
|
Variant | str | None
|
Rule set or registered variant name to use. Defaults to Klondike draw-one with unlimited redeals. |
None
|
seed
|
Seed
|
Optional deterministic random seed. |
None
|
options
|
VariantOptions | None
|
Variant options when |
None
|
Source code in src/patiencepilot/engine.py
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | |
validate_state ¶
validate_state(
state: GameState, variant: Variant | str | None = None
) -> None
Validate that state is coherent for its variant.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
state
|
GameState
|
State to validate. |
required |
variant
|
Variant | str | None
|
Optional explicit rule set or registered variant name. When omitted, rules are resolved from state metadata. |
None
|
Source code in src/patiencepilot/engine.py
29 30 31 32 33 34 35 36 37 | |
legal_moves ¶
legal_moves(
state: GameState, variant: Variant | str | None = None
) -> tuple[Move, ...]
Return legal moves available from state.
Source code in src/patiencepilot/engine.py
40 41 42 | |
apply_move ¶
apply_move(
state: GameState,
move: Move,
variant: Variant | str | None = None,
) -> MoveResult
Apply move to state and return the resulting state and effects.
Source code in src/patiencepilot/engine.py
45 46 47 | |
is_won ¶
is_won(
state: GameState, variant: Variant | str | None = None
) -> bool
Return whether state is won.
Source code in src/patiencepilot/engine.py
50 51 52 | |