The rules page names the texts it follows: the Copenhagen club's rules and Linnaeus's manuscript in Salmi's reading; perpetual repetition loses for the defenders, as Copenhagen has it
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Jm2auWk6RP71CjaAb4FMoG
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
32844a5976
commit
3aeb1ee99e
@@ -264,9 +264,9 @@ export function applyMove(previous: State, from: number, to: number): State {
|
||||
if (!state.over) {
|
||||
const key = positionKey(state);
|
||||
state.seen[key] = (state.seen[key] ?? 0) + 1;
|
||||
const mover = state.players[seatOfSide(state, side)!]?.name ?? side;
|
||||
const next = state.players[seatOfSide(state, state.toMove)!]?.name ?? state.toMove;
|
||||
if (state.seen[key] >= 3) win(state.toMove, `${mover} repeats the position a third time and forfeits.`);
|
||||
// Perpetual repetition is forbidden, and the Copenhagen rule lays the loss on the defenders.
|
||||
if (state.seen[key] >= 3) win('attackers', 'The position stands a third time: perpetual repetition loses for the defenders.');
|
||||
else if (legalMoves(state, state.toMove).length === 0) win(side, `${next} has no move.`);
|
||||
}
|
||||
return state;
|
||||
|
||||
Reference in New Issue
Block a user