RUSSIAN_DRAUGHTS_RULESconstant
Russian draughts (shashki), from the Russian Draughts Federation's rules (ФШР, shashki.ru) and the FMJD/IDF rules for 8×8 draughts: men take both ways, kings fly, any capture may be chosen whatever it takes (FMJD-64 4.13), and a man that reaches the far row in the middle of a capture is crowned there and carries on capturing as a king (4.14).
Draws, as the federation writes them: a third repetition with the same side to move; three kings or more that have not taken a lone king by their fifteenth move, counted from when that balance arose; and any ending in which both sides have a king and nothing is taken or crowned for five moves (two or three pieces on the board), thirty (four or five) or sixty (six or seven). Fifteen moves of kings alone is rules/noProgress.ts.
NOT APPLIED: the five-move count for three pieces against a lone king on the main road, for the reason given at INTERNATIONAL_DRAUGHTS_RULES; the "clearly drawn position", which is an arbiter's judgement and not a count; and the three-kings rule's "or kings and men", which the federation's own text leaves unclear. It is read as kings alone, the narrower reading, so it never draws a game it might not apply to.
Import it
import { RUSSIAN_DRAUGHTS_RULES } from "@johnmorrisdotca/narabe";
Definition
const RUSSIAN_DRAUGHTS_RULES: CheckersRules = {
menRows: 3,
menCaptureBackward: true,
flyingKings: true,
captureChoice: CAPTURE_CHOICES.free,
crownMidCapture: CROWN_MID_CAPTURE.continues,
repetitionDraw: 3,
endgameCounts: [
{
kind: ENDGAME_COUNT_KINDS.endings,
restartsOnChange: true,
endings: Array.from({ length: 10 }, (_, extra) => [{ kings: 3 + extra, men: 0 }, LONE_KING] as const),
movesEach: 15,
},
{ kind: ENDGAME_COUNT_KINDS.balance, pieces: [2, 3], movesEach: 5 },
{ kind: ENDGAME_COUNT_KINDS.balance, pieces: [4, 5], movesEach: 30 },
{ kind: ENDGAME_COUNT_KINDS.balance, pieces: [6, 7], movesEach: 60 },
],
}
Members
| Name | Type | Description |
|---|---|---|
menRows | number | Rows of men each side starts with, on the dark squares of its own side of the board. |
menCaptureBackward | boolean | Whether a man may capture backward as well as forward. It always steps forward only. |
flyingKings | boolean | Whether a king flies: moves any distance along an open diagonal, and takes a piece at any distance, landing on any empty square beyond it. Otherwise a king moves one square and jumps an adjacent piece, as a man does, both ways. |
captureChoice | CaptureChoice | |
crownMidCapture | CrownMidCapture | |
repetitionDraw | number | null | The same position standing for this many times, with the same side to move, is a draw. Null where this game is not played with a repetition rule here. |
endgameCounts | readonly EndgameCount[] | The endings the stronger side must win within a count of moves, or draw. |
Examples
import { RUSSIAN_DRAUGHTS_RULES } from "@johnmorrisdotca/narabe";
console.log(RUSSIAN_DRAUGHTS_RULES);{
menRows: 3,
menCaptureBackward: true,
flyingKings: true,
captureChoice: 'free',
crownMidCapture: 'continues',
repetitionDraw: 3,
endgameCounts: [
{
kind: 'endings',
restartsOnChange: true,
endings: [Array],
movesEach: 15
},
{ kind: 'balance', pieces: [Array], movesEach: 5 },
{ kind: 'balance', pieces: [Array], movesEach: 30 },
{ kind: 'balance', pieces: [Array], movesEach: 60 }
]
}What it prints (run when this page was built)