mirror of
https://github.com/danbulant/console256
synced 2026-05-19 03:58:36 +00:00
48 lines
No EOL
1.2 KiB
JavaScript
48 lines
No EOL
1.2 KiB
JavaScript
const readline = require("readline");
|
|
const render = require("./src/render");
|
|
|
|
const arrAvg = arr => arr.reduce((a,b) => a + b, 0) / arr.length;
|
|
const MAX_COLORS = 360;
|
|
|
|
const keepAlive = new readline.Interface({
|
|
input: process.stdin,
|
|
output: process.stdou
|
|
});
|
|
|
|
const WIDTH = process.stdout.columns;
|
|
const HEIGHT = process.stdout.rows;
|
|
|
|
const view = [];
|
|
|
|
for(var row = 0; row < HEIGHT; row++){
|
|
view[row] = [];
|
|
|
|
for(var column = 0; column < WIDTH; column++){
|
|
const val = arrAvg([(row / HEIGHT) * MAX_COLORS, (column / WIDTH) * MAX_COLORS]);
|
|
view[row][column] = {0: val, 1: " "};
|
|
}
|
|
}
|
|
|
|
view[0][0] = {0: 15, 1: " "};
|
|
view[HEIGHT - 1][WIDTH - 1] = {0: 15, 1: " "};
|
|
|
|
render(view);
|
|
|
|
var counter = 0;
|
|
setInterval(() => {
|
|
for(var row = 0; row < HEIGHT; row++){
|
|
for(var column = 0; column < WIDTH; column++){
|
|
var val = arrAvg([(row / HEIGHT) * MAX_COLORS, (column / WIDTH) * MAX_COLORS]);
|
|
val += counter;
|
|
|
|
if(val > MAX_COLORS)val -= MAX_COLORS;
|
|
|
|
view[row][column] = {0: val, 1: " "};
|
|
}
|
|
}
|
|
|
|
render(view);
|
|
counter++;
|
|
|
|
if(counter > MAX_COLORS) counter = 0;
|
|
}, 100); |