Improved efficiency of blocktype

This commit is contained in:
walterhiggins 2013-01-21 22:18:47 +00:00
parent d57c5868ee
commit a9f03f7d7c

View file

@ -2,283 +2,300 @@ load(__folder + "drone.js");
(function(){ (function(){
var bitmap = { var bitmaps = {
'0':' ### '+ raw: {
' # # '+ '0':' ### '+
' # # '+ ' # # '+
' # # '+ ' # # '+
' ### ', ' # # '+
' ### ',
'1':' # '+
' ## '+
' # '+
' # '+
' ### ',
'2':' ### '+
' # '+
' ### '+
' # '+
' ### ',
'3':' ### '+
' # '+
' ## '+
' # '+
' ### ',
'1':' # '+ '4':' # '+
' ## '+ ' ## '+
' # '+ ' # # '+
' # '+ ' ### '+
' ### ', ' # ',
'5':' ### '+
' # '+
' ### '+
' # '+
' ### ',
'6':' ### '+
' # '+
' ### '+
' # # '+
' ### ',
'7':' ### '+
' # '+
' # '+
' # '+
' # ',
'2':' ### '+ '8':' ### '+
' # '+ ' # # '+
' ### '+ ' ### '+
' # '+ ' # # '+
' ### ', ' ### ',
'3':' ### '+
' # '+
' ## '+
' # '+
' ### ',
'4':' # '+ '9':' ### '+
' ## '+ ' # # '+
' # # '+ ' ### '+
' ### '+ ' # '+
' # ', ' ### ',
'5':' ### '+
' # '+
' ### '+
' # '+
' ### ',
'6':' ### '+
' # '+
' ### '+
' # # '+
' ### ',
'7':' ### '+
' # '+
' # '+
' # '+
' # ',
'8':' ### '+ 'a':' ### '+
' # # '+ ' # # '+
' ### '+ ' ### '+
' # # '+ ' # # '+
' ### ', ' # # ',
'9':' ### '+ 'b':' ## '+
' # # '+ ' # # '+
' ### '+ ' ## '+
' # '+ ' # # '+
' ### ', ' ## ',
'c':' ## '+
' # '+
' # '+
' # '+
' ## ',
'a':' ### '+ 'd':' ## '+
' # # '+ ' # # '+
' ### '+ ' # # '+
' # # '+ ' # # '+
' # # ', ' ## ',
'b':' ## '+ 'e':' ### '+
' # # '+ ' # '+
' ## '+ ' ## '+
' # # '+ ' # '+
' ## ', ' ### ',
'c':' ## '+
' # '+
' # '+
' # '+
' ## ',
'd':' ## '+ 'f':' ### '+
' # # '+ ' # '+
' # # '+ ' ## '+
' # # '+ ' # '+
' ## ', ' # ',
'e':' ### '+ 'g':' ### '+
' # '+ ' # '+
' ## '+ ' # '+
' # '+ ' # # '+
' ### ', ' ### ',
'f':' ### '+ 'h':' # # '+
' # '+ ' # # '+
' ## '+ ' ### '+
' # '+ ' # # '+
' # ', ' # # ',
'g':' ### '+ 'i':' ### '+
' # '+ ' # '+
' # '+ ' # '+
' # # '+ ' # '+
' ### ', ' ### ',
'j':' ### '+
' # '+
' # '+
' # '+
' # ',
'k':' # '+
' # # '+
' ## '+
' # # '+
' # # ',
'l':' # '+
' # '+
' # '+
' # '+
' ### ',
'm':' # # '+
' ### '+
' # # '+
' # # '+
' # # ',
'h':' # # '+ 'n':' ## '+
' # # '+ ' # # '+
' ### '+ ' # # '+
' # # '+ ' # # '+
' # # ', ' # # ',
'i':' ### '+ 'o':' # '+
' # '+ ' # # '+
' # '+ ' # # '+
' # '+ ' # # '+
' ### ', ' # ',
'j':' ### '+
' # '+
' # '+
' # '+
' # ',
'k':' # '+
' # # '+
' ## '+
' # # '+
' # # ',
'l':' # '+
' # '+
' # '+
' # '+
' ### ',
'm':' # # '+
' ### '+
' # # '+
' # # '+
' # # ',
'n':' ## '+ 'p':' ### '+
' # # '+ ' # # '+
' # # '+ ' ### '+
' # # '+ ' # '+
' # # ', ' # ',
'q':' ### '+
' # # '+
' # # '+
' ### '+
' # ',
'o':' # '+ 'r':' ## '+
' # # '+ ' # # '+
' # # '+ ' ## '+
' # # '+ ' # # '+
' # ', ' # # ',
'p':' ### '+ 's':' ## '+
' # # '+ ' # '+
' ### '+ ' ### '+
' # '+ ' # '+
' # ', ' ## ',
'q':' ### '+
' # # '+
' # # '+
' ### '+
' # ',
'r':' ## '+ 't':' ### '+
' # # '+ ' # '+
' ## '+ ' # '+
' # # '+ ' # '+
' # # ', ' # ',
's':' ## '+ 'u':' # # '+
' # '+ ' # # '+
' ### '+ ' # # '+
' # '+ ' # # '+
' ## ', ' ### ',
't':' ### '+ 'v':' # # '+
' # '+ ' # # '+
' # '+ ' # # '+
' # '+ ' # # '+
' # ', ' # ',
'u':' # # '+ 'w':' # # '+
' # # '+ ' # # '+
' # # '+ ' # # '+
' # # '+ ' ### '+
' ### ', ' # # ',
'v':' # # '+ 'x':' # # '+
' # # '+ ' # # '+
' # # '+ ' # '+
' # # '+ ' # # '+
' # ', ' # # ',
'w':' # # '+ 'y':' # # '+
' # # '+ ' # # '+
' # # '+ ' # # '+
' ### '+ ' # '+
' # # ', ' # ',
'z':' ### '+
' # '+
' # '+
' # '+
' ### ',
'!':' # '+
' # '+
' # '+
' '+
' # ',
'x':' # # '+ ':':' '+
' # # '+ ' # '+
' # '+ ' '+
' # # '+ ' # '+
' # # ', ' ',
'y':' # # '+ ';':' '+
' # # '+ ' # '+
' # # '+ ' '+
' # '+ ' # '+
' # ', ' # ',
'z':' ### '+
' # '+
' # '+
' # '+
' ### ',
'!':' # '+
' # '+
' # '+
' '+
' # ',
':':' '+ ',':' '+
' # '+ ' '+
' '+ ' '+
' # '+ ' # '+
' ', ' # ',
';':' '+ '/':' # '+
' # '+ ' # '+
' '+ ' # '+
' # '+ ' # '+
' # ', ' # ',
',':' '+ '+':' '+
' '+ ' # '+
' '+ ' ### '+
' # '+ ' # '+
' # ', ' ',
'-':' '+
' '+
' ### '+
' '+
' ',
'/':' # '+ '.':' '+
' # '+ ' '+
' # '+ ' '+
' # '+ ' '+
' # ', ' # ',
'+':' '+ "'":' # '+
' # '+ ' # '+
' ### '+ ' '+
' # '+ ' '+
' ', ' ',
'-':' '+ ' ':' '+
' '+ ' '+
' ### '+ ' '+
' '+ ' '+
' ', ' '
},
'.':' '+ computed: {}
' '+
' '+
' '+
' # ',
"'":' # '+
' # '+
' '+
' '+
' ',
' ':' '+
' '+
' '+
' '+
' '
}; };
/*
wph 20130121 compute the width, and x,y coords of pixels ahead of time
*/
for (var c in bitmaps.raw){
var bits = bitmaps.raw[c];
var width = bits.length/5;
var bmInfo = {"width": width,"pixels":[]}
bitmaps.computed[c] = bmInfo;
for (var j = 0; j < bits.length; j++){
if (bits.charAt(j) != ' '){
bmInfo.pixels.push([j%width,Math.ceil(j/width)]);
}
}
}
Drone.extend('blocktype', function(message,fg,bg){ Drone.extend('blocktype', function(message,fg,bg){
this.chkpt('blocktext'); this.chkpt('blocktext');
@ -287,25 +304,22 @@ load(__folder + "drone.js");
for (var h = 0;h < lineCount; h++) { for (var h = 0;h < lineCount; h++) {
var line = lines[h]; var line = lines[h];
line = line.toLowerCase().replace(/[^0-9a-z \.\-\+\/\;\'\:\!]/g,""); line = line.toLowerCase().replace(/[^0-9a-z \.\-\+\/\;\'\:\!]/g,"");
print ("lineCount=" + lineCount);
this.up(7*(lineCount-(h+1))); this.up(7*(lineCount-(h+1)));
for (var i =0;i < line.length; i++) { for (var i =0;i < line.length; i++) {
var ch = line.charAt(i) var ch = line.charAt(i)
var bits = bitmap[ch]; var bits = bitmaps.computed[ch];
if (typeof bits == "undefined"){ if (typeof bits == "undefined"){
bits = bitmap[' ']; bits = bitmaps.computed[' '];
} }
var charWidth = bits.length/5; var charWidth = bits.width;
if (typeof bg != "undefined") if (typeof bg != "undefined")
this.box(bg,charWidth,7,1); this.box(bg,charWidth,7,1);
for (var j = 0;j < bits.length;j++){ for (var j = 0;j < bits.pixels.length;j++){
this.chkpt('btbl'); this.chkpt('btbl');
if (bits.charAt(j) != ' '){ var x = bits.pixels[j][0];
var x = j % charWidth; var y = bits.pixels[j][1];
var y = Math.ceil(j/charWidth); this.up(6-y).right(x).box(fg);
this.up(6-y).right(x).box(fg);
}
this.move('btbl'); this.move('btbl');
} }
this.right(charWidth-1); this.right(charWidth-1);