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