initial commit
This commit is contained in:
64
common/characters.js
Normal file
64
common/characters.js
Normal file
@@ -0,0 +1,64 @@
|
||||
export const charwidth = 3;
|
||||
export const charheight = 5;
|
||||
|
||||
export const numbers = [[
|
||||
[1,1,1],
|
||||
[1,0,1],
|
||||
[1,0,1],
|
||||
[1,0,1],
|
||||
[1,1,1]
|
||||
], [
|
||||
[0,1,1],
|
||||
[0,0,1],
|
||||
[0,0,1],
|
||||
[0,0,1],
|
||||
[0,0,1]
|
||||
], [
|
||||
[1,1,1],
|
||||
[0,0,1],
|
||||
[1,1,1],
|
||||
[1,0,0],
|
||||
[1,1,1]
|
||||
], [
|
||||
[1,1,1],
|
||||
[0,0,1],
|
||||
[0,1,1],
|
||||
[0,0,1],
|
||||
[1,1,1]
|
||||
], [
|
||||
[1,0,1],
|
||||
[1,0,1],
|
||||
[1,1,1],
|
||||
[0,0,1],
|
||||
[0,0,1]
|
||||
], [
|
||||
[1,1,1],
|
||||
[1,0,0],
|
||||
[1,1,1],
|
||||
[0,0,1],
|
||||
[1,1,1]
|
||||
], [
|
||||
[1,1,1],
|
||||
[1,0,0],
|
||||
[1,1,1],
|
||||
[1,0,1],
|
||||
[1,1,1]
|
||||
], [
|
||||
[1,1,1],
|
||||
[0,0,1],
|
||||
[0,0,1],
|
||||
[0,0,1],
|
||||
[0,0,1]
|
||||
], [
|
||||
[1,1,1],
|
||||
[1,0,1],
|
||||
[1,1,1],
|
||||
[1,0,1],
|
||||
[1,1,1]
|
||||
], [
|
||||
[1,1,1],
|
||||
[1,0,1],
|
||||
[1,1,1],
|
||||
[0,0,1],
|
||||
[0,0,1]
|
||||
]];
|
||||
125
common/digits.js
Normal file
125
common/digits.js
Normal file
@@ -0,0 +1,125 @@
|
||||
import document from "document";
|
||||
import * as characters from "characters";
|
||||
|
||||
function getSquares(character) {
|
||||
return characters.numbers[character];
|
||||
}
|
||||
|
||||
function splitNumber(number) {
|
||||
let numberString = number.toString();
|
||||
return splitString(numberString);
|
||||
}
|
||||
|
||||
function splitString(input) {
|
||||
let chars = [];
|
||||
for (let i = 0; i < input.length; i += 1) {
|
||||
chars.push(input.charAt(i));
|
||||
}
|
||||
return chars;
|
||||
}
|
||||
|
||||
const smallDigits = ['0','1','2','3','4','5','6','7','8','9','/'];
|
||||
|
||||
export function setSmallDigits(name, input, rightJustify) {
|
||||
let chars = [];
|
||||
let smallNumElem = document.getElementById(name);
|
||||
|
||||
if (typeof input === 'number') {
|
||||
chars = splitNumber(input);
|
||||
} else if (typeof input === 'string') {
|
||||
chars = splitString(input);
|
||||
}
|
||||
if (rightJustify) {
|
||||
chars = chars.reverse();
|
||||
}
|
||||
for (let i=0; i<6; i++) {
|
||||
let digitElem = smallNumElem.getElementById('digit'+(i+1));
|
||||
let char = chars[i];
|
||||
if (rightJustify) {
|
||||
char = chars[5-i];
|
||||
}
|
||||
if (typeof char === 'number') {
|
||||
char = char.toString();
|
||||
}
|
||||
if (typeof char !== 'undefined' && smallDigits.indexOf(char) > -1) {
|
||||
if (char == "/") {
|
||||
char = "slash";
|
||||
}
|
||||
digitElem.href="img/"+char+".png";
|
||||
} else {
|
||||
digitElem.href="";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export function setDigits(chars, colors) {
|
||||
let matrix = [
|
||||
[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],
|
||||
[0,0,0,0,0,0,0],
|
||||
[0,0,0,0,0,0,0],
|
||||
[0,0,0,0,0,0,0],
|
||||
];
|
||||
|
||||
for (let char = 0; char < 4; char++) {
|
||||
let squares = getSquares(chars[char]);
|
||||
let offsX = 0;
|
||||
let offsY = 0;
|
||||
let color = 0;
|
||||
switch (char) {
|
||||
case 0:
|
||||
color = 1;
|
||||
break;
|
||||
case 1:
|
||||
color = 1;
|
||||
offsX = 4;
|
||||
break;
|
||||
case 2:
|
||||
color = 2;
|
||||
offsY = 2;
|
||||
break;
|
||||
case 3:
|
||||
color = 2;
|
||||
offsX = 4;
|
||||
offsY = 2;
|
||||
break;
|
||||
}
|
||||
for (let i = 0; i < (characters.charwidth*characters.charheight); i++) {
|
||||
let row = Math.floor(i/characters.charwidth);
|
||||
let col = i%characters.charwidth;
|
||||
matrix[row+offsY][col+offsX] += color*squares[row][col];
|
||||
}
|
||||
}
|
||||
|
||||
for (let i = 0; i < (7*7); i++) {
|
||||
let col = i%7;
|
||||
let row = Math.floor(i/7);
|
||||
let square = matrix[row][col];
|
||||
let locationCode = (row+1)+'-'+(col+1);
|
||||
let squareElem = document.getElementById('squares').getElementById(locationCode);
|
||||
|
||||
if (square >= 1) {
|
||||
squareElem.style.display = 'inline';
|
||||
squareElem.href = "img/"+locationCode+".png";
|
||||
switch (square) {
|
||||
case 1:
|
||||
squareElem.layer = 1;
|
||||
squareElem.style.fill = colors[0];
|
||||
break;
|
||||
case 2:
|
||||
squareElem.layer = 2;
|
||||
squareElem.style.fill = colors[1];
|
||||
break;
|
||||
case 3:
|
||||
squareElem.layer = 3;
|
||||
squareElem.style.fill = colors[2];
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
squareElem.style.display = 'none';
|
||||
squareElem.href = "";
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user