A 2D grid generator using Voronoi method for procedurally typing tiles.
- prando For deterministic pseudo-random number generation.
$ npm i --save zimmed/vorgen
import Vorgen from '@zimmed/vorgen';const Vorgen = require('@zimmed/vorgen').default;Just don't do it. It's 2019, stop using javascript without a proper development environment.
const printGrid = (g) => console.log(
[
Array(g[0].length + 2).fill('0').join(''),
...g.map(r => `0${r.map(c => c.type).join('')}0`),
Array(g[0].length + 2).fill('0').join(''),
].join('\n')
);
Vorgen.createGrid(80, 20, [
{ type: ' ', weight: 2 },
{ type: '#', weight: 2 },
{ type: '/' },
], { seed: 'zimmed' })
.then(printGrid);OUTPUT
0000000000000000000000000000000000000000000000000000000000000000000000000000000000
0 ////#############################################0
0 ////####################/#########################0
0 #////####################////######################0
0 ##/////###################////////###################0
0 ####////####################///////////################0
0 ## #####/////###################///////////////#############0
0 ###########/////############////////////////////////###########0
0 ############/////########///////////////////////////// ######0
0 #############/////#######///////////////////////////// 0
0 #############//////#######///////////////////////////// 0
0 ##############/////#######///////////////////////////// 0
0 ###############//////#######///////////////////////////// 0
0 #################/////######///////////////////////////// 0
0 ##################///#######///////////////////////////// 0
0 ###################//#######///////////////////////////// 0
0 ####################//######////////////////////////////// 0
0 ###########################///////////////////////////// 0
0 #########################///////////////////////////// 0
0 ########################//////////////////////////// 0
0 #######################//////////////////////////// 0
0000000000000000000000000000000000000000000000000000000000000000000000000000000000
See demo.ts and demo.output.
import Vorgen from '@zimmed/vorgen/src';
// const Vorgen = require('@zimmed/vorgen/src').default;
...Whatever man, it's math. No one owns math. Use it as you see fit.