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

encodeRunfunction

A run kept as one short text: the line as its steps (lineToSteps), and, if any stones are down, a ~ and their cells in base 36 joined by dots, such as 0231~1a.2f. The same text is the same run on every device and however the board is turned. A run has no history, so it comes back with one Undo, which takes the whole of it back to a maze with nothing drawn (what a player who left a half-drawn maze and came back expects: it can be cleared).

Import it

import { encodeRun } from "@johnmorrisdotca/meikyuu";

Definition

function encodeRun(game: MazeGame<MazeCore>): string

Parameters

NameTypeDescription
gameMazeGame<MazeCore>

The current immutable native game state.

Returns

string

A run kept as one short text: the line as its steps (lineToSteps), and, if any stones are down, a ~ and their cells in base 36 joined by dots, such as 0231~1a.2f. The same text is the same run on every device and however the board is turned. A run has no history, so it comes back with one Undo, which takes the whole of it back to a maze with nothing drawn (what a player who left a half-drawn maze and came back expects: it can be cleared).

Examples

import type { MazeRecipe } from "@johnmorrisdotca/meikyuu";
import { buildMaze, 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(encodeRun(game));

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