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 · SVG grids

doorPlacefunction

Where a door is: the middle of its gap in the wall, and the way out through it as a unit vector.

Import it

import { doorPlace } from "@johnmorrisdotca/meikyuu/draw";

Definition

function doorPlace(grid: Grid, door: Door): { x: number; y: number; dx: number; dy: number; }

Parameters

NameTypeDescription
gridGrid

The valid native flat or surface cell graph.

doorDoor

The cell and boundary side of an entrance or exit.

Returns

{ x: number; y: number; dx: number; dy: number; }

Where a door is: the middle of its gap in the wall, and the way out through it as a unit vector.

Examples

import type { MazeRecipe } from "@johnmorrisdotca/meikyuu";
import { boundaryCells, buildMaze } from "@johnmorrisdotca/meikyuu";
import { doorPlace } from "@johnmorrisdotca/meikyuu/draw";

const recipe: MazeRecipe = {shape:"square",w:5,h:5,algorithm:"backtracker",mode:"to-goal",seed:42};
const maze = buildMaze(recipe);
const grid = maze.grid;
const cell = boundaryCells(grid)[0];
const door = {cell,side:grid.sides[cell].findIndex(side=>side.to<0)};
console.log(doorPlace(grid,door));
{ x: 0.5, y: 0, dx: 0, dy: -1 }

What it prints (run when this page was built)

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