games.dominoes.models¶
Comprehensive data models for the Dominoes tile game.
This module defines the complete set of data structures for traditional Dominoes gameplay, providing models for tile representation, game moves, strategic analysis, and game state management. The implementation supports standard double-six dominoes with traditional matching rules.
Dominoes is a classic tile-matching game involving: - 28 tiles in a double-six set (0-0 through 6-6) - Line-building with matching endpoints - Strategic tile placement and blocking - Point-based scoring systems
- Key Models:
DominoTile: Individual domino tile with two values DominoMove: Player’s tile placement action DominoLinePosition: Position tracking on the domino line DominoAnalysis: Strategic evaluation for AI decision-making
Examples
Working with tiles:
from haive.games.dominoes.models import DominoTile
# Create standard tiles
double_six = DominoTile(left=6, right=6)
mixed_tile = DominoTile(left=3, right=5)
# Check tile properties
assert double_six.is_double() == True
assert mixed_tile.sum() == 8
print(double_six) # "[6|6]"
Making moves:
from haive.games.dominoes.models import DominoMove
move = DominoMove(
tile=DominoTile(left=4, right=2),
position="left",
player="player1"
)
Strategic analysis:
analysis = DominoAnalysis(
available_moves=5,
blocking_potential=3,
point_value=12,
strategy="Control high-value tiles"
)
The models provide comprehensive tile management and strategic gameplay support for AI-driven dominoes implementation.
Classes¶
A move in dominoes. |
|
A domino tile with two values. |
|
Analysis of a dominoes position. |
|
A player's decision in dominoes. |
Module Contents¶
- class games.dominoes.models.DominoMove(/, **data)¶
Bases:
pydantic.BaseModel
A move in dominoes.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
- Parameters:
data (Any)
- class games.dominoes.models.DominoTile(/, **data)¶
Bases:
pydantic.BaseModel
A domino tile with two values.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
- Parameters:
data (Any)
- reversed()¶
Get a new tile with left and right values swapped.
- Return type:
- class games.dominoes.models.DominoesAnalysis(/, **data)¶
Bases:
pydantic.BaseModel
Analysis of a dominoes position.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
- Parameters:
data (Any)
- class games.dominoes.models.DominoesPlayerDecision(/, **data)¶
Bases:
pydantic.BaseModel
A player’s decision in dominoes.
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
- Parameters:
data (Any)