Reference · Mazes, arrows and mixed boards
decodeRunfunction
The game a run text says, for maze under rules, or null when it is not a run of that maze: a step into a wall or back onto the line, a stone
on a cell the line is on, on the start or the goal, on no cell at all or twice, or any stones when rules is null. The limit is not asked of a run (it only stops
more being laid, as a lower limit takes no stone off): a run kept under one limit comes back under another. An empty text is a game
with nothing drawn.
Import it
import { decodeRun } from "@johnmorrisdotca/meikyuu";
Definition
function decodeRun<M extends MazeCore>(maze: M, code: string, rules: StoneRules | null): MazeGame<M> | null
Parameters
| Name | Type | Description |
|---|---|---|
maze | M | The valid flat/surface maze or required maze-core fields. |
code | string | The native encoded recipe or saved run. |
rules | StoneRules | null | Native stone limit/reach, or null when disabled. |
Returns
MazeGame<M> | null
The game a run text says, for maze under rules, or null when it is not a run of that maze: a step into a wall or back onto the line, a stone on a cell the line is on, on the start or the goal, on no cell at all or twice, or any stones when rules is null. The limit is not asked of a run (it only stops more being laid, as a lower limit takes no stone off): a run kept under one limit comes back under another. An empty text is a game with nothing drawn.
Examples
import type { MazeRecipe } from "@johnmorrisdotca/meikyuu";
import { buildMaze, decodeRun, encodeRun, newMazeGame } from "@johnmorrisdotca/meikyuu";
const recipe: MazeRecipe = {shape:"square",w:5,h:5,algorithm:"backtracker",mode:"to-goal",seed:42};
const maze = buildMaze(recipe);
const game = newMazeGame(maze);
console.log(decodeRun(maze,encodeRun(game),null)?.path);[]What it prints (run when this page was built)