Braille: implementation

This commit is contained in:
He4eT 2019-09-24 02:40:23 +05:00
commit 8fafb5a8d5

289
src/braille.js Normal file
View file

@ -0,0 +1,289 @@
const gridToArrs = grid => {
const [arrH, arrW] = [4, 2]
const [h, w] = [
grid.length / arrH,
grid[0].length / arrW
]
return Array(h).fill()
.map((_, y) => Array(w).fill()
.map((_, x) => Array(arrH).fill()
.map((_, i) =>
grid[arrH * y + i]
.slice(arrW * x, arrW * x + arrW))))
}
const arrToPattern = arr =>
arr
.map(row => row.join``)
.join``
const patternToBraille = pattern =>
braille[pattern]
module.exports = {
gridToArrs,
arrToPattern,
patternToBraille
}
/* eslint-disable */
const braille = {
'00000000': '',
'10000000': '⠁',
'00100000': '⠂',
'10100000': '⠃',
'00001000': '⠄',
'10001000': '⠅',
'00101000': '⠆',
'10101000': '⠇',
'01000000': '⠈',
'11000000': '⠉',
'01100000': '⠊',
'11100000': '⠋',
'01001000': '⠌',
'11001000': '⠍',
'01101000': '⠎',
'11101000': '⠏',
'00010000': '⠐',
'10010000': '⠑',
'00110000': '⠒',
'10110000': '⠓',
'00011000': '⠔',
'10011000': '⠕',
'00111000': '⠖',
'10111000': '⠗',
'01010000': '⠘',
'11010000': '⠙',
'01110000': '⠚',
'11110000': '⠛',
'01011000': '⠜',
'11011000': '⠝',
'01111000': '⠞',
'11111000': '⠟',
'00000100': '⠠',
'10000100': '⠡',
'00100100': '⠢',
'10100100': '⠣',
'00001100': '⠤',
'10001100': '⠥',
'00101100': '⠦',
'10101100': '⠧',
'01000100': '⠨',
'11000100': '⠩',
'01100100': '⠪',
'11100100': '⠫',
'01001100': '⠬',
'11001100': '⠭',
'01101100': '⠮',
'11101100': '⠯',
'00010100': '⠰',
'10010100': '⠱',
'00110100': '⠲',
'10110100': '⠳',
'00011100': '⠴',
'10011100': '⠵',
'00111100': '⠶',
'10111100': '⠷',
'01010100': '⠸',
'11010100': '⠹',
'01110100': '⠺',
'11110100': '⠻',
'01011100': '⠼',
'11011100': '⠽',
'01111100': '⠾',
'11111100': '⠿',
'00000010': '⡀',
'10000010': '⡁',
'00100010': '⡂',
'10100010': '⡃',
'00001010': '⡄',
'10001010': '⡅',
'00101010': '⡆',
'10101010': '⡇',
'01000010': '⡈',
'11000010': '⡉',
'01100010': '⡊',
'11100010': '⡋',
'01001010': '⡌',
'11001010': '⡍',
'01101010': '⡎',
'11101010': '⡏',
'00010010': '⡐',
'10010010': '⡑',
'00110010': '⡒',
'10110010': '⡓',
'00011010': '⡔',
'10011010': '⡕',
'00111010': '⡖',
'10111010': '⡗',
'01010010': '⡘',
'11010010': '⡙',
'01110010': '⡚',
'11110010': '⡛',
'01011010': '⡜',
'11011010': '⡝',
'01111010': '⡞',
'11111010': '⡟',
'00000110': '⡠',
'10000110': '⡡',
'00100110': '⡢',
'10100110': '⡣',
'00001110': '⡤',
'10001110': '⡥',
'00101110': '⡦',
'10101110': '⡧',
'01000110': '⡨',
'11000110': '⡩',
'01100110': '⡪',
'11100110': '⡫',
'01001110': '⡬',
'11001110': '⡭',
'01101110': '⡮',
'11101110': '⡯',
'00010110': '⡰',
'10010110': '⡱',
'00110110': '⡲',
'10110110': '⡳',
'00011110': '⡴',
'10011110': '⡵',
'00111110': '⡶',
'10111110': '⡷',
'01010110': '⡸',
'11010110': '⡹',
'01110110': '⡺',
'11110110': '⡻',
'01011110': '⡼',
'11011110': '⡽',
'01111110': '⡾',
'11111110': '⡿',
'00000001': '⢀',
'10000001': '⢁',
'00100001': '⢂',
'10100001': '⢃',
'00001001': '⢄',
'10001001': '⢅',
'00101001': '⢆',
'10101001': '⢇',
'01000001': '⢈',
'11000001': '⢉',
'01100001': '⢊',
'11100001': '⢋',
'01001001': '⢌',
'11001001': '⢍',
'01101001': '⢎',
'11101001': '⢏',
'00010001': '⢐',
'10010001': '⢑',
'00110001': '⢒',
'10110001': '⢓',
'00011001': '⢔',
'10011001': '⢕',
'00111001': '⢖',
'10111001': '⢗',
'01010001': '⢘',
'11010001': '⢙',
'01110001': '⢚',
'11110001': '⢛',
'01011001': '⢜',
'11011001': '⢝',
'01111001': '⢞',
'11111001': '⢟',
'00000101': '⢠',
'10000101': '⢡',
'00100101': '⢢',
'10100101': '⢣',
'00001101': '⢤',
'10001101': '⢥',
'00101101': '⢦',
'10101101': '⢧',
'01000101': '⢨',
'11000101': '⢩',
'01100101': '⢪',
'11100101': '⢫',
'01001101': '⢬',
'11001101': '⢭',
'01101101': '⢮',
'11101101': '⢯',
'00010101': '⢰',
'10010101': '⢱',
'00110101': '⢲',
'10110101': '⢳',
'00011101': '⢴',
'10011101': '⢵',
'00111101': '⢶',
'10111101': '⢷',
'01010101': '⢸',
'11010101': '⢹',
'01110101': '⢺',
'11110101': '⢻',
'01011101': '⢼',
'11011101': '⢽',
'01111101': '⢾',
'11111101': '⢿',
'00000011': '⣀',
'10000011': '⣁',
'00100011': '⣂',
'10100011': '⣃',
'00001011': '⣄',
'10001011': '⣅',
'00101011': '⣆',
'10101011': '⣇',
'01000011': '⣈',
'11000011': '⣉',
'01100011': '⣊',
'11100011': '⣋',
'01001011': '⣌',
'11001011': '⣍',
'01101011': '⣎',
'11101011': '⣏',
'00010011': '⣐',
'10010011': '⣑',
'00110011': '⣒',
'10110011': '⣓',
'00011011': '⣔',
'10011011': '⣕',
'00111011': '⣖',
'10111011': '⣗',
'01010011': '⣘',
'11010011': '⣙',
'01110011': '⣚',
'11110011': '⣛',
'01011011': '⣜',
'11011011': '⣝',
'01111011': '⣞',
'11111011': '⣟',
'00000111': '⣠',
'10000111': '⣡',
'00100111': '⣢',
'10100111': '⣣',
'00001111': '⣤',
'10001111': '⣥',
'00101111': '⣦',
'10101111': '⣧',
'01000111': '⣨',
'11000111': '⣩',
'01100111': '⣪',
'11100111': '⣫',
'01001111': '⣬',
'11001111': '⣭',
'01101111': '⣮',
'11101111': '⣯',
'00010111': '⣰',
'10010111': '⣱',
'00110111': '⣲',
'10110111': '⣳',
'00011111': '⣴',
'10011111': '⣵',
'00111111': '⣶',
'10111111': '⣷',
'01010111': '⣸',
'11010111': '⣹',
'01110111': '⣺',
'11110111': '⣻',
'01011111': '⣼',
'11011111': '⣽',
'01111111': '⣾',
'11111111': '⣿'
}
/* eslint-enable */