Skip to the content

Meikyuu迷宮

Generate seeded mazes and arrow puzzles, follow numbered levels, and play on flat grids or three-dimensional surfaces.

Meikyuu is the Japanese word 迷宮 for labyrinth. About the name

Contents

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

NameTypeDescription
mazeM

The valid flat/surface maze or required maze-core fields.

codestring

The native encoded recipe or saved run.

rulesStoneRules | 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)

View sourceEdit on GitHubMade from the source of @johnmorrisdotca/meikyuu 3.2.0.