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

Upgrading

Upgrading and moving from other engines

Keep the 1.x contract and move from engines that change the board directly.

Keep the 1.x contract

The existing rules/go import now has a named entry, and the wildcard import remains available. No SDK move behavior changes. Preserve stored initial settings, move kinds, clock information and opening choices; do not migrate records by editing their finished board.

Coming from mutable board libraries

Keep returned GameState values instead of mutating pieces in place. Convert external coordinates once at the boundary: Narabe uses zero-based top-left row/column while notation counts rows from the bottom and skips the letter I. Use pointName rather than mixing notation and array indices. Ask the engine for legal moves and use its action for the relevant phase.

Verify an upgrade

Replay representative stored games, check final positions/outcomes, and verify declined moves and native highlights. Validate both unclocked and clocked records when your app supports them. The changelog records released fixes and additions, and the embed guide preserves the public integration contract.

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