function findPath(diagram) {
let [x, y, dx, dy] = [diagram[0].indexOf("|"), 0, 0, 1];
let letters = "";
let steps = 0;
while (true) {
x += dx;
y += dy;
steps++;
const cell = diagram[y][x];
if (cell === " ") {
return { letters, steps };
}
if (cell.match(/[A-Z]/)) {
letters += cell;
}
if (cell === "+") {
[dy, dx] =
dy === 0
? [(dy = diagram[y + 1][x] === " " ? -1 : 1), 0]
: ([dy, dx] = [0, diagram[y][x + 1] === " " ? -1 : 1]);
}
}
}