advent-of-code

Entries to advent of code, multiple years
git clone git://git.finwo.net/misc/advent-of-code
Log | Files | Refs

commit 42b3eff19727f550ac0880d36bfa97fe09b9553f
parent 5797c6eea85391813f589527390d5f0d3d6d29d9
Author: finwo <finwo@pm.me>
Date:   Sat, 10 Dec 2022 16:38:14 +0100

2022/10 solution

Diffstat:
A2022/day-10/index.js | 55+++++++++++++++++++++++++++++++++++++++++++++++++++++++
A2022/day-10/large | 146+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
A2022/day-10/small | 3+++
3 files changed, 204 insertions(+), 0 deletions(-)

diff --git a/2022/day-10/index.js b/2022/day-10/index.js @@ -0,0 +1,55 @@ +const fs = require('fs'); +const through = require('through2'); +const line_for_line = require('../common/line-for-line'); + +let sum = 0; + +const machine = { + cycle: 1, + X: 1, + + step() { + + // // Part 1 + // if ((this.cycle-20)%40 == 0) { + // process.stdout.write(`${sum} + (${this.cycle} * ${this.X}) = `); + // sum += this.cycle * this.X; + // process.stdout.write(`${sum}\n`); + // } + + // Part 2 + process.stdout.write(Math.abs(this.X - ((this.cycle-1)%40)) < 2 ? '#' : '.'); + if (this.cycle % 40 == 0) process.stdout.write('\n'); + + this.cycle+=1; + }, + + addx(val) { + this.step(); + this.step(); + this.X+=val; + }, + + noop() { + this.step(); + } +}; + +fs.createReadStream('input') + .pipe(line_for_line()) + + // Load grid + .pipe(through(function(line, enc, cb) { + line = line.toString(); + const [aOp, aArg] = line.split(' '); + const iArg = parseInt(aArg); + + machine[aOp](iArg); + + cb(); + })) + + .on('finish', () => { + console.log({ sum }); + console.log('finish'); + }); diff --git a/2022/day-10/large b/2022/day-10/large @@ -0,0 +1,146 @@ +addx 15 +addx -11 +addx 6 +addx -3 +addx 5 +addx -1 +addx -8 +addx 13 +addx 4 +noop +addx -1 +addx 5 +addx -1 +addx 5 +addx -1 +addx 5 +addx -1 +addx 5 +addx -1 +addx -35 +addx 1 +addx 24 +addx -19 +addx 1 +addx 16 +addx -11 +noop +noop +addx 21 +addx -15 +noop +noop +addx -3 +addx 9 +addx 1 +addx -3 +addx 8 +addx 1 +addx 5 +noop +noop +noop +noop +noop +addx -36 +noop +addx 1 +addx 7 +noop +noop +noop +addx 2 +addx 6 +noop +noop +noop +noop +noop +addx 1 +noop +noop +addx 7 +addx 1 +noop +addx -13 +addx 13 +addx 7 +noop +addx 1 +addx -33 +noop +noop +noop +addx 2 +noop +noop +noop +addx 8 +noop +addx -1 +addx 2 +addx 1 +noop +addx 17 +addx -9 +addx 1 +addx 1 +addx -3 +addx 11 +noop +noop +addx 1 +noop +addx 1 +noop +noop +addx -13 +addx -19 +addx 1 +addx 3 +addx 26 +addx -30 +addx 12 +addx -1 +addx 3 +addx 1 +noop +noop +noop +addx -9 +addx 18 +addx 1 +addx 2 +noop +noop +addx 9 +noop +noop +noop +addx -1 +addx 2 +addx -37 +addx 1 +addx 3 +noop +addx 15 +addx -21 +addx 22 +addx -6 +addx 1 +noop +addx 2 +addx 1 +noop +addx -10 +noop +noop +addx 20 +addx 1 +addx 2 +addx 2 +addx -6 +addx -11 +noop +noop +noop diff --git a/2022/day-10/small b/2022/day-10/small @@ -0,0 +1,3 @@ +noop +addx 3 +addx -5