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

newMixedGamefunction

Create the native game states for both layers of a mixed board.

Import it

import { newMixedGame } from "@johnmorrisdotca/meikyuu";

Definition

function newMixedGame(board: MixedBoard): MixedGame

Parameters

NameTypeDescription
boardMixedBoard

The native arrow board or named maze appearance specified by this signature.

Returns

MixedGame

Create the native game states for both layers of a mixed board.

Examples

import type { ArrowRecipe, MazeRecipe, MixedRecipe } from "@johnmorrisdotca/meikyuu";
import { buildMaze, buildMixed, makeArrows, newMixedGame } 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);
console.log(newMixedGame(mixed));
{
  arrows: {
    board: {
      recipe: [Object],
      w: 5,
      h: 5,
      inShape: [Array],
      arrows: [Array],
      locked: [Array]
    },
    present: [
      true, true, true,
      true, true, true,
      true, true, true,
      true, true, true,
      true
    ],
    hearts: 3,
    heartsAtStart: 3,
    unlocked: true,
    status: 'playing',
    taken: [],
    mistakes: 0
  },
  maze: {
    maze: {
      recipe: [Object],
      grid: [Object],
      links: [Array],
      start: 6,
      goal: 15,
      entrance: null,
      exit: null,
      keys: []
    },
    path: [],
    collected: [],
    solved: false,
    drawing: false,
    strokes: 0,
    undo: [],
    stones: [],
    rules: null
  }
}

What it prints (run when this page was built)

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