hundredandten-automation-engineadapter
Bridge between the Hundred and Ten game engine and automation strategies.
This is the only package that depends on both hundredandten-engine and hundredandten-state. It translates engine Game objects into player-agnostic GameState observations that strategies can act on, and converts strategy-layer AvailableAction results back into engine Action objects.
Usage
The most common usage is action_for, which handles the full loop: build state, call a strategy, validate the result, return an engine action.
from hundredandten.automation.engineadapter import EngineAdapter
from hundredandten.automation import naive
from hundredandten.engine import Game, Player
game = Game(players=[Player('player_1'), Player('player_2')])
engine_action = EngineAdapter.action_for(game, 'player_2', naive.action_for)
game.act(engine_action)
Exports
EngineAdapter
All methods are static.
| Method | Signature | Description |
|---|---|---|
action_for |
(game, identifier, decision_fn) -> Action |
Full-loop helper. Builds a GameState for the identified player, calls decision_fn(state), validates that the result is a legal action, and returns the corresponding engine Action. Raises UnavailableActionError if the decision function returns an illegal action. |
state_from_engine |
(game, identifier) -> GameState |
Builds a player-agnostic GameState observation for the identified player. All seats are rotated so the requesting player is seat 0. Cards the player cannot see are marked Unknown. |
available_action_for_player |
(action, identifier) -> Action |
Converts a player-agnostic AvailableAction into a player-aware engine Action by attaching the player identifier. |
available_action_from_engine |
(action) -> AvailableAction |
Converts a player-aware engine Action into a player-agnostic AvailableAction. |
UnavailableActionError
Raised by action_for when the decision function returns an action not present in state.available_actions.
Building state without a strategy
from hundredandten.automation.engineadapter import EngineAdapter
state = EngineAdapter.state_from_engine(game, 'player_1')
print(state.available_actions)
Metadata
Release files for hundredandten-automation-engineadapter 0.0.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| hundredandten_automation_engineadapter-0.0.7-py3-none-any.whl | Python 3 | none | any | Details |
Release files / hundredandten_automation_engineadapter-0.0.7-py3-none-any.whl
| Download URL | hundredandten_automation_engineadapter-0.0.7-py3-none-any.whl |
|---|---|
| Size | 4.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7695225b474d541bc5f4bda6f7c8c6b05f57e92fcb9341f302ddc3d7dd46b7df
|
|
BLAKE2b-256 checksum How to use checksums |
dba64391f4009c74527e553631bc69ef8ff099fe287550cfed87cc31121b0471
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|