Credibility pass: the code reads as one hand's work. Dead plumbing and copies removed, four claims the source does not support corrected, and inherited kit text re-read for this game
Engine: the facade re-exports the board in one block; describe() and the dead letters preference, void ply, the King-taken line, the identity maps and the unused imports are gone; SIDE_NAMES is the one spelling of a side; the drake's hunter comment no longer claims only four kinds reach the air. Prose: no shatranj and no sitting duck, which Gygax never wrote; the Thief statistic and the Basilisk's "one trick" are gone; lessons say what the board shows instead of repeating the panel; a Thief's leap counts four. Browser: one keyboard walk, in BoardArtwork; the lesson board and page share one game and one inspected piece; the chronicle's possessive is told, not patched by a regex; the chronicle colours and the reading layout are global rules instead of three copies; the guide and the about panel say what the code and the article actually do. Server and docs: the room server states that it is the kit's, kept whole; the skills, the deploy README and the share card name files that exist. 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
944e4e8306
commit
0be89a1dfe
28 files changed
+227
-340
No files matched your search
@@ -6,7 +6,7 @@
|
||||
import { createGame, applyMove, validateMove } from '../src/lib/game/index.ts';
|
||||
import { chooseMove } from '../src/lib/game/bot.ts';
|
||||
import { narrate } from '../src/lib/game/chronicle.ts';
|
||||
import { square, squareName, legalMovesFrom, type Side } from '../src/lib/game/board.ts';
|
||||
import { square, squareName, legalMovesFrom } from '../src/lib/game/board.ts';
|
||||
import { TOLD_MOVES } from '../src/lib/game/told.ts';
|
||||
const FORCED: Record<number, [string, string]> = Object.fromEntries(TOLD_MOVES.map((m, n) => [n + 1, m]));
|
||||
|
||||
@@ -17,7 +17,7 @@ let s = createGame({ A: 'Gold', B: 'Scarlet' });
|
||||
for (let ply = 1; ply <= plies && !s.over; ply++) {
|
||||
const seat = s.toMove === 'gold' ? 'A' : 'B';
|
||||
if (ply === askPly && askSquare) {
|
||||
console.log(`ply ${ply}, ${s.toMove} to move, ${askSquare} may go to: ${legalMovesFrom(s.cells, square(askSquare), 'printed').map(squareName).join(' ')}`);
|
||||
console.log(`ply ${ply}, ${s.toMove} to move, ${askSquare} may go to: ${legalMovesFrom(s.cells, square(askSquare), s.setup).map(squareName).join(' ')}`);
|
||||
process.exit(0);
|
||||
}
|
||||
const forced = FORCED[ply];
|
||||
@@ -29,7 +29,7 @@ for (let ply = 1; ply <= plies && !s.over; ply++) {
|
||||
console.log(`ply ${ply}: forced ${forced[0]}-${forced[1]} refused: ${why}`);
|
||||
process.exit(1);
|
||||
}
|
||||
} else move = chooseMove(s.cells, s.toMove as Side, 'printed', 40000)!;
|
||||
} else move = chooseMove(s.cells, s.toMove, s.setup, 40000)!;
|
||||
s = applyMove(s, move.from, move.to);
|
||||
}
|
||||
for (const t of narrate(s)) console.log(`${t.ply}${FORCED[t.ply] ? '*' : ' '} ${t.lines.map((l) => l.text).join(' ')}`);
|
||||
|
||||
Reference in new issue
Block a user