UNPKG

nylira-maze

Version:

A library for generating mazes.

103 lines (80 loc) 6.89 kB
# 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