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

MixedRecipetype

THE MIXED PUZZLE: an arrow board with some arrows locked, and a labyrinth beside it with an unlock button hidden deep inside. The labyrinth is an ordinary maze played to its goal (the button); reaching the button unlocks every locked arrow at once. The arrows are the puzzle (clear them all, with the hearts you have); the labyrinth is the way to the arrows that are in the way.

A locked arrow can be in the way of others, so the puzzle cannot be finished without the button, and it can always be: the arrows can all be cleared once they are unlocked, and the labyrinth can always be solved. A level is its two recipes, written <arrows>|<maze>.

Import it

import type { MixedRecipe } from "@johnmorrisdotca/meikyuu";

Definition

type MixedRecipe = {
    readonly arrows: ArrowRecipe;
    readonly maze: MazeRecipe;
};

Members

NameTypeDescription
arrowsArrowRecipe
mazeMazeRecipe

Examples

import type { ArrowRecipe, MazeRecipe, MixedRecipe } from "@johnmorrisdotca/meikyuu";
import { buildMaze, makeArrows } from "@johnmorrisdotca/meikyuu";

const recipe: MazeRecipe = {shape:"square",w:5,h:5,algorithm:"backtracker",mode:"to-goal",seed:42};
const maze = buildMaze(recipe);
const arrowRecipe: ArrowRecipe = {shape:"square",w:5,h:5,longest:3,seed:42};
const arrows = makeArrows(arrowRecipe);
const mixedRecipe: MixedRecipe = {maze:recipe,arrows:arrowRecipe};
const value: MixedRecipe = mixedRecipe;
console.log(value);
{
  maze: {
    shape: 'square',
    w: 5,
    h: 5,
    algorithm: 'backtracker',
    mode: 'to-goal',
    seed: 42
  },
  arrows: { shape: 'square', w: 5, h: 5, longest: 3, seed: 42 }
}

What it prints (run when this page was built)

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