Skip to the content

Narabe並べ

Play forty-eight abstract board games through immutable moves, legal choices and replayable records.

Narabe means arranging in Japanese, as in gomoku-narabe: five in a row. About the name

Contents

Reference · Rules and records

INTERNATIONAL_DRAUGHTS_RULESconstant

International draughts, from the FMJD's official rules (Annex 1, 2018, and the 2024 Annexes). Men take both ways (4.1), kings fly (3.9, 4.3), the capture taking the most pieces is compulsory with a king counting as one piece (4.13), a man crossing the far row mid-capture stays a man (4.15), and taken pieces come off only once the capture is over and may not be jumped twice (4.8, 4.11).

The draws of article 6: a third repetition with the same side to move (6.1); three pieces, one at least a king, against a lone king, sixteen more moves each (6.3); two kings, a king and a man, or a king against a lone king, five more moves each (6.4). The twenty-five-move kings-only count (6.2) is the no-progress rule in rules/noProgress.ts.

NOT APPLIED: the 2024 clause that cuts 6.3's sixteen moves to five when the lone king "solely occupies" the long diagonal. The text does not say whether the king must hold the diagonal from the start of the count or at its end, nor what leaving it does, and a rule this site cannot read exactly must not fire. Without it those endings run to sixteen moves each, which is the older rule and the generous side of the new one.

Import it

import { INTERNATIONAL_DRAUGHTS_RULES } from "@johnmorrisdotca/narabe";

Definition

const INTERNATIONAL_DRAUGHTS_RULES: CheckersRules = {
    menRows: 4,
    menCaptureBackward: true,
    flyingKings: true,
    captureChoice: CAPTURE_CHOICES.maximum,
    crownMidCapture: CROWN_MID_CAPTURE.passes,
    repetitionDraw: 3,
    endgameCounts: [
        {
            kind: ENDGAME_COUNT_KINDS.endings,
            restartsOnChange: false,
            endings: [
                [{ kings: 3, men: 0 }, LONE_KING],
                [{ kings: 2, men: 1 }, LONE_KING],
                [{ kings: 1, men: 2 }, LONE_KING],
            ],
            movesEach: 16,
        },
        {
            kind: ENDGAME_COUNT_KINDS.endings,
            restartsOnChange: false,
            endings: [
                [{ kings: 2, men: 0 }, LONE_KING],
                [{ kings: 1, men: 1 }, LONE_KING],
                [LONE_KING, LONE_KING],
            ],
            movesEach: 5,
        },
    ],
}

Members

NameTypeDescription
menRowsnumber

Rows of men each side starts with, on the dark squares of its own side of the board.

menCaptureBackwardboolean

Whether a man may capture backward as well as forward. It always steps forward only.

flyingKingsboolean

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.

captureChoiceCaptureChoice
crownMidCaptureCrownMidCapture
repetitionDrawnumber | 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.

endgameCountsreadonly EndgameCount[]

The endings the stronger side must win within a count of moves, or draw.

Examples

import { INTERNATIONAL_DRAUGHTS_RULES } from "@johnmorrisdotca/narabe";
console.log(INTERNATIONAL_DRAUGHTS_RULES);
{
  menRows: 4,
  menCaptureBackward: true,
  flyingKings: true,
  captureChoice: 'maximum',
  crownMidCapture: 'passes',
  repetitionDraw: 3,
  endgameCounts: [
    {
      kind: 'endings',
      restartsOnChange: false,
      endings: [Array],
      movesEach: 16
    },
    {
      kind: 'endings',
      restartsOnChange: false,
      endings: [Array],
      movesEach: 5
    }
  ]
}

What it prints (run when this page was built)

View sourceEdit on GitHubMade from the source of @johnmorrisdotca/narabe 1.3.0.