0.4.0 • Published 10 years ago

nylira-maze v0.4.0

Weekly downloads
2
License
MIT
Repository
github
Last release
10 years ago

nylira-maze

A JavaScript library for generating maze data.

_________________________________________________________________________________
|█|█|█|█|█|█|█|█|█|█|__ |   |█|█|█|█|█|█|█|█|   |  __ |   |█|█|█|  ______ |█|█|█|
|█|█|█|█|█|█|█|█|  __ |___|________ |█|█|█|█| |___|█| | |_________|█|█|█| |█|█|█|
|█|█|█|█|█|█|█|█|___|______ |█|█|█|____ |█|█| |█|█|█|___|█|█|█|  __ |█|█| |█|   |
|█|█|█|█|█|█|█|█|█|█|█|█|  _|  ____ |  _|█|█| |█|█|█|   |  _____|  _|  ___|  _| |
|   |█|█|█|█|█|█|█|█|█|█|_____|█|   |__ |█|█| |█|█|█| |___|█|  ___|█|____ | |  _|
| | |█|█|█|█|█|█|█|█|█|█|█|█|█|█| | |█|_______|█|█|  _|█|█|  _|█|█|█|   | | | |█|
| |______ |   |█|█|█|█|█|█|█|█|█| |________ |█|█|█|______ |___________| |___| |█|
| |█|   |___| |█|█|█|█|█|█|█|█|█| |█|█|█|█| |  ________ |__ |█|█|█|█|█|__ |█|__ |
| |█| | |█|█|________________ |█| |█|█|█|█|___|█|█|█|█|_____|█|█|█|█|█|█| |   | |
|_____|______ |█|█|█|█|  _____|█| |█|█|█|█|█|█|█|  ________ |█|█|█|█|█|█| | | | |
|  __ |█|█|█| |█|█|█|█| |  __ |█| |█|█|█|█|█|█|█|____ |█|█|______ |█|█|█|___| | |
|__ | |  _____|█|█|   | | |█|_____|   |█|█|█|█|█|█|█| |█|█|  _____|█|█|█|█|█| | |
|  _|___|  _________| |___|█|  __ | |__________ |   | |█|█| |█|   |█|_________| |
|______ | |█|█|█|█|█| |   |█| |  _| |█|█|█|█|█| | |___|█|█|_____| |█|█|█|█|█|  _|
|  _____| |█|█|█|█|█| | | |█| |_____|█|█|█|█|█| | |█|█|█|█|  _____|█|█|█|█|█|__ |
|  _______|█|█|█|█|█| | |__ |__ |█|█|█|█|█|█|█| | |█|█|█|█| |█|█|█|█|█|█|█|█|█| |
|__ |█|█|█|█|█|█|█|█|___|█| |█|______ |█|█|█|█| | |█|█|█|█|__________ |█|█|█|█| |
|  _|█|█|█|█|█|█|█|█|█|█|█| |█|█|  ___|   |█|█|___|█| |█|█|█|█|█|  ___|█|█|   | |
| |   |  ___|█|█|█|█|█|█|█| |█|█|____ | | |█|█|█|   | |█|█|█|█|█|___________| | |
|___|___|█|█|█|█|█|█|█|█|█|_____________|_________|___|█|█|█|█|█|█|█|█|█|█|█|___|

Installation

npm i nylira-maze --save

Usage

Basic usage:

var maze = require('nylira-maze')

// returns a 2d array of values for a 10x10 maze
maze()

// returns a 2d array of values for a 20x20 maze
maze(20)

// returns a 2d array of values for a 15x23 maze
maze(15, 23)

Parameters

maze(31, 23, 'growing-tree:newest', 0.65, undefined, true)
  • Parameter 1: Width.
  • Parameter 2: Height.
  • Parameter 3: The maze generation algorithm. Options:
    • "growing-tree": The Growing Tree algorithm. Defaults to random.
    • "growing-tree:random": Lots of dead ends, similar to Prim's Algorithm
    • "growing-tree:newest": Long windy passages, similar to "backtracker"
    • "growing-tree:middle": Lots of long straight passages.
    • "growing-tree:oldest": Only long straight passages.
    • "backtracker": The Recursive Backtracker algorithm. Tends towards long and twisted passages.
  • Parameter 4: Sparseness. A sparse maze will have some of its nodes removed. If you type in a value less than 1, e.g. 0.25, the maze will be 25% sparse. If you enter an integer value more than 1, e.g. 5, the maze will remove 5 nodes from each of its dead ends.
  • Parameter 5: The integer seed for the maze. Putting a value here will guaranteee you can recreate the maze over and over again.
  • Parameter 6: You can preview the grid by passing in true as the fifth parameter.

That function call above will generate the following:

_______________________________________________________________
|█|█|█|____________________ |█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|
|█|█|█|█|█|█|█|█|█|█|█|█|█|__ |  _|█|█|█|█|█| |█|█|█|█|█|█|█|█|
|█|█|█|█|█|█|█|█|█|█|█|█|█|█|__ |█|█|█|█|█|  _|█|█|█|█|█|█|█|█|
|█|█|█|____ |█|█|█|█|█|█|█|█|█| |█|█|█|█|  _|█|█|█|█|  ___|█|█|
|█|█|█|█|█|________ |█|█|__ |█| |█|█|█|█| |█|█|█|█|  _|█|█|█|█|
|█|█|█|█|█|█|█|█|█| |█|█|█|__ |____ |  ________  ___|█|█|█|█|█|
|█|█|█|█|█| |█|█|  ______ |  ______  _|█|█|█|█|_____|█|█|█|█|█|
|█|█|█|█|█|__ |   |█|█|█|___|█|█|  ____   |█|█|█|█|█|█|█|█|█|█|
|█|____  ____  _| |█|█|█|█|█|  __ |█|█| |____ |█|█|█|█|█|█|█|█|
|█|█|  _|█|█| |█|_|█|█|█|█|  _|█|   |█| |█|█|  _________|█|█|█|
|█|___|█|█|█| |█|█|█|  __  _|█|█| | |█|__ |█| |█|█|█|█|█|█|█|█|
|█|█|█|█|█|█|_|█|█|█| |█|_|█|█|  _| |█|█| |█|__ |█|█|█|█|█|█|█|
|█|█|█|█|█|█|█|█|█|  _|█|█|█|█| |█| |█|█|____ |__  __________ |
|█|█|█|█|█|█|█|█|█| |█|█|█|█|█| |█| |█|█|█|  _|█|__   |█|█|   |
|█|█|█|█|█|█| |█|  _|█|█|█|  ___|█|   |█|█| |█|█|█| | |█|█| | |
|█|█|█|__  ______ |█|█|█|█| |█|█|█| | |█|█| |█|█|█| | |█|█| | |
|█|█|█|█| |█|█|█| |█|█|█|█| |█|█|  _| |█|█| |█|█|█| | |█|█| |_|
|█|  _____|█|█|█| |█|█|_____|█|  _|█| |█|█| |█|█|  _| |█|█| |█|
|█|_|█|█|  __ |   |█|█|█|█|█|█| |█|█|_____|____ | |█|_|█|█|_|█|
|█|█|█|___|█|___|_|█|█|█|█|█|    __ |█|█|█|█|█| |_|█|█|█|█|█|█|
|█|█|█|█|█|█|█|█|█|█|█|█|█|█|_|_|█|_|█|█|█|█|█|_|█|█|█|█|█|█|█|
|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|
|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|█|

The maze at the top of the README was generated with this function:

maze(40, 20, 'growingtree:newest', 0.47, undefined, true)

Test

Check out a demo.

npm test

License

MIT

0.4.0

10 years ago

0.3.4

10 years ago

0.3.2

10 years ago

0.3.1

10 years ago

0.3.0

10 years ago

0.2.8

10 years ago

0.2.7

10 years ago

0.2.6

10 years ago

0.2.5

10 years ago

0.2.4

10 years ago

0.2.3

10 years ago

0.2.2

10 years ago

0.2.1

10 years ago

0.2.0

10 years ago

0.1.6

10 years ago

0.1.5

10 years ago

0.1.4

10 years ago

0.1.3

10 years ago

0.1.2

10 years ago