diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..074ab52 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +package-lock.json +node_modules \ No newline at end of file diff --git a/index.js b/index.js index f002673..d3c7654 100644 --- a/index.js +++ b/index.js @@ -1,3 +1,44 @@ +const readline = require("readline"); +const render = require("./src/render"); -const WIDTH = process.stdout.columns -const HEIGHT = process.stdout.rows; \ No newline at end of file +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++){ + const val = arrAvg([(row / HEIGHT) * MAX_COLORS - counter, (column / WIDTH) * MAX_COLORS - counter]) + counter; + view[row][column] = {0: val, 1: " "}; + } + } + + render(view); + counter++; + + if(counter > MAX_COLORS) counter = 0; +}, 300); \ No newline at end of file diff --git a/package.json b/package.json index b102ea0..e32311b 100644 --- a/package.json +++ b/package.json @@ -8,5 +8,8 @@ }, "keywords": [], "author": "", - "license": "ISC" + "license": "ISC", + "dependencies": { + "chalk": "^3.0.0" + } } diff --git a/src/render.js b/src/render.js new file mode 100644 index 0000000..81cf612 --- /dev/null +++ b/src/render.js @@ -0,0 +1,11 @@ +const chalk = require("chalk"); + +module.exports = (array)=>{ + console.clear(); + + for(var row of array){ + for(var column of row){ + process.stdout.write(chalk.bgHsl(column[0], 50, 50)(column[1])) + } + } +} \ No newline at end of file