Revise maze test scripts.

This commit is contained in:
Renaud 2021-09-01 09:40:34 +08:00
parent 60a56b74b0
commit 95118b61c8
4 changed files with 57 additions and 49 deletions

View File

@ -1,11 +1,13 @@
## blindmaz.cmd -- solve maze by walking a left-handed blind mouse
#7 set $seed
#execute-file maze.cmd
#execute-file floodmaz.cmd
execute-file sharpmaz.cmd
set %x 2
set %y $curline
# either maze.cmd, sharpmaz.cmd or floodmaz.cmd
execute-file floodmaz.cmd
set %meml $curline # save entrance location
set %memc $curcol
set %x &add %memc 1
set %y %meml
end-of-line
set %stopcol &sub $curcol 1
@ -18,7 +20,7 @@ set %DY2 0
set %DX3 0
set %DY3 -1
set %dotc &asc "."
set %dotc &asc "" # alternatively use "."
store-procedure probe
set %OX &ind &cat "%DX" %nD
@ -65,7 +67,6 @@ set %D 0 # looking EAST
!endif
!endif
!endwhile
beginning-of-file
set $curline 3
set $curcol 1
set $curline %meml
set $curcol %memc
unmark-buffer

View File

@ -1,7 +1,12 @@
## floodmaz.cmd -- solve maze by painting right wall
# 6 set $seed
execute-file maze.cmd
# either maze.cmd or sharpmaz.cmd
execute-file sharpmaz.cmd
set %thisbuf $cbufname
set %meml $curline
set %memc $curcol
store-procedure pushxy # push x y
set %x $curcol
@ -27,6 +32,12 @@ store-procedure popxy # pop x y
set $curcol %x
!endm
store-procedure probe
!if &not &or &equ $curchar %NC &equ $curchar 32
run pushxy
!endif
!endm
set $curline 1
set $curcol 0
run pushxy #push stop position
@ -40,27 +51,20 @@ set %NC &asc "█"
set %cc $curcol
set %ll $curline
set $curcol &add %cc 1
!if &equ $curchar %OC
run pushxy
!endif
run probe
set $curcol &add %cc -1
!if &equ $curchar %OC
run pushxy
!endif
run probe
set $curline &add %ll 1
set $curcol %cc
!if &equ $curchar %OC
run pushxy
!endif
run probe
set $curline &add %ll -1
set $curcol %cc
!if &equ $curchar %OC
run pushxy
!endif
run probe
run popxy
!endwhile
set $curline 3
set $curcol 1
set $curline %meml
set $curcol %memc
select-buffer stack
unmark-buffer
select-buffer %thisbuf

View File

@ -1,6 +1,7 @@
# record seed
## maze.cmd -- draw a block maze
# 5 set $seed
set %S $seed
set %S $seed # record seed
# setup direction offsets
set %D1 0

View File

@ -1,51 +1,53 @@
## sharpmaz.cmd -- redraw a block maze using line characters
execute-file maze.cmd
set %meml $curline
set %memc $curcol
end-of-line
set %ec &sub $curcol 1
end-of-file
set %el &sub $curline 1
set $curline %el
previous-line
set %spaces $line
set $curline 1
beginning-of-file
set %old $line
set $line %spaces
set %l 2
!while &less %l %el
set $curline %l
set %c 1
!while &less %c %ec
set $curcol %c
next-line
!while &less $curline %el
set $curcol 1
!while &less $curcol %ec
!if &not &equ $curchar 32
set %v 0
set $curline &sub %l 1
set $curcol %c
previous-line
!if &not &equ $curchar 32
set %v &add %v 1
!endif
set $curline %l
set $curcol &sub %c 1
next-line
backward-character
!if &not &equ $curchar 32
set %v &add %v 2
!endif
set $curcol &add %c 1
2 forward-character
!if &not &equ $curchar 32
set %v &add %v 4
!endif
set $curline &add %l 1
set $curcol %c
next-line
backward-character
!if &not &equ $curchar 32
set %v &add %v 8
!endif
set $curline %l
set $curcol %c
set $curchar &asc &mid "╵╴┘╶└─┴╷│┐┤┌├┬┼" &add %v 1 1
previous-line
# alternatively use single width "╳╵╴┘╶└─┴╷│┐┤┌├┬┼"
set $curchar &asc &mid "╹╸┛╺┗━┻╻┃┓┫┏┣┳╋" &add %v 1 1
!endif
set %c &add %c 1
forward-character
!endwhile
set %l &add %l 1
next-line
!endwhile
set $curline 1
beginning-of-file
set $line %old
set $curline 3
set $curcol 1
set $curline %meml
set $curcol %memc