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 · Surface maze rules and geometry

cellsAlongDragfunction

The cells a straight drag from one point to another crosses, in order, by sampling it finely enough that no cell the drag passes through is missed.

Import it

import { cellsAlongDrag } from "@johnmorrisdotca/meikyuu/3d";

Definition

function cellsAlongDrag(frame: SolidFrame, grid: SolidGrid, from: readonly [number, number], to: readonly [number, number]): number[]

Parameters

NameTypeDescription
frameSolidFrame

The current projected surface-view arrays and dimensions.

gridSolidGrid

The valid native flat or surface cell graph.

fromreadonly [number, number]

The start cell or pointer point specified by the signature.

toreadonly [number, number]

The destination pointer point specified by the signature.

Returns

number[]

The cells a straight drag from one point to another crosses, in order, by sampling it finely enough that no cell the drag passes through is missed.

Examples

import type { MazeRecipe } from "@johnmorrisdotca/meikyuu";
import { buildMaze } from "@johnmorrisdotca/meikyuu";
import type { Quat, SolidRecipe } from "@johnmorrisdotca/meikyuu/3d";
import { buildSolidMaze, cellsAlongDrag, createFrame, projectFrame } from "@johnmorrisdotca/meikyuu/3d";

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 solidRecipe: SolidRecipe = {kind:"cube",n:2,algorithm:"backtracker",seed:42};
const solid = buildSolidMaze(solidRecipe);
const solidGrid = solid.grid;
const q: Quat = [0,0,0,1];
const frame = projectFrame(createFrame(solidGrid),solidGrid,q,1,640,480);
console.log(cellsAlongDrag(frame,solidGrid,[320,240],[330,240]));
[ 17 ]

What it prints (run when this page was built)

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