Guest User

Untitled

a guest
Jan 21st, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.31 KB | None | 0 0
  1. /**
  2.  
  3. 0
  4.  
  5. 1 ╬ 3
  6.  
  7. 2
  8.  
  9. **/
  10.  
  11.  
  12. var c = [ // 0 1 2 3
  13. '╝', // x x 0b0011 3
  14. '║', // x x 0b0101 5
  15. '╗', // x x 0b0110 6
  16. '╣', // x x x 0b0111 7
  17. '╚', // x x 0b1001 9
  18. '═', // x x 0b1010 10
  19. '╩', // x x x 0b1011 11
  20. '╔', // x x 0b1100 12
  21. '╠', // x x x 0b1101 13
  22. '╦', // x x x 0b1110 14
  23. '╬' // x x x x 0b1111 15
  24.  
  25. // RDLU
  26. ];
  27.  
  28. var e = [ // ENUM
  29. 0b0011,
  30. 0b0101,
  31. 0b0110,
  32. 0b0111,
  33. 0b1001,
  34. 0b1010,
  35. 0b1011,
  36. 0b1100,
  37. 0b1101,
  38. 0b1110,
  39. 0b1111,
  40. ];
  41.  
  42. var boxgen_poll = function( u,l,d,r ){
  43. var sel = e, z = false;
  44. if( u != undefined )
  45. {
  46. u = !u == false; z=true;
  47. sel = sel.filter( (x)=> (!(x&0b0001) == !u) );
  48. }
  49. if( l != undefined )
  50. {
  51. l = !l == false; z=true;
  52. sel = sel.filter( (x)=> (!(x&0b0010) == !l) );
  53. }
  54. if( d != undefined )
  55. {
  56. d = !d == false; z=true;
  57. sel = sel.filter( (x)=> (!(x&0b0100) == !d) );
  58. }
  59. if( r != undefined )
  60. {
  61. r = !r == false; z=true;
  62. sel = sel.filter( (x)=> (!(x&0b1000) == !r) );
  63. }
  64. if( !z )
  65. {
  66. sel = Array(2000).fill(0).concat(e);
  67. }
  68. return sel[ Math.floor(Math.random()*sel.length) ];
  69. }
  70.  
  71. var boxgen_plot = function( _x, _y ){
  72.  
  73. var o = Array(_x*_y)
  74. .fill(0)
  75. .map( (x,i)=>i )
  76. .sort( (x)=>.5-Math.random() ),
  77. m = Array(_y)
  78. .fill(null)
  79. .map( (x)=>Array(_x).fill(null) )
  80. for( let z = 0, x, y; z<o.length; z++ )
  81. {
  82. y = Math.floor( o[z] / _x );
  83. x = o[z] % _x;
  84. m[y][x] = boxgen_poll(
  85. y>0 && m[y-1][x] && (m[y-1][x] & 0b0100),
  86. x>0 && m[y][x-1] && (m[y][x-1] & 0b1000),
  87. y<(_y-1) && m[y+1][x] && (m[y+1][x] & 0b0001),
  88. x<(_x-1) && m[y][x+1] && (m[y][x+1] & 0b0010), ) || 0;
  89. }
  90. return m;
  91. }
  92.  
  93. var boxgen_draw = function( x, y )
  94. {
  95. return boxgen_plot(x,y).map( (r)=>{
  96. return r.map(
  97. (x)=>c[ e.indexOf(x) ] || ' '
  98. ).join('');
  99. }).join('\n');
  100. }
Add Comment
Please, Sign In to add comment