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

capturePathsfunction

The squares each capture has passed through so far, move by move, or null for a move that took nothing. A draughts multi-jump is kept as one move a hop, so its second hop reads the whole chain: g5, e3, then c1. John, 2026-09-24, from vint.ee's replays: "I found out how they do their moves".

Read from the ENGINE's moves (captured, continuedChain), which a replay of the record rebuilds; a stored move keeps neither.

Import it

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

Definition

function capturePaths(moves: readonly SlideMove[]): (Point[] | null)[]

Parameters

NameTypeDescription
movesreadonly SlideMove[]

The move record in replay order.

Returns

(Point[] | null)[]

The accumulated capture path for each move; null for a move without captures.

Examples

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

console.log(capturePaths([{kind:"move",row:3,col:2,from:{row:5,col:0},captured:[{row:4,col:1}]}]));
[ [ { row: 5, col: 0 }, { row: 3, col: 2 } ] ]

What it prints (run when this page was built)

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