A README for Wyrm, and the guide's figures described without a colon

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CCLa2PaEeCj8njQZSWGqHx
This commit is contained in:
Eric WagonerandClaude Fable 5.1 committed 2026-10-26 16:42:41 -04:00
1 parent f2d6bc0dfc
commit 76a8fa011a
2 files changed
+44 -2

No files matched your search

+42
View File
@@ -0,0 +1,42 @@
# Wyrm
Gary Gygax's Dragonchess, from Dragon Magazine No. 100 (August 1985), for
the browser: three boards of twelve by eight, Gold against Scarlet, 42
pieces a side, checkmate to win. Built from the game kit, so the hall, the
tables, the Peanut Gallery, the ledgers and the ops tools are the kit's;
`docs/conventions.md` is the house style they follow.
## What is where
docs/source.md the article, transcribed, and the readings the engine takes where it is unclear
src/lib/game/board.ts the three boards and how every piece moves, on a bare array of cells
src/lib/game/index.ts the game around them: seats, turns, check and the ends, the GameSpec
src/lib/game/bot.ts the drake, the house player: alpha-beta over a fixed budget of nodes
src/lib/game/index.test.ts every example move Gygax gives, the ends, and the drake
src/lib/source.ts reads docs/source.md for the rules page, so the page and the engine share one text
src/lib/components/BoardArtwork.svelte the boards drawn, shared by the table, the hall and the share card
src/lib/components/Board.svelte the table: moving, the record, the talk
docs/og-card.html, docs/icon.html the share card and the icon; screenshot them with the site running
## Where it differs from the kit
- The house player is **a drake** wherever the kit says "a bot", and its
names are the dragons of old stories.
- Board 3 is the air, 2 the land and 1 the underworld, following the
piece descriptions and not the one paragraph that says otherwise. The
other readings are listed under "Decisions" in `docs/source.md` and on
the rules page.
- The drake's search is bounded by a count of nodes, not a clock, so the
same position always gives the same move and a ledger replays without
asking it again.
- The guide's figures are screenshots in `static/guide/`, taken from the
running site at 960 pixels wide.
## Running it
npm run dev:all # the server on 8791 and the site on 5173
npm test # the engine and the server
deploy/deploy.sh 159.203.115.252
The name is this site's. Dragonchess was Gygax's and TSR's, and a Canadian
company holds a registered mark on "Dragon Chess" for an unrelated game.
+2 -2
View File
@@ -29,14 +29,14 @@
<section id="hall">
<h2>The hall</h2>
<figure><img src="/guide/hall.png" alt="The hall: a name field, the two table choices, the button to play the drake, and the opening position drawn beside them" loading="lazy" /></figure>
<figure><img src="/guide/hall.png" alt="The hall, with a name field, the two table choices, the button to play the drake, and the opening position drawn beside them" loading="lazy" /></figure>
<p>Write your name and choose your company. <strong>Play now against a drake</strong> seats you across from the house player and begins at once. <strong>Open a table</strong> lays a table and hands you a link and a four-letter code to send to a friend. <strong>Join one</strong> takes a code someone sent you.</p>
<p>Two choices sit above the buttons. <em>You play</em> picks your side, and Gold moves first. <em>The Sylphs</em> picks where the six Sylphs start. As Gygax printed it, Gold's Dragon can take an undefended Sylph on the very first move, which a reader of the Chess Variant Pages took for a misprint. The shifted setup moves the Sylphs one file over, out of reach. Beneath the buttons, <em>your games</em> lists every table this browser holds a seat at and whose move it is.</p>
</section>
<section id="table">
<h2>The table</h2>
<figure><img src="/guide/table.png" alt="A table laid: the room code, the link to send, two seats, and the Begin button" loading="lazy" /></figure>
<figure><img src="/guide/table.png" alt="A table laid, with the room code, the link to send, two seats, and the Begin button" loading="lazy" /></figure>
<p>A table seats two. Whoever laid it is the host. The host may seat a drake in the empty chair or send one away, and begins the game when the company is right. Once begun, the seats are closed, and anyone else who opens the link watches from the Peanut Gallery.</p>
</section>