32 lines
601 B
JavaScript
32 lines
601 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 < 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);
|