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
| Name | Type | Description |
|---|---|---|
game | MazeGame<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));