Files
eisterman 84673c573d Add the Italian playtest edition (7.2.0, D53)
RULES.it.md translates RULES.md v0.9. edition/build.py renders a
printable A4 HTML (edition/it/playtest.html): quick reference, rules,
belt track, board overview and four board tiles drawn from the board
model (Tunnel pairs numbered, Dojo entrances marked), and the 22 Nebbia
cards. Adds markdown as a dev dependency.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-27 19:06:09 +02:00

3.1 KiB
Raw Permalink Blame History

Il Labirinto del Dojo

A small tabletop game (1–2 h, 3–8 players, best at 4), plus the tooling used to design and balance it.

Document What it is
RULES.md The rulebook (English working draft).
RULES.it.md Italian rulebook (playtest edition).
board/FORMAT.md How the board is written as text.
agents/plans/ Active work plan: decisions, phases, open questions.

Setup

Requires uv. It installs the pinned Python and all tools:

uv sync

Board

The board is authored as one 8x8 quadrant in board/quadrant.txt (tunnel links in board/legend.toml) and rotated into the full 16x16 board.

uv run dojo board validate                    # check the board against the rules, print stats
uv run dojo board render                      # print the full 16x16 board
uv run dojo board render -o board/board.txt   # regenerate the full board file (never edit it by hand)
uv run dojo board validate --quadrant other.txt --legend other.toml   # check another draft

validate exits with 0 when the board is fine (warnings allowed), 1 on rule violations, 2 when the file is malformed or missing.

Simulation

Plays many seeded games with bots and prints metrics per scenario. Every combination of the listed values is a scenario; game i of each scenario uses seed --seed + i, and the lineup rotates one seat per game. Bots: random, casual, balanced, farmer, aggressive (casual is balanced comparing only 6 random moves of those offered, like a person).

uv run dojo sim                                   # 4 players, current rules, 200 games
uv run dojo sim --games 1000 --csv games.csv      # more games; one CSV row per game
uv run dojo sim --lineup casual balanced --summary-csv s.csv # one CSV row per scenario
uv run dojo sim --exam c none a ac                # Final Exam options in force (rules: c), combinable
uv run dojo sim --players 3 4 6 8 --start 0 3     # player counts x start position
uv run dojo sim --kiai 2 1                        # Kiai +2 vs +1
uv run dojo sim --exam-loss 3 1 0                 # stripes a failed Exam challenger loses (rules: 3)
uv run dojo sim --lineup farmer aggressive,farmer # several lineups (comma-separated seats)
uv run dojo sim --seed 42 --jobs 1                # other dice; single process

Minutes are estimated as 45 s per turn plus 30 s per Kumite.

Italian playtest edition

edition/build.py builds edition/it/playtest.html: quick reference, full rules, belt track, the board (one A4 overview and four A4 tiles to cut and join), and the 22 Nebbia cards to cut out. Open it in a browser and print on A4 at 100% scale (no "fit to page"), with background graphics on.

uv run python edition/build.py

Sources: RULES.it.md, edition/it/riepilogo.md (quick reference), edition/it/carte.toml (card texts), edition/it/style.css, and the board files. Never edit the HTML by hand.

Development

uv run pytest               # tests
uv run ruff check .         # lint
uv run ruff format .        # format
uvx pyright src tests       # type check