Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- 0
- 1 ╬ 3
- 2
- **/
- var c = [ // 0 1 2 3
- '╝', // x x 0b0011 3
- '║', // x x 0b0101 5
- '╗', // x x 0b0110 6
- '╣', // x x x 0b0111 7
- '╚', // x x 0b1001 9
- '═', // x x 0b1010 10
- '╩', // x x x 0b1011 11
- '╔', // x x 0b1100 12
- '╠', // x x x 0b1101 13
- '╦', // x x x 0b1110 14
- '╬' // x x x x 0b1111 15
- // RDLU
- ];
- var e = [ // ENUM
- 0b0011,
- 0b0101,
- 0b0110,
- 0b0111,
- 0b1001,
- 0b1010,
- 0b1011,
- 0b1100,
- 0b1101,
- 0b1110,
- 0b1111,
- ];
- var boxgen_poll = function( u,l,d,r ){
- var sel = e, z = false;
- if( u != undefined )
- {
- u = !u == false; z=true;
- sel = sel.filter( (x)=> (!(x&0b0001) == !u) );
- }
- if( l != undefined )
- {
- l = !l == false; z=true;
- sel = sel.filter( (x)=> (!(x&0b0010) == !l) );
- }
- if( d != undefined )
- {
- d = !d == false; z=true;
- sel = sel.filter( (x)=> (!(x&0b0100) == !d) );
- }
- if( r != undefined )
- {
- r = !r == false; z=true;
- sel = sel.filter( (x)=> (!(x&0b1000) == !r) );
- }
- if( !z )
- {
- sel = Array(2000).fill(0).concat(e);
- }
- return sel[ Math.floor(Math.random()*sel.length) ];
- }
- var boxgen_plot = function( _x, _y ){
- var o = Array(_x*_y)
- .fill(0)
- .map( (x,i)=>i )
- .sort( (x)=>.5-Math.random() ),
- m = Array(_y)
- .fill(null)
- .map( (x)=>Array(_x).fill(null) )
- for( let z = 0, x, y; z<o.length; z++ )
- {
- y = Math.floor( o[z] / _x );
- x = o[z] % _x;
- m[y][x] = boxgen_poll(
- y>0 && m[y-1][x] && (m[y-1][x] & 0b0100),
- x>0 && m[y][x-1] && (m[y][x-1] & 0b1000),
- y<(_y-1) && m[y+1][x] && (m[y+1][x] & 0b0001),
- x<(_x-1) && m[y][x+1] && (m[y][x+1] & 0b0010), ) || 0;
- }
- return m;
- }
- var boxgen_draw = function( x, y )
- {
- return boxgen_plot(x,y).map( (r)=>{
- return r.map(
- (x)=>c[ e.indexOf(x) ] || ' '
- ).join('');
- }).join('\n');
- }
Add Comment
Please, Sign In to add comment