Nanoprogrammed Penultimate Musicianship
    Wondering what’s next for npm?Check out our public roadmap! »

    generate-maze

    1.0.2 • Public • Published

    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:

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

    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

    Install

    npm i generate-maze

    DownloadsWeekly Downloads

    17

    Version

    1.0.2

    License

    MIT

    Unpacked Size

    17.1 kB

    Total Files

    5

    Last publish

    Collaborators

    • avatar