diff --git a/Readme.md b/Readme.md index c803b1b..c88b1ee 100644 --- a/Readme.md +++ b/Readme.md @@ -64,9 +64,15 @@ const maze = generator(8, 4, false); // Width == 8, height == 4, maze edges are closed, using random seed const maze = generator(8, 4, true, 123456); -``` +// Width == 8, height == 8, edges are open, default seed 1 +// and texture == 0.9 (very horizontal maze) +const maze = generator(8, 8, false, 1, 0.9); +// Width == 8, height == 8, edges are open, default seed 1 +// and texture == 0.1 (very vertical maze) +const maze = generator(8, 8, false, 1, 0.1); +``` _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: diff --git a/src/generate-maze.ts b/src/generate-maze.ts index 2eaaca1..ad2a66e 100644 --- a/src/generate-maze.ts +++ b/src/generate-maze.ts @@ -112,7 +112,7 @@ function addSetExits(row: Cell[], nextRow: Cell[], random: () => number) { }); } -function generate(width = 8, height = width, closed = true, seed = 1) { +function generate(width = 8, height = width, closed = true, seed = 1, texture = 0.5) { const random = mulberry32(seed); const maze = []; const r = range(width); @@ -135,7 +135,7 @@ function generate(width = 8, height = width, closed = true, seed = 1) { // All rows except last: initial(maze).forEach((row, y) => { // TODO initial temp? populateMissingSets(row, random); - mergeRandomSetsIn(row, random); + mergeRandomSetsIn(row, random, texture); addSetExits(row, maze[y + 1], random); });