normaliseSettingsfunction
Settings that agree with their variant: a pinned line length wins over the player's choice, an opening the variant does not offer falls back to free, and a handicap rules out the openings that swap colours. Applied on creation so a state can never carry a contradiction.
Import it
import { normaliseSettings } from "@johnmorrisdotca/narabe";
Definition
function normaliseSettings(settings: GameSettings): GameSettings
Parameters
| Name | Type | Description |
|---|---|---|
settings | GameSettings | The native game settings to interpret. |
Returns
GameSettings
A copy of the settings normalized to the variant, opening and handicap rules.
Examples
import { createGame, normaliseSettings } from "@johnmorrisdotca/narabe";
const state = createGame({variant:"freestyle",size:15});
console.log(normaliseSettings(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'
}What it prints (run when this page was built)