Skip to content

Instantly share code, notes, and snippets.

@tedivm
Created May 26, 2018 01:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tedivm/7567365bf6944da4dc9fbcc7b66afd6a to your computer and use it in GitHub Desktop.
Save tedivm/7567365bf6944da4dc9fbcc7b66afd6a to your computer and use it in GitHub Desktop.
GridText
// http://www.urbanfonts.com/fonts/Arcade.htm
var font = {}
font['a'] = [
[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0],
[0,1,1,1,1,1,0],
[0,0,0,0,0,1,1],
[0,1,1,1,1,1,1],
[1,1,0,0,0,1,1],
[0,1,1,1,1,1,1]
]
font['b'] = [
[1,1,0,0,0,0,0],
[1,1,0,0,0,0,0],
[1,1,1,1,1,1,0],
[1,1,0,0,0,1,1],
[1,1,0,0,0,1,1],
[1,1,0,0,0,1,1],
[1,1,1,1,1,1,0]
]
font['c'] = [
[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0],
[0,1,1,1,1,1,0],
[1,1,0,0,0,1,1],
[1,1,0,0,0,0,0],
[1,1,0,0,0,1,1],
[0,1,1,1,1,1,0],
]
font['d'] = [
[0,0,0,0,0,1,1],
[0,0,0,0,0,1,1],
[0,1,1,1,1,1,1],
[1,1,0,0,0,1,1],
[1,1,0,0,0,1,1],
[1,1,0,0,0,1,1],
[0,1,1,1,1,1,1],
]
font['e'] = [
[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0],
[0,1,1,1,1,1,0],
[1,1,0,0,0,1,1],
[1,1,1,1,1,1,1],
[1,1,0,0,0,0,0],
[0,1,1,1,1,1,0]
]
font['f'] = [
[0,0,1,1,1],
[0,1,1,0,0],
[1,1,1,1,0],
[0,1,1,0,0],
[0,1,1,0,0],
[0,1,1,0,0],
[0,1,1,0,0],
]
font['g'] = [
[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0],
[0,1,1,1,1,1,0],
[1,1,0,0,0,1,1],
[1,1,0,0,0,1,1],
[1,1,0,0,0,1,1],
[0,1,1,1,1,1,1],
[0,0,0,0,0,1,1],
[0,1,1,1,1,1,0]
]
font['h'] = [
[1,1,0,0,0,0,0],
[1,1,0,0,0,0,0],
[1,1,1,1,1,1,0],
[1,1,0,0,0,1,1],
[1,1,0,0,0,1,1],
[1,1,0,0,0,1,1],
[1,1,0,0,0,1,1],
]
font['i'] = [
[1,1],
[0,0],
[1,1],
[1,1],
[1,1],
[1,1],
[1,1],
]
font['j'] = [
[0,0,1,1],
[0,0,0,0],
[0,1,1,1],
[0,0,1,1],
[0,0,1,1],
[0,0,1,1],
[0,0,1,1],
[0,0,1,1],
[1,1,1,0]
]
font['k'] = [
[1,1,0,0,0,0],
[1,1,0,0,0,0],
[1,1,0,0,1,1],
[1,1,0,1,1,0],
[1,1,1,0,0,0],
[1,1,0,1,1,0],
[1,1,0,0,1,1],
]
font['l'] = [
[1,1],
[1,1],
[1,1],
[1,1],
[1,1],
[1,1],
[1,1],
]
font['m'] = [
[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0],
[1,1,1,0,1,1,0],
[1,1,0,1,0,1,1],
[1,1,0,1,0,1,1],
[1,1,0,1,0,1,1],
[1,1,0,1,0,1,1],
]
font['n'] = [
[0,0,0,0,0,0],
[0,0,0,0,0,0],
[1,1,1,1,1,0],
[1,1,0,0,1,1],
[1,1,0,0,1,1],
[1,1,0,0,1,1],
[1,1,0,0,1,1],
]
font['o'] = [
[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0],
[0,1,1,1,1,1,0],
[1,1,0,0,0,1,1],
[1,1,0,0,0,1,1],
[1,1,0,0,0,1,1],
[0,1,1,1,1,1,0],
]
font['p'] = [
[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0],
[1,1,1,1,1,1,0],
[1,1,0,0,0,1,1],
[1,1,0,0,0,1,1],
[1,1,0,0,0,1,1],
[1,1,1,1,1,1,0],
[1,1,0,0,0,0,0],
[1,1,0,0,0,0,0]
]
font['q'] = [
[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0],
[0,1,1,1,1,1,1],
[1,1,0,0,0,1,1],
[1,1,0,0,0,1,1],
[1,1,0,0,0,1,1],
[0,1,1,1,1,1,1],
[0,0,0,0,0,1,1],
[0,0,0,0,0,1,1]
]
font['r'] = [
[0,0,0,0,0],
[0,0,0,0,0],
[1,1,0,1,1],
[1,1,1,0,0],
[1,1,0,0,0],
[1,1,0,0,0],
[1,1,0,0,0],
]
font['s'] = [
[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0],
[0,1,1,1,1,1,0],
[1,1,0,0,0,0,0],
[0,1,1,1,1,1,0],
[0,0,0,0,0,1,1],
[0,1,1,1,1,1,0]
]
font['t'] = [
[0,0,0,0,0],
[0,1,1,0,0],
[1,1,1,1,0],
[0,1,1,0,0],
[0,1,1,0,0],
[0,1,1,0,0],
[0,0,1,1,1],
]
font['u'] = [
[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0],
[1,1,0,0,0,1,1],
[1,1,0,0,0,1,1],
[1,1,0,0,0,1,1],
[1,1,0,0,0,1,1],
[0,1,1,1,1,1,1],
]
font['v'] = [
[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0],
[1,1,0,0,0,1,1],
[1,1,0,0,0,1,1],
[1,1,0,0,0,1,1],
[0,1,1,0,1,1,0],
[0,0,1,1,1,0,0]
]
font['w'] = [
[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0],
[1,1,0,0,0,1,1],
[1,1,0,0,0,1,1],
[1,1,0,0,0,1,1],
[1,1,0,1,0,1,1],
[0,0,1,1,0,1,1]
]
font['x'] = [
[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0],
[1,1,0,0,0,1,1],
[0,1,1,0,1,1,0],
[0,0,1,1,1,0,0],
[0,1,1,0,1,1,0],
[1,1,0,0,0,1,1],
]
font['y'] = [
[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0],
[1,1,0,0,0,1,1],
[1,1,0,0,0,1,1],
[1,1,0,0,0,1,1],
[1,1,0,0,0,1,1],
[0,1,1,1,1,1,1],
[0,0,0,0,0,1,1],
[0,1,1,1,1,1,0]
]
font['z'] = [
[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0],
[1,1,1,1,1,1,1],
[0,0,0,0,1,1,0],
[0,0,0,1,1,0,0],
[0,0,1,1,0,0,0],
[0,1,1,0,0,0,0],
[1,1,1,1,1,1,1]
]
font['-'] = [
[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],
[1,1,1,1,1,1,1],
[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0],
[0,0,0,0,0,0,0]
]
font[' '] = [
[0,0],
[0,0],
[0,0],
[0,0],
[0,0],
[0,0],
[0,0],
]
font['.'] = [
[0,0],
[0,0],
[0,0],
[0,0],
[0,0],
[1,1],
[1,1]
]
font['spacer'] = [
[0],
[0],
[0],
[0],
[0],
[0],
[0],
]
class GridText {
getText(string) {
var grid = []
this.appendPattern(grid, this.getCharacter('spacer'))
for(var i = 0; i < string.length; i++) {
var char = string[i]
this.appendPattern(grid, this.getCharacter(char))
if(i+1 < string.length) {
this.appendPattern(grid, this.getCharacter('spacer'))
}
}
return grid
}
getCharacter(char) {
return font[char]
}
appendPattern(grid, pattern) {
var grid_columns = grid.length
for(var y = 0; y < pattern.length; y++) {
for(var x = 0; x < pattern[0].length; x++) {
var grid_x = x + grid_columns
if(!grid[grid_x]) {
grid[grid_x] = []
}
grid[grid_x][y] = pattern[y][x] == 1 ? 1 : 0
}
}
return grid
}
drawToConsole(grid) {
var string = ''
for(var y = 0; y < grid[0].length; y++) {
var section = ''
for(var x = 0; x < grid.length; x++) {
section += grid[x][y] > 0 ? "1" : " "
}
console.log(section)
string += section + "\n"
}
// /console.log(string)
}
}
module.exports = new GridText()
var runningAsScript = require.main === module;
if(runningAsScript) {
var grid = new GridText()
grid.drawToConsole(grid.getText('test'))
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment