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

How-to

Play arrows and mixed boards

Respect blockers, locks and the result of each attempted removal.

A native arrow attempt

import {makeArrows,newArrowGame,hintArrow,tapArrow,arrowsLeft} from "@johnmorrisdotca/meikyuu";
const board = makeArrows({shape:"square",w:5,h:5,longest:3,seed:42});
const game = newArrowGame(board);
const id = hintArrow(game);
if(id!==null){const next = tapArrow(game,id);console.log(next.result,arrowsLeft(next.game));}
removed 12

Arrows leave along their rays. Other present arrows can block them, and locked arrows also need unlocking. tapArrow returns both the new game and removed/blocked/locked/ignored status; use that result rather than decrementing a host counter yourself. Wrong attempts can consume hearts; undo/restart follow the native state rules.

Two layers in a mixed puzzle

A mixed recipe carries its maze and arrow recipes. The maze's button unlocks the associated arrow layer; withMaze/withArrows update the matching native states. mixedSolved checks the combined completion. The mounted player provides both tabs and keeps actions on the correct layer. A displayed hint is assistance, not a proof that the host actually made a legal move. See PLAYING.md, hintArrow and mixedSolved.

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