diff --git a/blindmaz.cmd b/blindmaz.cmd new file mode 100644 index 0000000..9393de7 --- /dev/null +++ b/blindmaz.cmd @@ -0,0 +1,68 @@ +## blindmaz.cmd -- solve maze by walking a left-handed blind mouse + +#7 set $seed +execute-file maze.cmd +#execute-file floodmaz.cmd +set %x 2 +set %y $curline +end-of-line +set %stopcol &sub $curcol 1 + +set %DX0 1 +set %DY0 0 +set %DX1 0 +set %DY1 1 +set %DX2 -1 +set %DY2 0 +set %DX3 0 +set %DY3 -1 + +set %dotc &asc "." + +12 store-macro + set %OX &ind &cat "%DX" %nD + set %OY &ind &cat "%DY" %nD + set %nx &add %x %OX + set %ny &add %y %OY + set $curline %ny + set $curcol %nx + !if &or &equ $curchar 32 &equ $curchar %dotc + !if &equ $curchar 32 + set %C %dotc + !else + set %C &asc " " # erase when backtracking (or highlight) + !endif + set %D %nD + set $curchar %C + set $curline %y + set $curcol %x + set $curchar %C + set %x &add %nx %OX + set %y &add %ny %OY + set $curline %y + set $curcol %x + set %res TRUE + !else + set %res FALSE + !endif +!endm + +set %D 0 # looking EAST +!while &les %x %stopcol + set %nD &mod &add %D 3 4 # Can go left? + execute-macro-12 + !if &seq %res FALSE + set %nD %D # Can go straight? + execute-macro-12 + !if &seq %res FALSE + set %nD &mod &add %D 1 4 # Can go right? + execute-macro-12 + !if &seq %res FALSE + set %D &mod &add %D 2 4 # Go back! + !endif + !endif + !endif +!endwhile +beginning-of-file +set $curline 3 +set $curcol 1