Spaces:
Sleeping
Sleeping
| """ | |
| Data models for the 2048 Game Environment. | |
| Actions: 0=up, 1=down, 2=left, 3=right | |
| """ | |
| from typing import List, Optional | |
| from pydantic import Field | |
| # Support both in-repo and standalone imports | |
| try: | |
| from openenv.core.env_server.types import Action, Observation, State | |
| except ImportError: | |
| from openenv_core.env_server.types import Action, Observation, State | |
| class Game2048Action(Action): | |
| """Action for the 2048 environment. 0=up, 1=down, 2=left, 3=right.""" | |
| action: int = Field(ge=0, le=3, description="Direction: 0=up, 1=down, 2=left, 3=right") | |
| class Game2048Observation(Observation): | |
| """Observation from the 2048 environment.""" | |
| board: List[List[int]] = Field(default_factory=list, description="4x4 game board") | |
| score: int = Field(default=0, description="Current total score") | |
| legal_actions: List[int] = Field(default_factory=list, description="Valid action indices") | |
| max_tile: int = Field(default=0, description="Highest tile value on the board") | |
| board_text: str = Field(default="", description="Text rendering of the board") | |
| class Game2048State(State): | |
| """State for the 2048 environment.""" | |
| episode_id: Optional[str] = None | |
| step_count: int = 0 | |
| done: bool = False | |
| won: bool = False | |
| score: int = 0 | |
| max_tile: int = 0 | |