adventofcode-2017/day22/part2.js
2017-12-25 23:22:40 +00:00

33 lines
742 B
JavaScript

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);