From 22a432e60c7d1a92f813d6a2d7e8be1ec94e16e3 Mon Sep 17 00:00:00 2001 From: benkyd Date: Sun, 11 Dec 2022 13:45:03 +0000 Subject: [PATCH] day 10 --- 2022/10.input | 138 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2022/10.js | 54 ++++++++++++++++++++ 2022/11.input | 0 2022/11.js | 0 4 files changed, 192 insertions(+) create mode 100644 2022/10.input create mode 100644 2022/10.js create mode 100644 2022/11.input create mode 100644 2022/11.js diff --git a/2022/10.input b/2022/10.input new file mode 100644 index 0000000..09782be --- /dev/null +++ b/2022/10.input @@ -0,0 +1,138 @@ +addx 1 +noop +addx 4 +noop +noop +addx 7 +noop +noop +noop +addx 3 +noop +noop +addx 5 +addx -1 +addx 1 +addx 5 +addx 3 +noop +addx 3 +noop +addx -1 +noop +addx 3 +addx 5 +addx -38 +addx 7 +addx 10 +addx -14 +addx 5 +addx 30 +addx -25 +noop +addx 2 +addx 3 +addx -2 +addx 2 +addx 5 +addx 2 +addx 2 +addx -21 +addx 22 +addx 5 +addx 2 +addx 3 +noop +addx -39 +addx 1 +noop +noop +addx 3 +addx 5 +addx 4 +addx -5 +addx 4 +addx 4 +noop +addx -9 +addx 12 +addx 5 +addx 2 +addx -1 +addx 6 +addx -2 +noop +addx 3 +addx 3 +addx 2 +addx -37 +addx 39 +addx -33 +addx -1 +addx 1 +addx 8 +noop +noop +noop +addx 2 +addx 20 +addx -19 +addx 4 +noop +noop +noop +addx 3 +addx 2 +addx 5 +noop +addx 1 +addx 4 +addx -21 +addx 22 +addx -38 +noop +noop +addx 7 +addx 32 +addx -27 +noop +addx 3 +addx -2 +addx 2 +addx 5 +addx 2 +addx 2 +addx 3 +addx -2 +addx 2 +noop +addx 3 +addx 5 +addx 2 +addx 3 +noop +addx -39 +addx 2 +noop +addx 4 +addx 8 +addx -8 +addx 6 +addx -1 +noop +addx 5 +noop +noop +noop +addx 3 +addx 5 +addx 2 +addx -11 +addx 12 +addx 2 +noop +addx 3 +addx 2 +addx 5 +addx -6 +noop \ No newline at end of file diff --git a/2022/10.js b/2022/10.js new file mode 100644 index 0000000..2a88453 --- /dev/null +++ b/2022/10.js @@ -0,0 +1,54 @@ +const fs = require('fs'); + +const CPU = { + signalIntegrity: 0, + row: '', + + clk: 0, + X: 1, +} + +const microCode = { + 'noop': { + c: 1, + o: null, + t: null, + }, + 'addx': { + c: 2, + o: '+', + t: 'X', + } +} + +for (const instruction of fs.readFileSync('10.input').toString().split('\n')) { + const operator = instruction.split(' ')[0]; + const operand = instruction.split(' ')[1] ?? 0; + const inst = microCode[operator]; + + for (let cycle = 0; cycle < inst.c; cycle++) { + CPU.clk++;cycle + if (CPU.clk % 40 == 20) CPU.signalIntegrity += CPU.clk * CPU.X; + + const column = (CPU.clk - 1) % 40; + CPU.row += CPU.X - 1 <= column && column <= CPU.X + 1 ? '█' : ' '; + if(column == 39) { + console.log(CPU.row); + CPU.row = ""; + } + + // operation is applied on the last cycle of the show + if (cycle != inst.c - 1) { + continue; + } + + if (inst.t == 'X') { + CPU.X = eval(`CPU.${inst.t} ${inst.o} ${operand}`); + } + + } +} + +console.log(`Part 1: ${CPU.signalIntegrity}`); + + diff --git a/2022/11.input b/2022/11.input new file mode 100644 index 0000000..e69de29 diff --git a/2022/11.js b/2022/11.js new file mode 100644 index 0000000..e69de29