solutions for day 10
This commit is contained in:
parent
b69c454c4c
commit
d5574c1167
68
10/code.js
Normal file
68
10/code.js
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
const fs = require('fs');
|
||||||
|
|
||||||
|
//const inputArray = fs.readFileSync('sample.txt').toString().split("\n");
|
||||||
|
const inputArray = fs.readFileSync('input.txt').toString().split("\n");
|
||||||
|
|
||||||
|
// Part One
|
||||||
|
|
||||||
|
let x = 1;
|
||||||
|
let cycle = 0;
|
||||||
|
let samples = [];
|
||||||
|
|
||||||
|
for (i in inputArray) {
|
||||||
|
cycle++;
|
||||||
|
getSample();
|
||||||
|
const contents = inputArray[i].split(" ");
|
||||||
|
const instruction = contents[0];
|
||||||
|
if (instruction === 'addx') {
|
||||||
|
cycle++;
|
||||||
|
getSample();
|
||||||
|
x += parseInt(contents[1], 10);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const countedSamples = samples.slice(0, 7);
|
||||||
|
console.log(countedSamples.reduce((partialSum, a) => partialSum + a, 0));
|
||||||
|
|
||||||
|
|
||||||
|
// Part Two
|
||||||
|
|
||||||
|
x = 1;
|
||||||
|
cycle = 0;
|
||||||
|
let pixels = [];
|
||||||
|
|
||||||
|
for (i in inputArray) {
|
||||||
|
cycle++;
|
||||||
|
setPixel();
|
||||||
|
const contents = inputArray[i].split(" ");
|
||||||
|
const instruction = contents[0];
|
||||||
|
if (instruction === 'addx') {
|
||||||
|
cycle++;
|
||||||
|
setPixel();
|
||||||
|
x += parseInt(contents[1], 10);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const screen = [];
|
||||||
|
for (let i = 0; i < 6; i++) {
|
||||||
|
const line = pixels.slice(i * 40, (i + 1) * 40).join('');
|
||||||
|
screen.push(line)
|
||||||
|
}
|
||||||
|
console.log(screen);
|
||||||
|
|
||||||
|
// functions
|
||||||
|
|
||||||
|
function getSample() {
|
||||||
|
if (cycle === 20 || (cycle - 20) % 40 === 0) {
|
||||||
|
samples.push(cycle * x);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function setPixel() {
|
||||||
|
const position = cycle % 40;
|
||||||
|
if (position >= x && position <= x + 2) {
|
||||||
|
pixels.push('#');
|
||||||
|
} else {
|
||||||
|
pixels.push('.');
|
||||||
|
}
|
||||||
|
}
|
139
10/input.txt
Normal file
139
10/input.txt
Normal file
@ -0,0 +1,139 @@
|
|||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 5
|
||||||
|
noop
|
||||||
|
addx 1
|
||||||
|
addx 2
|
||||||
|
addx 5
|
||||||
|
addx 2
|
||||||
|
addx 1
|
||||||
|
noop
|
||||||
|
addx 5
|
||||||
|
noop
|
||||||
|
addx -1
|
||||||
|
noop
|
||||||
|
addx 5
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 5
|
||||||
|
addx 1
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 3
|
||||||
|
addx 2
|
||||||
|
noop
|
||||||
|
addx -38
|
||||||
|
noop
|
||||||
|
addx 3
|
||||||
|
addx 2
|
||||||
|
addx -5
|
||||||
|
addx 12
|
||||||
|
addx 2
|
||||||
|
addx 27
|
||||||
|
addx -40
|
||||||
|
addx 19
|
||||||
|
addx 2
|
||||||
|
addx 19
|
||||||
|
addx -18
|
||||||
|
addx 2
|
||||||
|
addx 5
|
||||||
|
addx 2
|
||||||
|
addx -23
|
||||||
|
addx 22
|
||||||
|
addx 4
|
||||||
|
addx -34
|
||||||
|
addx -1
|
||||||
|
addx 5
|
||||||
|
noop
|
||||||
|
addx 2
|
||||||
|
addx 1
|
||||||
|
addx 20
|
||||||
|
addx -17
|
||||||
|
noop
|
||||||
|
addx 25
|
||||||
|
addx -17
|
||||||
|
addx -2
|
||||||
|
noop
|
||||||
|
addx 3
|
||||||
|
addx 19
|
||||||
|
addx -12
|
||||||
|
addx 3
|
||||||
|
addx -2
|
||||||
|
addx 3
|
||||||
|
addx 1
|
||||||
|
noop
|
||||||
|
addx 5
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx -37
|
||||||
|
addx 3
|
||||||
|
addx 4
|
||||||
|
noop
|
||||||
|
addx 24
|
||||||
|
addx -6
|
||||||
|
addx -15
|
||||||
|
addx 2
|
||||||
|
noop
|
||||||
|
addx 6
|
||||||
|
addx -2
|
||||||
|
addx 6
|
||||||
|
addx -12
|
||||||
|
addx -2
|
||||||
|
addx 19
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 3
|
||||||
|
noop
|
||||||
|
addx 7
|
||||||
|
addx -2
|
||||||
|
addx -24
|
||||||
|
addx -11
|
||||||
|
addx 4
|
||||||
|
addx 3
|
||||||
|
addx -2
|
||||||
|
noop
|
||||||
|
addx 7
|
||||||
|
addx -2
|
||||||
|
addx 2
|
||||||
|
noop
|
||||||
|
addx 3
|
||||||
|
addx 7
|
||||||
|
noop
|
||||||
|
addx -2
|
||||||
|
addx 5
|
||||||
|
addx 2
|
||||||
|
addx 5
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 3
|
||||||
|
addx -35
|
||||||
|
addx 35
|
||||||
|
addx -21
|
||||||
|
addx -14
|
||||||
|
noop
|
||||||
|
addx 5
|
||||||
|
addx 2
|
||||||
|
addx 33
|
||||||
|
addx -7
|
||||||
|
addx -23
|
||||||
|
addx 5
|
||||||
|
addx 2
|
||||||
|
addx 1
|
||||||
|
noop
|
||||||
|
noop
|
||||||
|
addx 5
|
||||||
|
addx -1
|
||||||
|
noop
|
||||||
|
addx 3
|
||||||
|
addx -23
|
||||||
|
addx 30
|
||||||
|
addx 1
|
||||||
|
noop
|
||||||
|
addx 4
|
||||||
|
addx -17
|
||||||
|
addx 11
|
||||||
|
noop
|
||||||
|
noop
|
146
10/sample.txt
Normal file
146
10/sample.txt
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user