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

swapSeatsfunction

Trades seats: the player to move hands over their colour and takes the opponent's stones instead. The board is untouched and the turn passes, so a swap costs you the move you were about to make.

Import it

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

Definition

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

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