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:
1 parent
f2d6bc0dfc
commit
76a8fa011a
2 files changed
+44
-2
No files matched your search
@@ -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.
|
||||||
@@ -29,14 +29,14 @@
|
|||||||
|
|
||||||
<section id="hall">
|
<section id="hall">
|
||||||
<h2>The hall</h2>
|
<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>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>
|
<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>
|
||||||
|
|
||||||
<section id="table">
|
<section id="table">
|
||||||
<h2>The table</h2>
|
<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>
|
<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>
|
</section>
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user