const fs = require('fs/promises'); (async () => { const input = await fs.readFile("./input.txt", 'utf8'); const simplified = input.replace(/noop/g, '0').replace(/addx (.*)/g, '0\n$1').split("\n").map(s => parseFloat(s)); const cycleValues = simplified.reduce((vals, change, i) => { vals.push(vals[i] + change); return vals; }, [1]); console.log(cycleValues); while(cycleValues.length) { const row = cycleValues.splice(0, 40); console.log(row.map((pos, i) => pos >= i - 1 && pos <= i + 1 ? "X" : "." ).join("")) } })();