← ClaudeAtlas

custom-chess-engine-mechanic-builderlisted

Wraps python-chess inside a SkillChessBoard that adds turn tracking, per-skill cooldown ticks, a Teleport mechanic and a Freeze Square mechanic with expiry timers, plus rotate_view_180 coordinate mapping, a pygame-free ASCII renderer and an optional pygame renderer, all driven by a runnable demo.
RMAzrim/opencode-artes · ★ 2 · AI & Automation · score 76
Install: claude install-skill RMAzrim/opencode-artes
# Custom Chess Engine Mechanic Builder ## 1. System Architecture & Prerequisites This skill builds a variant chess engine on top of `python-chess` while keeping the logic layer completely pygame-free. The architecture splits into four parts: - **`SkillChessBoard`** - a wrapped `chess.Board`. It mirrors the standard rule engine (`push_uci`, `legal_moves`, `is_game_over`) and adds `turn_player` bookkeeping, a JSON-serialisable `cooldowns` dictionary, and a `log` of `MoveEntry` records so gameplay can be replayed/reported. - **Skill mechanics** - `apply_teleport(sq_from, sq_to)` relocates a friendly piece instantly (legal moves route through `board.push_uci`; impossible movements use a variant fallback with manual turn advance) and `apply_freeze(sq)` marks a square frozen. A frozen square's occupant is skipped by `legal_moves()` until its expiry ticks run out. - **Cooldown scheduler** - `cooldown_ticks` defines honest cooldowns per skill; `can_cast(skill)` gates casting, `tick_cooldowns()` decays both skill cooldowns and freeze expiries as the turn clock advances. - **View layer** - `rotate_view_180(board_ui)` maps file/rank indices for a 180-degree board rotation, `render_ascii()` is a pure-text renderer that works without any GUI library, and `render()` draws the same state on a pygame surface guarded by an `ImportError` fallback. Prerequisites: | Dependency | Required? | Install | | ----------------- | ---