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

shrinkBoardfunction

Returns the game on a smaller board, or the state unchanged when the ring that would be removed is in use. Everything shifts inwards by the same offset growing shifts out by, so the stones keep their positions relative to each other and the centre stays the centre.

Import it

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

Definition

function shrinkBoard(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, shrinkBoard } from "@johnmorrisdotca/narabe";

const state = createGame({variant:"freestyle",size:15});
console.log(shrinkBoard(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.