Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

generate-maze

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

generate-maze

Maze generator using a JavaScript implementation of Eller's Algorithm, as described here: http://www.neocomputer.org/projects/eller.html

  • 1.1.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
37
decreased by-55.42%
Maintainers
1
Weekly downloads
 
Created
Source

generate-maze

Maze generator using a JavaScript implementation of Eller's Algorithm, as described here: http://www.neocomputer.org/projects/eller.html

This algorithm creates 'perfect' mazes, which guarantees a single path between any two cells, such as:

+---+---+---+---+---+---+---+
|           |           |   |
+---+   +---+   +   +   +   +
|   |   |       |   |       |
+   +   +   +   +   +   +   +
|       |   |   |   |   |   |
+   +---+   +   +---+---+   +
|   |   |   |   |   |   |   |
+   +   +   +   +   +   +   +
|   |       |   |   |       |
+   +---+   +---+   +---+---+
|   |   |   |       |       |
+   +   +   +   +---+   +   +
|                       |   |
+---+---+---+---+---+---+---+

Another Web example

Note: This library does not create ASCII-art or other text visualizations.
That part is up to you.

This library generates a two-dimensional array of maze cells, each with the following properties:

    {
      x: 4,          // Horizontal position, integer
      y: 7,          // Vertical position, integer
      top: false,    // Top/Up has a wall/blocked if true, boolean 
      left: false,   // Left has a wall/blocked if true, boolean
      bottom: true,  // Bottom/Down has a wall/blocked if true, boolean
      right: true,   // Right has a wall/blocked if true, boolean
      set: 5         // Set # used to generate maze, can be ignored
    }

Installation

npm install generate-maze

Usage

Example assumes you are using a module system such as node, Webpack or Browserify.

const generator = require('generate-maze');

// Width and height == 4
const maze = generator(4);

// Width == 8, height == 4
const maze = generator(8, 4);

// Width == 8, height == 4, maze edges are open
const maze = generator(8, 4, false);

// Width == 8, height == 4, maze edges are closed, using random seed 
const maze = generator(8, 4, true, 123456);

_Note: the maze is an array of rows, so to access individual cells by their x/y positions, you need to specify the row first. For example:

maze[y][x]

Keywords

FAQs

Package last updated on 24 Jul 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc