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

MixedBoardtype

A native mixed recipe with its flat maze and arrow layers.

Import it

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

Definition

type MixedBoard = {
    readonly recipe: MixedRecipe;
    readonly arrows: ArrowBoard;
    readonly maze: Maze;
};

Members

NameTypeDescription
recipeMixedRecipe
arrowsArrowBoard
mazeMaze

Examples

import type { ArrowRecipe, MazeRecipe, MixedBoard, MixedRecipe } from "@johnmorrisdotca/meikyuu";
import { buildMaze, buildMixed, 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 mixed = buildMixed(mixedRecipe);
const value: MixedBoard = mixed;
console.log(value);
{
  recipe: {
    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 }
  },
  arrows: {
    recipe: { shape: 'square', w: 5, h: 5, longest: 3, seed: 42 },
    w: 5,
    h: 5,
    inShape: [
      true, true, true, true, true,
      true, true, true, true, true,
      true, true, true, true, true,
      true, true, true, true, true,
      true, true, true, true, true
    ],
    arrows: [
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object], [Object],
      [Object]
    ],
    locked: [
      false, false, false,
      false, false, false,
      false, false, false,
      false, false, false,
      false
    ]
  },
  maze: {
    recipe: {
      shape: 'square',
      w: 5,
      h: 5,
      algorithm: 'backtracker',
      mode: 'to-goal',
      seed: 42
    },
    grid: {
      shape: 'square',
      w: 5,
      h: 5,
      centres: [Array],
      sides: [Array],
      box: [Object],
      at: [Function: at],
      cells: 25,
      neighbours: [Array]
    },
    links: [
      [Array], [Array], [Array],
      [Array], [Array], [Array],
      [Array], [Array], [Array],
      [Array], [Array], [Array],
      [Array], [Array], [Array],
      [Array], [Array], [Array],
      [Array], [Array], [Array],
      [Array], [Array], [Array],
      [Array]
    ],
    start: 6,
    goal: 15,
    entrance: null,
    exit: null,
    keys: []
  }
}

What it prints (run when this page was built)

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