61 lines
1.1 KiB
JavaScript
61 lines
1.1 KiB
JavaScript
var colors = require('colors');
|
|
|
|
module.exports.renderBits = renderBits;
|
|
|
|
|
|
|
|
function renderBits(bits,width,inverse){
|
|
var bottom = '▄';
|
|
var both = '█';
|
|
var top = '▀';
|
|
|
|
var bit = 0,nextRow,_b,_t,out = ' ',_debug = [],row = 0,i,j;
|
|
//add one row to out for top framing
|
|
for(i=0;i<width;++i) {
|
|
out += " ";
|
|
}
|
|
out += " \n";
|
|
for(i = 0;i<(width/2);i++){
|
|
//console.error('row ',i);
|
|
//_debug[row] = [];
|
|
//_debug[row+1] = [];
|
|
out += " ";
|
|
|
|
for(j = 0;j<width;j++){
|
|
//console.log('column ',j);
|
|
nextRow = bit+width;
|
|
c = ' ';
|
|
_t = 0;
|
|
_b = 0;
|
|
|
|
if(bits[bit]) {
|
|
_t = 1;
|
|
c = '\033[53m'+top;
|
|
}
|
|
|
|
if(bits[nextRow]){
|
|
_b = 1;
|
|
c = bottom.underline;
|
|
}
|
|
|
|
|
|
if(_b && _t) {
|
|
c = '\033[53m'+(both.underline);
|
|
}
|
|
//_debug[row].push(_t+'');
|
|
//_debug[row+1].push(_b+'');
|
|
|
|
|
|
out += c;
|
|
bit++;
|
|
}
|
|
bit += width;
|
|
//console.log('advancing bit to ',bit);
|
|
row += 2;
|
|
out += " \n";
|
|
}
|
|
|
|
//defaults tp inverse. this makes sense for people with dark terminals.
|
|
return inverse?out:out.inverse;
|
|
}
|
|
|