An editing pass over every word a player reads, and two false claims of only put right: the Unicorn is not the land's one leaper, nor the Paladin its one vaulter

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 19:24:50 -04:00
1 parent 965a28142c
commit b05fe77395
8 files changed
+56 -56

No files matched your search

+8 -8
View File
@@ -635,9 +635,9 @@ Good luck, and may all your moves be ones that Rexfelis would envy. . . .
## Decisions
Where the text contradicts itself, leaves a case open, or needs a rule
chess players take for granted, the engine does the following. Each is a
reading of the text above, not a change to it, except the two marked as
options the host may choose.
chess players take for granted, the engine does the following. Each reads the
text above as it stands, except the two marked as options the host may
choose.
1. **Board numbers.** The notation paragraph makes the upper board 1 and
the lower 3, but every piece description, every example and the
@@ -652,8 +652,8 @@ options the host may choose.
are in.
3. **Light and dark.** With a light square in Gold's near right corner,
square l1 is light and a1 dark. Gold's Sylphs therefore start on a2,
c2, e2, g2, i2 and k2 and Scarlet's on a7, c7, e7, g7, i7 and k7 (the
same files, as the diagram shows); the Dwarves start on b, d, f, h, j
c2, e2, g2, i2 and k2 and Scarlet's on a7, c7, e7, g7, i7 and k7, the
same files, as the diagram shows. The Dwarves start on b, d, f, h, j
and l of their second rank.
4. **Captures on board-changing moves.** The text says "move" for the
Mage's step on the upper or lower board, for the Paladin's knight-like
@@ -668,7 +668,7 @@ options the host may choose.
the square on the middle board vacant. The Elemental's two-square
orthogonal step needs the square between vacant, as the general rule
says. The Elemental's move up needs its first, sideways square vacant
and the square above that to hold an enemy; its move down needs the
and the square above that to hold an enemy. Its move down needs the
square beneath vacant and lands by a further orthogonal step, with or
without a capture.
6. **The Dragon's capture from afar** is a whole move. The Dragon stays
@@ -679,12 +679,12 @@ options the host may choose.
except that it still occupies its square. A frozen King attacked by
another piece is in check and may be rescued only by capturing the
attacker or interposing.
8. **Check, checkmate, stalemate, repetition.** As in chess: a move may
8. **Check, checkmate, stalemate, repetition.** As in chess. A move may
not leave one's own King attacked, a King attacked with no escape is
mated and the game is lost, a player with no legal move and not in
check is stalemated and the game is drawn, and a position seen three
times with the same side to move is a draw. The text names only
checkmate; the other endings follow "as in standard chess".
checkmate, and the other endings follow "as in standard chess".
9. **Promotion** happens the moment a Warrior arrives on the far rank, to
a Hero, with no choice. A Sylph on the far rank keeps its downward
capture and comes back to life by moving up into a vacant home square.
+3 -3
View File
@@ -7,21 +7,21 @@
<meta name="theme-color" content="#121a20" />
<title>Wyrm</title>
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<meta name="description" content="Gary Gygax&#39;s Dragonchess, free in the browser: chess on three boards, with Dragons in the air and Basilisks below. Play a drake or a friend." />
<meta name="description" content="Gary Gygax&#39;s Dragonchess, free in the browser. Chess on three boards, with Dragons in the air and Basilisks below. Play a drake or a friend." />
<link rel="canonical" href="https://wyrm.kestrelsnest.social/" />
<link rel="icon" href="/favicon.ico" sizes="32x32" />
<link rel="icon" href="/favicon.svg" type="image/svg+xml" />
<meta property="og:type" content="website" />
<meta property="og:site_name" content="Wyrm" />
<meta property="og:title" content="Wyrm" />
<meta property="og:description" content="Gary Gygax&#39;s Dragonchess, free in the browser: chess on three boards, with Dragons in the air and Basilisks below. Play a drake or a friend." />
<meta property="og:description" content="Gary Gygax&#39;s Dragonchess, free in the browser. Chess on three boards, with Dragons in the air and Basilisks below. Play a drake or a friend." />
<meta property="og:url" content="https://wyrm.kestrelsnest.social/" />
<meta property="og:image" content="https://wyrm.kestrelsnest.social/og.png" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Wyrm" />
<meta name="twitter:description" content="Gary Gygax&#39;s Dragonchess, free in the browser: chess on three boards, with Dragons in the air and Basilisks below. Play a drake or a friend." />
<meta name="twitter:description" content="Gary Gygax&#39;s Dragonchess, free in the browser. Chess on three boards, with Dragons in the air and Basilisks below. Play a drake or a friend." />
<meta name="twitter:image" content="https://wyrm.kestrelsnest.social/og.png" />
%sveltekit.head%
</head>
+1 -1
View File
@@ -239,7 +239,7 @@
<a class="commit" href="/">Back to the hall</a>
</div>
{:else if yourMove}
<p class="muted small how">Tap a piece, then a square on any board. Tap any piece, yours or not, to read what it is and what it can do. With a keyboard: arrows to move about a board, Page Up and Page Down to change boards, Enter to pick up and to set down, Escape to cancel.</p>
<p class="muted small how">Tap a piece, then a square on any board. Tap any piece, yours or not, to read what it is and what it can do. With a keyboard, the arrows move about a board, Page Up and Page Down change boards, Enter picks up and sets down, and Escape cancels.</p>
{/if}
</section>
+29 -29
View File
@@ -38,7 +38,7 @@ export const SCENES: Scene[] = [
task: 'Take the Scarlet Warrior. Tap your Warrior at 2c2, then 2d3.',
moves: [['2c2', '2d3']],
after: 'The Warrior falls, and yours stands on the d file now. A Warrior that reaches the far rank stands up a Hero, with no choice about it, which is a real gain but not a queen. There is no double step and no capture in passing, because Gygax limited the Warrior to the old single step of shatranj, and so every advance is a commitment.',
aside: 'That is a legal move, but the Warrior at 2d3 is the one to take. Tap the board’s title to set the scene again.'
aside: 'That is a legal move, but the Warrior at 2d3 is the one to take. Set the scene again and look for it.'
},
{
id: 'oliphant',
@@ -49,8 +49,8 @@ export const SCENES: Scene[] = [
before: 'The war elephant is a rook by another name. It runs any distance along a rank or a file while the way is clear, and never leaves the land. The a file is open from your corner to the Thief at 2a6.',
task: 'Take the Thief. Tap the Oliphant at 2a1, then 2a6.',
moves: [['2a1', '2a6']],
after: 'On a board twelve squares wide an open file runs a long way, and the Oliphant is the piece that owns it. Remember what the sky can do, though: an Oliphant standing on the land beneath an enemy Dragon is as good as lost, because it cannot strike back upward.',
aside: 'A legal move, but the Thief at 2a6 is the one to take. Tap the board’s title to set the scene again.'
after: 'On a board twelve squares wide an open file runs a long way, and the Oliphant is the piece that owns it. Remember what the sky can do, though. An Oliphant standing on the land beneath an enemy Dragon is as good as lost, because it cannot strike back upward.',
aside: 'A legal move, but the Thief at 2a6 is the one to take. Set the scene again and look for it.'
},
{
id: 'unicorn',
@@ -58,11 +58,11 @@ export const SCENES: Scene[] = [
pieces: { '2b1': 'gU', '2a2': 'gW', '2b2': 'gW', '2c2': 'gW', '2c3': 'sT' },
side: 'gold',
levels: [2],
before: 'A knight, and the only piece of the land that leaps. Your Warriors wall it in, and the Unicorn does not care. It goes one square along a rank or file and one diagonally outward, over whatever is between.',
before: 'A knight, and one of the three pieces of the land that leap, with the Hero and the Paladin. Your Warriors wall it in, and the Unicorn does not care. It goes one square along a rank or file and one diagonally outward, over whatever is between.',
task: 'Leap the wall and take the Thief at 2c3. Tap the Unicorn, then 2c3.',
moves: [['2b1', '2c3']],
after: 'The Thief is gone and the wall never moved. Early in a game the Unicorns are the pieces to bring out first, for just this reason. Gygax rates them low, below a Basilisk, because a knight is slow on so wide a board, so trade one gladly for a Hero or a Thief.',
aside: 'A legal move, but the leap to 2c3 is the one to see. Tap the board’s title to set the scene again.'
aside: 'A legal move, but the leap to 2c3 is the one to see. Set the scene again and look for it.'
},
{
id: 'thief',
@@ -74,7 +74,7 @@ export const SCENES: Scene[] = [
task: 'Take the Oliphant. Tap the Thief, then 2h5.',
moves: [['2d1', '2h5']],
after: 'Five squares in one move, and a five-point piece for a four-point one. A Thief’s work is in the middle ranks, which is where the Dragon hunts from the air, so it is the piece most often lost to a strike from above. Two Thieves cover both colours of square.',
aside: 'A legal move, but the Oliphant at 2h5 is the one to take. Tap the board’s title to set the scene again.'
aside: 'A legal move, but the Oliphant at 2h5 is the one to take. Set the scene again and look for it.'
},
{
id: 'hero',
@@ -82,11 +82,11 @@ export const SCENES: Scene[] = [
pieces: { '2c1': 'gH', '2d2': 'gW', '2e3': 'sM' },
side: 'gold',
levels: [2],
before: 'A champion who goes one or two squares along a diagonal and leaps the square between. Your own Warrior stands at 2d2, in the way of nothing. Beyond it, the Scarlet Mage.',
before: 'A champion who goes one or two squares along a diagonal and leaps the square between. Your own Warrior stands at 2d2, and beyond it the Scarlet Mage.',
task: 'Leap over the Warrior and take the Mage at 2e3. Tap the Hero, then 2e3.',
moves: [['2c1', '2e3']],
after: 'The Mage, worth eleven, to a Hero worth four and a half. The Hero can also rise to the air or drop to the underworld, onto any of the four squares diagonally beside the square above or below it, and take a piece as it goes. Off the land its only move is back, so it goes up to kill and comes straight home.',
aside: 'A legal move, but the leap to 2e3 is the one to see. Tap the board’s title to set the scene again.'
aside: 'A legal move, but the leap to 2e3 is the one to see. Set the scene again and look for it.'
},
{
id: 'cleric',
@@ -98,7 +98,7 @@ export const SCENES: Scene[] = [
task: 'Step up into the air and take the Sylph. Tap the Cleric, then 3e4 on the upper board.',
moves: [['2e4', '3e4']],
after: 'The Cleric is in the air now and moves there exactly as it did on the land. Gygax says not to underestimate it. Of the five kinds of piece that can visit all three boards, it is the only one that plays the same on each, and he values it at nine, above the Dragon.',
aside: 'A legal move, but the step up to 3e4 is the one to see. Tap the board’s title to set the scene again.'
aside: 'A legal move, but the step up to 3e4 is the one to see. Set the scene again and look for it.'
},
{
id: 'mage',
@@ -106,11 +106,11 @@ export const SCENES: Scene[] = [
pieces: { '3c4': 'gM', '1c4': 'sB' },
side: 'gold',
levels: [3, 2, 1],
before: 'On the land the Mage is a queen. Here it is in the air, where it can only step one square along a rank or file, or move straight up or down. Straight down two boards is the underworld, and a Scarlet Basilisk sits there at 1c4. The land square between, 2c4, is empty, and it has to be: the Mage does not vault.',
before: 'On the land the Mage is a queen. Here it is in the air, where it can only step one square along a rank or file, or move straight up or down. Straight down two boards is the underworld, and a Scarlet Basilisk sits there at 1c4. The land square between, 2c4, is empty, and it has to be, because the Mage does not vault.',
task: 'Descend two boards and take the Basilisk. Tap the Mage, then 1c4 on the lowest board.',
moves: [['3c4', '1c4']],
after: 'The Basilisk is crushed and the Mage stands in the underworld, where it is a shadow of itself, one step at a time. Gygax warns against bringing the Mage out early, since lesser pieces develop by chasing it. Use its moves between boards to escape, and seldom to visit.',
aside: 'A legal move, but the drop to 1c4 is the one to see. Tap the board’s title to set the scene again.'
after: 'The Basilisk is crushed and the Mage stands in the underworld, where it is a shadow of itself, one step at a time. Gygax warns against bringing the Mage out early, since lesser pieces develop by chasing it. Its moves between boards serve it best as an escape.',
aside: 'A legal move, but the drop to 1c4 is the one to see. Set the scene again and look for it.'
},
{
id: 'paladin',
@@ -122,7 +122,7 @@ export const SCENES: Scene[] = [
task: 'Vault down to the underworld and take the Dwarf at 1c6. Tap the Paladin, then 1c6.',
moves: [['2c4', '1c6']],
after: 'One board down and two squares forward, over the Dwarf at 1c5, which never had a say. In the underworld the Paladin keeps only the king’s step. Worth ten by Gygax’s count, it is the piece that can be on any board from any other in one move, and he counsels keeping it back until the lesser pieces are out.',
aside: 'A legal move, but the vault to 1c6 is the one to see. Tap the board’s title to set the scene again.'
aside: 'A legal move, but the vault to 1c6 is the one to see. Set the scene again and look for it.'
},
{
id: 'sylph',
@@ -130,11 +130,11 @@ export const SCENES: Scene[] = [
pieces: { '3e4': 'gS', '2e4': 'sO', '3e5': 'sW' },
side: 'gold',
levels: [3, 2],
before: 'A pawn turned inside out. In the air the Sylph drifts one square diagonally forward and captures by stepping straight ahead, so the Warrior at 3e5 is in its sights. But look down: a Scarlet Oliphant stands on the land directly beneath it, and a Sylph can strike straight down.',
before: 'A pawn turned inside out. In the air the Sylph drifts one square diagonally forward and captures by stepping straight ahead, so the Warrior at 3e5 is in its sights. But look down. A Scarlet Oliphant stands on the land directly beneath it, and a Sylph can strike straight down.',
task: 'Dive and take the Oliphant on the land. Tap the Sylph, then 2e4 on the middle board.',
moves: [['3e4', '2e4']],
after: 'A one-point piece has taken a five-point one. Now the Sylph is grounded. On the land it cannot move at all except to rise again, to the square above it or to any empty square the Sylphs began on, and it takes nothing on the way up. Spend them this way and climb them home.',
aside: 'A legal move, but the dive onto the Oliphant at 2e4 is the one to see. Tap the board’s title to set the scene again.'
aside: 'A legal move, but the dive onto the Oliphant at 2e4 is the one to see. Set the scene again and look for it.'
},
{
id: 'griffon',
@@ -146,7 +146,7 @@ export const SCENES: Scene[] = [
task: 'Swoop down and take the Thief. Tap the Griffon, then 2e5 on the middle board.',
moves: [['3d4', '2e5']],
after: 'The Thief is gone, and the Griffon is on the land, where it has lost its wings and creeps one square diagonally until it climbs back. Drop to pick off a defender and climb before the land can gather. In the air it is worth a little more than a Hero, and nothing on the land sees its leap coming.',
aside: 'A legal move, but the swoop onto the Thief at 2e5 is the one to see. Tap the board’s title to set the scene again.'
aside: 'A legal move, but the swoop onto the Thief at 2e5 is the one to see. Set the scene again and look for it.'
},
{
id: 'dragon',
@@ -154,11 +154,11 @@ export const SCENES: Scene[] = [
pieces: { '3c4': 'gR', '2d4': 'sM', '2c4': 'sW' },
side: 'gold',
levels: [3, 2],
before: 'The wyrm never leaves the air. It slides the diagonals and steps one square in any direction, and it strikes from afar: without moving, it can take an enemy on the land directly beneath it or on any of the four squares beside that one. Beneath it at 2c4 stands a Warrior, and beside that, at 2d4, the Scarlet Mage.',
before: 'The wyrm never leaves the air. It slides the diagonals and steps one square in any direction, and it strikes from afar. Without moving, it can take an enemy on the land directly beneath it or on any of the four squares beside that one. Beneath it at 2c4 stands a Warrior, and beside that, at 2d4, the Scarlet Mage.',
task: 'Strike the Mage from afar. Tap the Dragon, then 2d4 on the middle board.',
moves: [['3c4', '2d4']],
after: 'The Mage is lifted from the land and the Dragon has not moved. That strike was its whole move. Gygax set each Dragon directly over its King for this reason: a Dragon at home is a roof over the five squares beneath it, and a Dragon that flies off to hunt leaves its King under the other Dragon’s shadow.',
aside: 'A legal move, but the strike at the Mage on 2d4 is the one to see. Tap the board’s title to set the scene again.'
after: 'The Mage is lifted from the land and the Dragon has not moved. That strike was its whole move. Gygax set each Dragon directly over its King for this reason. A Dragon at home is a roof over the five squares beneath it, and a Dragon that flies off to hunt leaves its King under the other Dragon’s shadow.',
aside: 'A legal move, but the strike at the Mage on 2d4 is the one to see. Set the scene again and look for it.'
},
{
id: 'dwarf',
@@ -170,7 +170,7 @@ export const SCENES: Scene[] = [
task: 'Burst up and take the Hero. Tap the Dwarf, then 2d4 on the middle board.',
moves: [['1d4', '2d4']],
after: 'A Dwarf is a mine beneath the land, and a piece that settles above one is taken. On the land it keeps the same moves, and it comes back down only onto an empty square beneath it. Gygax says the Dwarves play little part early, and make the best outposts late, if you have not hurried them forward.',
aside: 'A legal move, but the strike up at the Hero on 2d4 is the one to see. Tap the board’s title to set the scene again.'
aside: 'A legal move, but the strike up at the Hero on 2d4 is the one to see. Set the scene again and look for it.'
},
{
id: 'basilisk',
@@ -181,8 +181,8 @@ export const SCENES: Scene[] = [
before: 'The serpent whose gaze turns to stone. A Basilisk moves one square forward or diagonally forward, taking what is there, or one square straight back, and never leaves the underworld. Whatever enemy stands on the land directly above it cannot move, take or threaten anything. The Scarlet Mage stands at 2e4. The square beneath it, 1e4, is one step ahead of your Basilisk.',
task: 'Slither under the Mage. Tap the Basilisk, then 1e4.',
moves: [['1e3', '1e4']],
after: 'The Mage is frozen where it stands, and will be until the Basilisk moves or is taken. Gygax says an immobilised piece can be treated as if it did not exist, except that it still blocks its square. His own trick runs the other way too: stand a piece of yours over your own Basilisk, and whatever takes it is frozen on the spot for you to take at your leisure.',
aside: 'A legal move, but 1e4, beneath the Mage, is the one to see. Tap the board’s title to set the scene again.'
after: 'The Mage is frozen where it stands, and will be until the Basilisk moves or is taken. Gygax says an immobilised piece can be treated as if it did not exist, except that it still blocks its square. His own trick runs the other way too. Stand a piece of yours over your own Basilisk, and whatever takes it is frozen on the spot for you to take at your leisure.',
aside: 'A legal move, but 1e4, beneath the Mage, is the one to see. Set the scene again and look for it.'
},
{
id: 'elemental',
@@ -193,8 +193,8 @@ export const SCENES: Scene[] = [
before: 'The one heavy thing in the underworld. It moves one or two squares along a rank or file and takes the same way, so the Dwarf at 1d6 is in reach. It climbs to the land only to capture, one square along a rank or file onto an empty square and then straight up onto an enemy. The square beside it at 1e4 is empty, and above that stands a Thief.',
task: 'Heave up and take the Thief. Tap the Elemental, then 2e4 on the middle board.',
moves: [['1d4', '2e4']],
after: 'The Thief is shattered and the Elemental stands on the land, where it is a rock. Its only move there is back down, straight through an empty square and then one square along a rank or file. Plan its climb: an empty square beside it and an enemy above that square, and nothing else will do.',
aside: 'A legal move, but the climb onto the Thief at 2e4 is the one to see. Tap the board’s title to set the scene again.'
after: 'The Thief is shattered and the Elemental stands on the land, where it is a rock. Its only move there is back down, straight through an empty square and then one square along a rank or file. Its climb needs an empty square beside it and an enemy above that square, and nothing else will do.',
aside: 'A legal move, but the climb onto the Thief at 2e4 is the one to see. Set the scene again and look for it.'
},
{
id: 'king',
@@ -202,10 +202,10 @@ export const SCENES: Scene[] = [
pieces: { '2g1': 'gK', '2g8': 'sO', '2f2': 'gW', '2h2': 'gW' },
side: 'gold',
levels: [3, 2, 1],
before: 'The whole game. The King moves one square in any direction on the land, and one step straight up or down between boards. Here it is in check: the Scarlet Oliphant looks down the open g file. Nothing of yours can take the Oliphant or step into the file, so the King must move. Two squares on the land are safe, and it could also climb into the air or dig into the underworld.',
before: 'The whole game. The King moves one square in any direction on the land, and one step straight up or down between boards. Here it is in check, because the Scarlet Oliphant looks down the open g file. Nothing of yours can take the Oliphant or step into the file, so the King must move. Two squares on the land are safe, and it could also climb into the air or dig into the underworld.',
task: 'Step out of check along the rank. Tap the King, then 2f1 or 2h1.',
moves: [['2g1', '2f1'], ['2g1', '2h1']],
after: 'Safe, and still on the land. The King could have climbed or dug instead, but off the land a King can do nothing except come straight back, and Gygax calls it a sitting duck there. Keep two more things in mind at the table: the square beneath your King, where an enemy Basilisk would freeze it, and your Dragon above it, which is its roof.',
after: 'Safe, and still on the land. The King could have climbed or dug instead, but off the land a King can do nothing except come straight back, and Gygax calls it a sitting duck there. At the table, keep two more things in mind. The square beneath your King is where an enemy Basilisk would freeze it, and your Dragon above it is its roof.',
aside: 'That is out of check, but off the land the King can only come back. Set the scene again and stay on the land.'
},
{
@@ -214,11 +214,11 @@ export const SCENES: Scene[] = [
pieces: { '2d4': 'sK', '1d4': 'gB', '2a1': 'gO', '2g1': 'gK' },
side: 'gold',
levels: [2, 1],
before: 'Your Basilisk sits beneath the Scarlet King at 2d4, so the King is frozen: it cannot step out of anything. Gygax wrote that a frozen King is checkmated by any attack it cannot capture or block. Your Oliphant stands on the a file with the fourth rank empty between it and the King.',
before: 'Your Basilisk sits beneath the Scarlet King at 2d4, so the King is frozen and cannot step out of anything. Gygax wrote that a frozen King is checkmated by any attack it cannot capture or block. Your Oliphant stands on the a file with the fourth rank empty between it and the King.',
task: 'Give checkmate. Tap the Oliphant, then 2a4.',
moves: [['2a1', '2a4']],
after: 'Checkmate. The King is attacked along the rank, it cannot move, nothing of Scarlet’s can take the Oliphant, and nothing can step between. That is the Basilisk’s other gift: a well-timed move beneath a King, or beneath the piece that guards it, ends a game.',
aside: 'A legal move, but the Oliphant to 2a4 is the mate. Tap the board’s title to set the scene again.'
after: 'Checkmate. The King is attacked along the rank, it cannot move, nothing of Scarlet’s can take the Oliphant, and nothing can step between. That is the Basilisk’s other gift. A well-timed move beneath a King, or beneath the piece that guards it, ends a game.',
aside: 'A legal move, but the Oliphant to 2a4 is the mate. Set the scene again and look for it.'
}
];
+6 -6
View File
@@ -28,7 +28,7 @@ export const LORE: Record<Kind, Lore> = {
},
G: {
count: 'two a side',
is: 'Half eagle and half lion, and the only piece that leaps through the air. Two of them flank each Dragon, on the c and k files.',
is: 'Half eagle and half lion, and the one piece whose leap is across the air itself. Two of them flank each Dragon, on the c and k files.',
moves: 'In the air a Griffon leaps two squares one way and three the other, over anything in between, to as many as eight squares. It can drop to the land onto any of the four squares diagonally beside the square beneath it, taking whatever is there. On the land it loses its wings and creeps one square diagonally, until it climbs back onto one of the four squares diagonally above it.',
why: 'The Griffon is the sky’s raider. Its leap crosses three ranks at once, so nothing on the land sees it coming, and its drop lands beside the square beneath it rather than on it, so a piece that guards the sky over its own head is not safe.',
play: 'Keep it in the air, where it is worth a little more than a Hero. On the land it is a lame Thief. Drop to pick off a defender and climb before the land can gather. A Griffon and a Dragon hunting together can take anything that strays onto the ranks beneath them.'
@@ -80,27 +80,27 @@ export const LORE: Record<Kind, Lore> = {
is: 'The one piece at home on every board.',
moves: 'One square in any direction wherever it stands, and one step straight up or down to the board above or below, taking what is there.',
why: 'Gygax says not to underestimate it. Of the five kinds of piece that can visit all three boards, the Cleric is the only one that moves and captures the same way on each.',
play: 'Gygax values it at nine, above the Dragon, because it can go anywhere and threaten everything when it arrives. A Cleric in the underworld hunts Basilisks that few others can reach, and a Cleric in the air harries Sylphs. Walk it rather than hurrying it. It is slow, and every square it passes is one it controls.'
play: 'Gygax values it at nine, above the Dragon, because it can go anywhere and threaten everything when it arrives. A Cleric in the underworld hunts Basilisks that few others can reach, and a Cleric in the air harries Sylphs. It is slow, so start it toward the middle early.'
},
M: {
count: 'one a side',
is: 'The queen of the land, and a traveller between worlds with little to do once it has arrived.',
moves: 'On the land a Mage slides any distance along a rank, file or diagonal. It can also move straight up or down, one board or two, though to pass through the land the square there must be empty. In the air or the underworld it is reduced to one square sideways, forward or back.',
why: 'The most valuable piece on the board, worth eleven, and Gygax warns against the queen hunt. A Mage brought out early is chased by lesser pieces that develop as they chase it.',
play: 'Keep it back until the Unicorns and Heroes are out. Its step between boards is a way to flee a Dragon’s gaze, or to drop into the underworld and take a Basilisk from beside it, but a Mage down there is a shadow of itself and takes three moves to go and come back. Use the vertical move to escape, not to visit.'
play: 'Keep it back until the Unicorns and Heroes are out. Its step between boards is a way to flee a Dragon’s gaze, or to drop into the underworld and take a Basilisk from beside it, but a Mage down there is a shadow of itself and takes three moves to go and come back. Its moves between boards serve it best as an escape.'
},
K: {
count: 'one a side',
is: 'The King of the land, and the whole game. Lose it and nothing else counts.',
is: 'The King of the land. The game is won by trapping the other one and lost by losing this one.',
moves: 'One square in any direction on the land, and one step straight up to the air or down to the underworld, taking what is there. Off the land it can do nothing but come straight back.',
why: 'As in chess, the object is to checkmate it. A King attacked with no escape loses the game, and a King frozen by a Basilisk beneath it is mated by any attack that cannot be blocked or captured.',
play: 'Keep the square beneath it in mind. An enemy Basilisk that reaches the underworld under your King freezes it where it stands. Never step off the land unless the land is death, since off it the King can only return, a sitting duck. The Dragon above it is its roof, and the Paladin beside it its shield.'
play: 'Keep the square beneath it in mind. An enemy Basilisk that reaches the underworld under your King freezes it where it stands. Keep it on the land unless staying is worse, since off the land it can only return, and Gygax calls it a sitting duck there. The Dragon above it is its roof.'
},
P: {
count: 'one a side',
is: 'The holy knight, the piece that can be on any board from any other in a single leap.',
moves: 'On the land the Paladin has the king’s step and the knight’s leap together. Between boards it leaps the way a knight does on one, one board up or down and two squares along a rank or file, or two boards and one square, over anything in between. In the air or the underworld it keeps only the king’s step.',
why: 'After the Mage it is the game’s most powerful piece, worth ten, and the only one whose move between boards vaults what is in the way.',
why: 'After the Mage it is the game’s most powerful piece, worth ten, and one of the three, with the Griffon and the Hero, whose moves between boards vault what is in the way.',
play: 'Gygax counsels keeping it back until the minor pieces are developed. Then its leaps let it threaten the enemy’s sky and underworld where few can follow, and come back in one move. A Paladin can land beside a Basilisk and take it next turn, or rise beneath a Dragon’s roost and strike it from the air.'
},
D: {
+7 -7
View File
@@ -15,11 +15,11 @@ export const TOLD_MOVES: [string, string][] = [
/** What to look at, by the ply just played; 0 is before the first move. */
export const CALLOUTS: Record<number, string> = {
0: 'Both armies stand as Gygax drew them, and Gold moves first. Step through the game a move at a time. Where there is something to see, a word on it appears here.',
0: 'Both armies stand as Gygax drew them, and Gold moves first.',
1: 'A Warrior steps one square, never two, so the opening is slower than chess. This one clears the f file for the Mage behind it.',
3: 'The Unicorn is the first piece out, because it is the one piece of the land that can leap the wall of Warriors.',
3: 'The Unicorn is the first piece out, because it leaps the wall of Warriors. The Hero and the Paladin can leap it too, and nothing else on the land can.',
5: 'The Hero leaps two squares along a diagonal, over its own Warrior at 2d2. That leap is how a Hero gets out early.',
6: 'Scarlet’s Dragon leaves its roost, which Gygax warned against. Look at what it threatens now: the five land squares beneath 3c4, and Gold’s Unicorn at 2c3 among them. Then look at what it has left behind. There is no roof over Scarlet’s King.',
6: 'Scarlet’s Dragon leaves its roost, which Gygax warned against. It now threatens the five land squares beneath 3c4, and Gold’s Unicorn at 2c3 stands on one of them. It has also left Scarlet’s King without a roof.',
7: 'Gold steps the Unicorn out of the Dragon’s shadow.',
8: 'The Dragon follows, hungry, to 3d4, where it threatens the Unicorn again. But it has stepped onto a square a Hero can reach. From 2e3 a Hero rises onto any square diagonally beside 3e3, and 3d4 is one of them.',
9: 'The Hero rises and the Dragon falls. Only five kinds of land piece can touch the air at all, and this is how one of them does it. The Hero is in the air now, where it can do nothing but come down.',
@@ -27,15 +27,15 @@ export const CALLOUTS: Record<number, string> = {
11: 'Gold’s Hero comes home to the land, onto a square diagonally beside the one beneath it. Off the land, that was its only kind of move.',
13: 'Gold’s Basilisk sets out on a slow walk, one square a move. It wants to be beneath whatever Scarlet sends deep into Gold’s side. Watch where Scarlet’s Hero goes.',
14: 'The Hero digs into Gold’s side at 2c4, two leaps from home. A piece that comes this deep should look beneath its feet.',
17: 'The gaze falls. The Hero at 2c4 is frozen: it cannot move, cannot take, and threatens nothing, until the Basilisk moves or dies. Gold is in no hurry.',
17: 'The gaze falls. The Hero at 2c4 is frozen, and cannot move, take or threaten anything until the Basilisk moves or dies. Gold is in no hurry.',
19: 'A Warrior comes to stand diagonally behind the frozen Hero.',
21: 'Taken, in Gygax’s words, more or less at your leisure. The Warrior is safe above Gold’s own Basilisk, since a Basilisk freezes only enemies.',
22: 'Scarlet’s Griffon leaps to 3f6, two squares one way and three the other, over everything. Now look at the four land squares diagonally beside 2f6. One of them is 2e5, where Gold’s Hero stands.',
23: 'Gold does not look up.',
24: 'The swoop. The Griffon drops onto the Hero and takes it. On the land it has lost its wings, and creeps one square at a time until it climbs back.',
25: 'Gold’s Dragon leaves its roost, and this time it is safe to do so: Scarlet’s Dragon is dead, so nothing threatens Gold’s King from the air. Look along the diagonal from 3d4 through e5 and f6 to 3g7, where a Scarlet Sylph hovers above Scarlet’s King.',
24: 'The Griffon swoops onto the Hero and takes it. On the land it has lost its wings, and creeps one square at a time until it climbs back.',
25: 'Gold’s Dragon leaves its roost, and this time it is safe to do so, since Scarlet’s Dragon is dead and nothing threatens Gold’s King from the air. Look along the diagonal from 3d4 through e5 and f6 to 3g7, where a Scarlet Sylph hovers above Scarlet’s King.',
26: 'Scarlet does not look up either.',
27: 'The Dragon takes the Sylph at 3g7 and strikes down at every square around the King: 2g7 beneath it, and 2g8, 2f7 and 2h7 beside that. The King cannot step up, because the Dragon stands beside 3g8. It cannot step down, because its own Elemental is at 1g8. Its neighbours on the land are its own pieces or struck squares, and nothing of Scarlet’s can reach 3g7. Checkmate.'
27: 'The Dragon takes the Sylph at 3g7 and strikes down at 2g7 beneath it and at 2g8, 2f7 and 2h7 beside that, every square the King could use. The King cannot step up, because the Dragon stands beside 3g8. It cannot step down, because its own Elemental is at 1g8. Its neighbours on the land are its own pieces or struck squares, and nothing of Scarlet’s can reach 3g7. Checkmate.'
};
/** The game at every ply, from the opening to the end. The engine refuses a move that is not legal. */
+1 -1
View File
@@ -44,7 +44,7 @@
<h2>The boards</h2>
<figure><img src="/guide/boards.png" alt="The three boards one above the other in the opening position, the air in blue and white, the land in green and amber, the underworld in red and brown" loading="lazy" /></figure>
<p>The three boards stand one above the other, the air at the top, the land in the middle and the underworld at the bottom, in the colours Gygax suggested. Your side is nearest you on every board. Each piece is a disc bearing the initial Gygax gave it, with Dr for the Dragon so it is not mistaken for a Dwarf. The square names along the edges are his too, and you can hide them under <em>preferences</em>. A square is named by its board, its file and its rank, so 3b4 is the air, file b, rank 4, and 1g1 is the underworld beneath Gold's King. Each board's title carries its number.</p>
<figure><img src="/guide/panel.png" alt="The panel for Scarlet's Dragon: where it stands and what it can take, what it is, how it moves, why it is in the game, and how to play it" loading="lazy" /></figure>
<figure><img src="/guide/panel.png" alt="The panel for Scarlet's Dragon, with where it stands and what it can take, what it is, how it moves, why it is in the game, and how to play it" loading="lazy" /></figure>
<p>Tap any piece, yours or the other side's, and a panel opens beside the boards, or rises from the foot of the screen on a phone, saying what the piece is, where it stands and what it can reach from there, how it moves, why Gygax put it in the game, and how to play it. Dotted squares show where a piece that is not yours to move could go. Tap the piece again, or the cross, to close it.</p>
<p>The strip above the boards says whose move it is and warns when a King is in check. The chronicle beside the boards tells each move and what came of it, who took what, whose gaze fell on whom, and when a King is in check, with Gygax's notation beside each move. Click a move to see it on the boards, and click again, or make your move, to come back to now.</p>
</section>
+1 -1
View File
@@ -43,7 +43,7 @@
<header>
<a class="back" href="/">Back to the hall</a> · <a class="back" href="/learn">Learn the pieces</a> · <a class="back" href="/guide">How to play</a> · <a class="back" href="/rules">The rules</a>
<h1>A game told</h1>
<p class="lede">Twenty-seven moves, written to show what a first game should see: a Dragon that leaves its roost too soon and the Hero that kills it, a Basilisk’s slow walk and the piece it freezes, a Griffon’s swoop, and a Dragon’s checkmate from the air. Step through it with the buttons or the arrow keys.</p>
<p class="lede">Twenty-seven moves, written to show what a first game should see. A Dragon leaves its roost too soon and a Hero kills it, a Basilisk walks slowly under a piece that came too deep and freezes it, a Griffon swoops, and a Dragon gives checkmate from the air. Step through it with the buttons or the arrow keys.</p>
</header>
<section class="stage">