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

growBoardfunction

Returns the game on a larger board, or the state unchanged when it cannot grow. Every stone, every recorded move and the winning line all move together, so the record still replays to the position on the screen.

Import it

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

Definition

function growBoard(state: GameState): GameState

Parameters

NameTypeDescription
stateGameState

The current immutable game position.

Returns

GameState

The resulting position; a refused or inapplicable action leaves the input position unchanged.

Examples

import { createGame, growBoard } from "@johnmorrisdotca/narabe";

const state = createGame({variant:"freestyle",size:15});
console.log(growBoard(state));
{
  settings: {
    size: 15,
    winLength: 5,
    variant: 'freestyle',
    opening: 'free',
    handicap: {
      stone: null,
      doubleThree: false,
      doubleFour: false,
      overline: false,
      exactLine: false,
      openLine: false,
      longerLine: false,
      singleStone: false,
      noCaptures: false,
      secondStoneExclusion: 0
    },
    headStart: { stone: null, freeTurns: 0, traditional: 0 },
    seed: 0,
    capturesToWin: 10,
    firstPlayer: 'black',
    obstacles: 'none',
    allowUndo: true,
    allowSkip: false,
    allowSwap: false,
    allowResize: false,
    swapsPerSeat: 1,
    drawLimit: 'none'
  },
  board: [
    null, null, null, null, null, null, null, null, null, null,
    null, null, null, null, null, null, null, null, null, null,
    null, null, null, null, null, null, null, null, null, null,
    null, null, null, null, null, null, null, null, null, null,
    null, null, null, null, null, null, null, null, null, null,
    null, null, null, null, null, null, null, null, null, null,
    null, null, null, null, null, null, null, null, null, null,
    null, null, null, null, null, null, null, null, null, null,
    null, null, null, null, null, null, null, null, null, null,
    null, null, null, null, null, null, null, null, null, null,
    ... 125 more items
  ],
  moves: [],
  opener: 'black',
  seats: { black: 'one', white: 'two' },
  swapsUsed: { one: 0, two: 0 },
  captures: { black: 0, white: 0 },
  opening: { stage: 'done', actor: null, choices: [] },
  toPlay: 'black',
  pendingTwist: false,
  kings: [],
  chainAt: null,
  koPoint: null,
  status: 'playing',
  winner: null,
  winBy: null,
  winningLine: []
}

What it prints (run when this page was built)

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