Contents of file named hanoi


* Towers of Hanoi:  3 stacks called A B C in BB vars A, B, C.
*  usage: m hanoi   
*    or   m hanoi setup  
if $1$ eq setup
   setbb A "" B "" C ""             ;* Clear out stacks
   do i from 1 to $2$
      setbb $3$ "%$3$% $i$"         ;* Add digit to stack end
   enddo
   message "Initial arrangement:  %A% | %B% | %C%"
elseif $1$ eq 1
   setbb tmp "(item 1 %$2$%)"       ;* Copy from stack top item
   setbb $2$ "(items 2 END %$2$%)"  ;* Remove from stack top item
   setbb $3$ "%tmp% %$3$%"          ;* Add item to top of to stack
   message "Move %tmp% from $2$ to $3$:  %A% | %B% | %C%"
else
   m hanoi (int ($1$ - 1)) $2$ (delete $2$ (delete $3$ 'ABC'))
   m hanoi 1 $2$ $3$
   m hanoi (int ($1$ - 1)) (delete $2$ (delete $3$ 'ABC')) $3$
endif