ver,hor:=make_maze(); // see above link for this code fcn munge(a,b){ String(a[0,2],b,a[3,*]) } // "+---" --> "+-*-" fcn solveMaze(ver,hor, a,b, u,v, w,h){ if (a==u and b==v) return(True); sh:=hor[b][a]; sv:=ver[b][a]; hor[b][a]=munge(sh,"*"); ver[b][a]=munge(sv,"*"); // drop breadcrumb foreach dx,dy in (T( T(0,-1),T(1,0),T(0,1),T(-1,0) )){ x:=a+dx; y:=b+dy; hy:=hor[y]; vy:=ver[y]; if ( (0<=x