JSFiddle - React, Tailwind, and code Playground

by dschu012

JavaScript

var z = "  v      < "+"\n"+
">     v    "+"\n"+
"      >  ^ "+"\n"+
">         v"+"\n"+
"^ <       *";

var a = z.split("\n"),b=[],y=x=-1;
for(i in a) {
    b.push(a[i].split(""));
    if(x<0)
        x=a[i].indexOf("*"),y=i;
}
s(y,x);
function w() {
    for(i in b) {
        if(b[i].indexOf('v')>=0) return false;
        if(b[i].indexOf('>')>=0) return false;
        if(b[i].indexOf('<')>=0) return false;
        if(b[i].indexOf('^')>=0) return false;
    }
    return true;
}
function s(y,x) {
    var j=0;
    console.log(x,y);
    b[y][x]=' ';
    if(w())return;
    while(++j) {
        if(b[y-j]&&b[y-j][x]=='v'){s(y-j,x);break;}
        if(b[y][x-j]=='>'){s(y,x-j);break;}
        if(b[y][x+j]=='<'){s(y,x+j);break;}
        if(b[y+j]&&b[y+j][x]=='^'){s(y+j,x);break;}
    }
    console.log(y,x);
}
console.log(b);