all done
This commit is contained in:
25
day22/input.txt
Normal file
25
day22/input.txt
Normal file
@ -0,0 +1,25 @@
|
||||
..#..##...##.######.##...
|
||||
..#...#####..#.#####..#..
|
||||
...##.#..##.#.##....#...#
|
||||
#.#.#.#..###...#....##..#
|
||||
..#..#####.....##..#.#..#
|
||||
.##.#####.#.....###.#..#.
|
||||
##..####...#.##.#...##...
|
||||
###.#.#####...##.#.##..#.
|
||||
#.##..##.#....#.#..#.##..
|
||||
###.######......####..#.#
|
||||
###.....#.##.##.######..#
|
||||
...####.###.#....#..##.##
|
||||
#..####.#.....#....###.#.
|
||||
#..##..#.####.#.##..#.#..
|
||||
#..#.#.##...#...#####.##.
|
||||
#.###..#.##.#..##.#######
|
||||
...###..#..####.####.#.#.
|
||||
.#..###..###.#....#######
|
||||
.####..##.#####.#.#..#.#.
|
||||
#.#....##.....##.##.....#
|
||||
....####.....#..#.##..##.
|
||||
######..##..#.###...###..
|
||||
..##...##.....#..###.###.
|
||||
##.#.#..##.#.#.##....##.#
|
||||
.#.###..##..#....#...##.#
|
31
day22/part1.js
Normal file
31
day22/part1.js
Normal file
@ -0,0 +1,31 @@
|
||||
var grid = require("fs").readFileSync("input.txt").toString().split("\n").filter(a=>(a)).reverse().map(a=>(a.split("")));
|
||||
var dirs = [[0, 1], [1, 0], [0, -1], [-1, 0]];
|
||||
var dir = 0;
|
||||
var x = Math.floor(grid.length/2);
|
||||
var y = Math.floor(grid.length/2);
|
||||
var numInfected = 0;
|
||||
|
||||
for(var i = 0; i < 10000; i++){
|
||||
var clean = true;
|
||||
if(grid[y]){
|
||||
if(grid[y][x] == "#"){
|
||||
clean = false;
|
||||
}
|
||||
}
|
||||
else{
|
||||
grid[y] = [];
|
||||
}
|
||||
if(clean){
|
||||
grid[y][x] = "#";
|
||||
numInfected++;
|
||||
dir--;
|
||||
}
|
||||
else{
|
||||
grid[y][x] = ".";
|
||||
dir++;
|
||||
}
|
||||
dir = (dir+4)%4;
|
||||
x += dirs[dir][0];
|
||||
y += dirs[dir][1];
|
||||
}
|
||||
console.log(numInfected);
|
32
day22/part2.js
Normal file
32
day22/part2.js
Normal file
@ -0,0 +1,32 @@
|
||||
var grid = require("fs").readFileSync("input.txt").toString().split("\n").filter(a=>(a)).reverse().map(a=>(a.split("")));
|
||||
var dirs = [[0, 1], [1, 0], [0, -1], [-1, 0]];
|
||||
var dir = 0;
|
||||
var x = Math.floor(grid.length/2);
|
||||
var y = Math.floor(grid.length/2);
|
||||
var numInfected = 0;
|
||||
|
||||
for(var i = 0; i < 10000000; i++){
|
||||
var clean = true;
|
||||
if(grid[y]){
|
||||
if(!grid[y][x]){
|
||||
grid[y][x] = ".";
|
||||
}
|
||||
}
|
||||
else{
|
||||
grid[y] = [];
|
||||
grid[y][x] = ".";
|
||||
}
|
||||
|
||||
var states = [".", "W", "#", "F"];
|
||||
var dirChanges = [-1, 0, 1, 2];
|
||||
dir += dirChanges[states.indexOf(grid[y][x])];
|
||||
grid[y][x] = states[(states.indexOf(grid[y][x])+1) % 4];
|
||||
if(grid[y][x] == "#"){
|
||||
numInfected++;
|
||||
}
|
||||
|
||||
dir = (dir+4)%4;
|
||||
x += dirs[dir][0];
|
||||
y += dirs[dir][1];
|
||||
}
|
||||
console.log(numInfected);
|
Reference in New Issue
Block a user