replayMovesfunction
Replays a record through the engine: every position it passed through, including the ones a swap-opening decision produced. When the record runs out of decisions while a choice is pending, the chooser is assumed to have kept their colour, which is all a store without seat data can say.
Stops at the first move that will not replay, since the record no longer
fits the rules from there. facts says what the moves cannot: a record
read without them is taken to have had no clock, and a forfeit on it stops
the replay like any other move the rules refuse.
Import it
import { replayMoves } from "@johnmorrisdotca/narabe";
Definition
function replayMoves(start: GameState, moves: readonly MoveInput[], choices?: readonly OpeningChoice[], facts?: ReplayFacts): GameState[]
Parameters
| Name | Type | Description |
|---|---|---|
start | GameState | The initial game position used to replay the record. |
moves | readonly MoveInput[] | The move record in replay order. |
choices (optional) | readonly OpeningChoice[] | Recorded choices made during the opening protocol. |
facts (optional) | ReplayFacts | Whether the original game ran a clock; needed to accept forfeits. |
Returns
GameState[]
The initial position followed by every successfully replayed position; replay stops at the first refused input.
Examples
import { createGame, replayMoves } from "@johnmorrisdotca/narabe";
const state = createGame({variant:"freestyle",size:15});
console.log(replayMoves(state, [{row:7,col:7}]).length);2What it prints (run when this page was built)