NB. tree maze traversal NB. 2008/7/7 wr =: 1!:2&2 rd =: 1!:1 DA =: 'RS';'SA';'SD';'AB';'AC';'B_';'C_';'DE';'EF';'EG';'F_';'G_';'DH';'HI';'HJ';'I_';'J_' tra =: 3 : 0 i =. 0 DM =. '' DMA =. '' DN =. '' D =. 'R' label_LOOP. wr 'i=', (":i), ' ', D if. 'G' = D do. goto_FIN. end. DM =. (((> {. L:0 DA) i. D){DA), DM wr 'DM:';DM DN =. ( ((D = > {. L:0 DA)#i.#DA){DA), DN DN =. DN -. DMA wr 'DN:';DN YN =. rd 1 if. 0<#YN do. return. end. wr D =. {: > {. DN if. '_' = D do. wr 'back_truck:' DN =. }. DN NB. wr 'DN:';DN DX =. {. > 0{DM DNX =. (-. > DX e. L:0 DN)#DN wr 'DNX:';DNX D =. {: > {. DNX end. DMA =. 0{DM i =. i + 1 goto_LOOP. label_FIN. wr 'Route to Goal:' |. ('G'; {. L:0 DM) , L:0 ' ' ) tr =: 3 : 0 i =. 0 DM =. '' DMA =. '' DN =. '' D =. 'R' label_LOOP. wr 'i=', (":i), ' ', D DM =. (((> {. L:0 DA) i. D){DA), DM wr 'DM:';DM DN =. ( ((D = > {. L:0 DA)#i.#DA){DA), DN DN =. DN -. DMA wr 'DN:';DN DR =. DM -. 0{DN wr 'DR:'; DR YN =. rd 1 if. 0<#YN do. return. end. wr D =. {: > {. DN if. '_' = D do. wr 'back:' DN =. }. DN wr 'DN:';DN wr 'DX:';DX =. {. > 0{DM DNX =. (-. > DX e. L:0 DN)#DN wr 'DNX:';DNX D =. {: > {. DNX end. wr DMA =. 0{DM i =. i + 1 goto_LOOP. )