К основному содержанию
скилл CX Codex

puzzle — скилл для Claude Code: что делает и как установить

Плейбук для грид-головоломок: модель доски, разрешение ходов, каскады, счёт и отмена. Пригодится, когда игра держится на планировании хода.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add gamedev-skills/awesome-gamedev-agent-skills --skill puzzle -a claude-code
Открыть на GitHub

Что делает puzzle

Скилл разбирает сборку грид-головоломки: модель доски, ввод хода, разрешение правил (совпадения, толчки, логика фишек), счёт, отмену и прогрессию уровней. Автор называет его композиционным — он задаёт цикл разрешения хода и правила корректности, а рисование сетки оставляет на godot-tilemap или unity-tilemap-2d.

Внутри перечислены системы, без которых головоломка разваливается: доска как единственный источник правды, проверка легальности хода до применения, каскады до стабильного состояния, цели и лимиты ходов. Псевдокодовые паттерны показывают поиск совпадений, цикл resolve → collapse → refill и снимок состояния для undo. Отдельный раздел собирает типовые поломки.

Ломается всё чаще всего на генерации. Доска пятнашек из случайного шаффла нерешаема в половине случаев, а match-3 без детекта тупиков зависает без ходов. Поэтому в скилле требуют проверять решаемость уровней и сидить RNG подкачки: без этого отмена возвращает другие фишки, и игрок учится перекатывать ход.

Какие задачи решает

  • собрать модель доски отдельно от отрисовки
  • докрутить каскады, чтобы цепочки не терялись
  • сделать отмену хода, которая возвращает и счёт, и состояние RNG
  • поймать тупик в match-3 и раздать доску заново
  • проверить, что сгенерированные уровни решаемы

Примеры запросов агенту

  • Собери match-3: модель доски отдельно от рендера, каскады до стабильного состояния, отмена хода со снимком состояния и seeded RNG для подкачки.
  • Добавь в сокобан отмену последнего хода с откатом счёта и счётчика ходов.
  • Проверь мой генератор уровней: доски точно решаемы или может выпасть тупик?

Как установить puzzle

1Через Skills CLI (Vercel)

npx skills add gamedev-skills/awesome-gamedev-agent-skills --skill puzzle -a claude-code

2Вручную: положить файлы

~/.claude/skills/puzzle/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/puzzle/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о puzzle

Как установить puzzle в Claude Code?

Выполните npx skills add gamedev-skills/awesome-gamedev-agent-skills --skill puzzle -a claude-code. Файл скилла появится по пути ~/.claude/skills/puzzle/SKILL.md.

Что делает скилл puzzle?

Описывает, как устроить доску, ввод хода, разрешение правил, счёт и отмену для match-3, сокобана или логической сетки. Даёт псевдокод паттернов и список мест, где такие игры обычно ломаются.

Для каких игр он не подходит?

Для реалтайм-экшена по сетке с перманентной смертью, для карточных зон с ходами и для платформера с физикой. Под такие задачи в наборе есть другие скиллы.

Исходный текст

SKILL.md · Apache-2.0
---
name: puzzle
description: >
  Build a puzzle game: grid/board state, move input, rule-based resolution (match-3 cascades, sokoban
  pushes, tile logic), scoring, and undo. Use for a match-3, sokoban, or grid-logic puzzle.
---

# Puzzle

A playbook for grid/board puzzle games — the board model, move input, rule resolution
(matching, pushing, logic), scoring, undo, and level progression. This is a **compositional**
skill: it models board state and rules and presents them through a tilemap/UI. It does not
re-teach tilemaps; it defines the resolution loop and the correctness rules (clean state,
deterministic resolution, undo) that keep a puzzle fair and bug-free.

## When to use

- Use when the game is a **discrete board** the player changes with moves, and the board
  **resolves by rules**: match-3/tile-matching, sokoban/block-pusher, sliding puzzle, logic grid.
- Use when designing match/cascade resolution, undo, level progression, or solvability.

**When *not* to use:** real-time grid action with permadeath → `roguelike`. Card zones/turns →
`card-game`. Physics-based "puzzle platformer" → `platformer` + `physics-tuning`. For the tile
rendering, use `godot-tilemap` / `unity-tilemap-2d`.

## Core loop

**Read the board → plan a move → make the move → the board resolves by its rules (match, push,
fall, fill, cascade) → see progress toward the objective → repeat until solved/failed.** The
fun is the *planning*; the engine's job is to resolve each move **deterministically** and
present it clearly.

## Must-have systems

1. **Board model** — a grid of cells holding pieces; the single source of truth (logic, not visuals).
2. **Move input** — swap, push, drag, rotate, or place; validate legality before applying.
3. **Rule resolution** — detect and apply the genre's rule (matches, pushes, logic) until stable.
4. **Cascades/chains** — when resolution changes the board, re-resolve until no more changes.
5. **Objectives + scoring** — win/lose conditions (score, clear all, reach goal); move/time limits.
6. **Undo** — revert the last move (and its resolution) exactly; essential for thinky puzzles.
7. **Level progression + (often) generation** — hand-authored or generated **solvable** boards.
8. **Feedback ("juice")** — clear, satisfying animation/sound for matches, falls, and chains.

## Design knobs

| Knob | Effect | Notes |
|------|--------|-------|
| Grid size / shape | complexity | Square is standard; hex/irregular change feel. |
| Match/push rule | genre identity | 3-in-a-row, shapes, push-into-goal, etc. |
| Cascade scoring | reward depth | Bigger chains = exponential payoff. |
| Move / time limit | pressure | Move-limited = puzzly; time = arcade. |
| Difficulty curve | learning | Introduce one mechanic at a time. |
| Undo depth | forgiveness | Single-step vs. full history. |
| Solvability guarantee | fairness | Generated boards must be solvable. |
| Deadlock handling | no dead ends | Detect no-moves; shuffle or end (refs). |

## Patterns

### 1. Board model + match detection (logic separate from visuals)

```python
# Pseudocode. The board is the truth; rendering reads from it. (0,0) top-left, y grows down.
board = [[piece_or_empty for _ in range(W)] for _ in range(H)]

def find_matches(board):
    matched = set()
    for y in range(H):                       # horizontal runs of >= 3 equal pieces
        run = 1
        for x in range(1, W):
            if board[y][x] and board[y][x] == board[y][x-1]: run += 1
            else:
                if run >= 3: matched |= {(y, k) for k in range(x-run, x)}
                run = 1
        if run >= 3: matched |= {(y, k) for k in range(W-run, W)}
    # ... repeat the same scan vertically (columns) ...
    return matched
```

### 2. Resolve → collapse → refill → cascade (repeat to stability)

```python
# Pseudocode. One player move can trigger a chain; loop until the board stops changing.
def resolve(board):
    chain = 0
    while True:
        matches = find_matches(board)
        if not matches: break                 # stable: resolution complete
        chain += 1
        score += score_for(matches, chain)    # later chain steps score more (see refs)
        clear(board, matches)                  # remove matched pieces
        apply_gravity(board)                   # pieces fall into the gaps
        refill(board, rng)                      # spawn new pieces at the top (seeded RNG)
    return chain
```

### 3. Undo via state snapshot or command

```python
# Pseudocode. Snapshot before each move; undo restores it exactly (board + score + counters + RNG).
def make_move(move):
    history.append(snapshot(board, score, moves_left, rng.state))   # push BEFORE applying
    apply(move); resolve(board); moves_left -= 1

def undo():
    if history:
        board, score, moves_left, rng.state = history.pop()   # exact revert, including refills
```

For large boards prefer the **command** pattern (store the move + enough to invert it) over full
snapshots to save memory; snapshots are simplest and fine for small boards.

## Pitfalls / failure modes

- **Mixing logic and visuals** → animations desync from state and cause bugs. The board model is
  the single source of truth; the view only renders it.
- **Resolving only once** → cascades/chains are missed. Loop resolution until the board is stable
  (Pattern 2).
- **Undo that doesn't restore everything** → score/move-count/random-state drift. Snapshot *all*
  state, or make the move fully invertible. If undo skips the RNG state, redoing the same move
  refills different pieces and players learn to "reroll" by undoing.
- **Unseeded refill RNG** → can't reproduce a level / no deterministic undo or daily puzzle. Seed it.
- **Generated boards that aren't solvable** → unfair dead ends. Generate-and-verify, or generate
  from a known solution backward (refs). A sliding-tile puzzle filled by a random shuffle is
  unsolvable half the time; check the parity rule in refs §7.
- **No deadlock detection** (match-3) → board with no valid moves softlocks. Detect "no moves"
  and shuffle or end the level (refs).
- **Difficulty spikes** → too many mechanics at once. Teach one mechanic per level before combining.
- **Resolution mid-animation accepts input** → double-moves/corruption. Lock input until the
  board is stable.

## Composition (build it from these skills)

- **Board rendering:** `godot-tilemap` / `unity-tilemap-2d` for the grid; `godot-ui-control` for HUD, score, and menus.
- **Levels:** `level-design` for hand-authored puzzles and difficulty pacing; `procedural-gen` for solvable generated boards.
- **Persistence:** `save-systems` for level progress, high scores, and seeded daily puzzles.
- **Juice:** `game-feel` for match/cascade pop, screen shake, and chain feedback; the engine animation/`Tween` skill for swaps/falls/clears; `audio-design` for match and chain cues.
- **Scripting:** `godot-gdscript` / `unity-csharp-scripting` for the resolution loop and rules.

## References

- For match-3 detection/gravity/refill/cascade detail, deadlock detection and reshuffles,
  sokoban/rule-based puzzles, undo strategies, solvable generation, and scoring, read
  `references/board-and-resolution.md`.

© gamedev-skills · Apache-2.0 · gamedev-skills/awesome-gamedev-agent-skills

Похожие скиллы

Всё по теме «Геймдев и 3D: Unity, Unreal, Godot, Blender» →
godot-genre-puzzle thedivergentai Набор правил для создания головоломок на Godot. Помогает настроить целочисленную сетку, отмену ходов через UndoRedo и проверку софт-локов без просадки кадров. CX Codex +1 300установок msw-scripting MSW-Git Скилл помогает писать скрипты .mlua для MapleStory Worlds, соблюдая архитектуру компонентов и пространств выполнения. Пригодится при разработке игровой логики и отладке в MSW. CX Codex +1 9 900установок msw-general MSW-Git Базовый скилл для разработки в MapleStory Worlds: общие инструменты, правила платформы и шаблоны моделей. Остальные скиллы MSW на него опираются. CX Codex +1 9 900установок unity-package-management Unity-Technologies Управляет пакетами UPM из терминала через команды Pipeline или запасной C#-скрипт. Пригодится при настройке зависимостей Unity без открытия графического окна. CX Codex +1 7 300установок pixijs pixijs Маршрутизирует задачи по PixiJS v8 к специализированным инструкциям рендеринга и сцены. CX Codex +1 6 900установок new-unity-project Unity-Technologies Пошагово проводит через запуск проекта Unity от концепта и выбора платформ до настройки URP и пакетов. Пригодится на старте новой игры. CX Codex +1 6 400установок

Из того же набора77

godot-3d-essentials Скилл для быстрой сборки 3D-сцен в Godot 4.7: размещение камер, источников света, окружения и материалов. Пригодится, если вы строите 3D-уровни или настраиваете освещение и постобработку. CX Codex +1 6 200установок godot-export Скилл настраивает экспорт проектов Godot 4.7 под десктоп и Web. Помогает подготовить сборку для CI в headless-режиме и избежать ошибок с путями. CX Codex +1 6 200установок godot-audio Настраивает воспроизведение, микширование и синхронизацию звука в Godot 4.7. Пригодится для музыки, SFX, аудиошин и ритмических событий. CX Codex +1 6 200установок platformer Помогает спроектировать механику 2D-платформера: настроить тайминги прыжка, буфер ввода, coyote time и поведение платформ. CX Codex +1 6 000установок card-game Скилл-плейбук для карточных игр: описывает карты как данные, разводит колоду и сброс по зонам, задаёт фазы хода и порядок разрешения эффектов. CX Codex +1 6 100установок godot-tilemap Помогает собирать 2D-уровни в Godot 4.7 через TileMapLayer, настраивать коллизии и террейны, а также менять тайлы из GDScript. Пригодится при переходе со старого узла TileMap. CX Codex +1 6 100установок fps-shooter Помогает спроектировать шутер от первого лица: управление, стрельбу, оружие, здоровье и ИИ противников. Нужен при настройке ощущения прицеливания, отдачи и разброса. CX Codex +1 6 100установок roblox-luau Скилл помогает писать Luau-скрипты для Roblox: работать с сервисами, создавать Instances, подключать события и настраивать безопасное взаимодействие между клиентом и сервером через RemoteEvents. CX Codex +1 6 100установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой