38 lines
774 B
JavaScript
38 lines
774 B
JavaScript
|
var grid = require("fs").readFileSync("input.txt").toString().split("\n").map((a)=>(a.split("")));
|
||
|
var x = 163;
|
||
|
var y = 0;
|
||
|
var dirs = [[0, 1], [1, 0], [-1, 0], [0, -1]];
|
||
|
var dir = 0;
|
||
|
var visited = [];
|
||
|
var end = false;
|
||
|
var letters = [];
|
||
|
var moves = 0;
|
||
|
while(!end){
|
||
|
if(grid[y][x].match("[A-Z]")){
|
||
|
letters.push(grid[y][x]);
|
||
|
}
|
||
|
visited.push((y*201) + x);
|
||
|
if(grid[y][x] == "+"){
|
||
|
var changed = false;
|
||
|
var i = 0;
|
||
|
while(!changed){
|
||
|
if(visited.indexOf(((y + dirs[i][1]) * 201) + (x + dirs[i][0])) == -1){
|
||
|
//not visited before
|
||
|
if(grid[y+dirs[i][1]][x+dirs[i][0]] != " "){
|
||
|
//not empty
|
||
|
changed = true;
|
||
|
dir = i;
|
||
|
}
|
||
|
}
|
||
|
i++;
|
||
|
}
|
||
|
}
|
||
|
x += dirs[dir][0];
|
||
|
y += dirs[dir][1];
|
||
|
if(grid[y][x] == " "){
|
||
|
end = true;
|
||
|
}
|
||
|
moves++;
|
||
|
}
|
||
|
console.log(moves);
|