Dominoes¶
A domino-divination engine with the 28-tile double-six deck plus single-tile and three-tile spreads.
Casting is RNG-driven: pass an Rng to read.
from fortune_telling_core import RandomRng, ReadingRequest
from fortune_telling_core.traditions.dominoes import DOMINOES_DECK, THREE_TILES, build_engine
request = ReadingRequest(deck_id=DOMINOES_DECK.id, spread_id=THREE_TILES.id)
reading = build_engine().read(request, rng=RandomRng(seed=42))
dominoes ¶
DOMINOES_DECK
module-attribute
¶
DOMINOES_DECK = Deck(
id="dominoes.deck.double-six.v1",
symbols=tuple(
(
Symbol(
id=tile.symbol_id,
name=tile.name,
attributes={
"high": str(tile.high),
"low": str(tile.low),
"pips": str(tile.pips),
"double": "true"
if tile.double
else "false",
},
)
)
for tile in TILES
),
)
SINGLE_TILE
module-attribute
¶
SINGLE_TILE = Spread(
id="dominoes.spread.single.v1",
name="Single Tile",
positions=(
Position(
"tile",
"Tile",
"The drawn tile answering the question.",
),
),
)
THREE_TILES
module-attribute
¶
THREE_TILES = Spread(
id="dominoes.spread.three.v1",
name="Three Tiles",
positions=(
Position(
"past", "Past", "The relevant background."
),
Position(
"present", "Present", "The current influence."
),
Position(
"future", "Future", "The likely direction."
),
),
)
DominoesEngine ¶
Bases: AbstractEngine
Domino divination engine.
The engine shuffles the 28-tile double-six set and draws into a single-tile or three-tile spread. Tiles carry no orientation.
deck ¶
Return the domino deck for a request.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
request
|
ReadingRequest
|
Reading request whose |
required |
Returns:
| Type | Description |
|---|---|
Deck
|
The bundled domino deck. |
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the request names an unsupported deck. |
Source code in src/fortune_telling_core/traditions/dominoes/engine.py
spread ¶
Return the domino spread requested by id.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
request
|
ReadingRequest
|
Reading request whose |
required |
Returns:
| Type | Description |
|---|---|
Spread
|
|
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the spread is not supported. |
Source code in src/fortune_telling_core/traditions/dominoes/engine.py
draw ¶
Draw tiles for the requested spread.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
request
|
ReadingRequest
|
Reading request. |
required |
rng
|
Rng
|
Random source used to shuffle the set. |
required |
Returns:
| Type | Description |
|---|---|
Draw
|
A draw containing one selection per spread position. |
Raises:
| Type | Description |
|---|---|
ValidationError
|
If the requested deck or spread is unsupported. |
ExhaustedRngError
|
If the supplied RNG cannot provide enough values. |
Source code in src/fortune_telling_core/traditions/dominoes/engine.py
build_engine ¶
Create a domino divination engine.
Returns:
| Type | Description |
|---|---|
DominoesEngine
|
A new |