0010 PROC flyt(n,taarn1,taarn2,taarn3)
0020   IF n>1 THEN flyt(n-1,taarn1,taarn3,taarn2)
0030   vis(n,taarn1,taarn2)
0040   IF n>1 THEN flyt(n-1,taarn3,taarn2,taarn1)
0050 ENDPROC flyt
0060
0070 PROC init
0080   page
0090   DIM hoejde(3), pos(3)
0100   hoejde(1):=antal
0110   pos(1):=5; pos(2):=30; pos(3):=55
0120   DIM skive$(antal) OF 24
0122   DIM tom$ OF 22
0124   DIM block$ OF 1
0130   block$:="#"
0140   tom$:="                     "
0150   skive$(1):="          "+block$+block$+"         "
0160   FOR i:=2 TO antal DO
0170     skive$(i):=skive$(i-1)(2:11)+block$+block$+skive$(i-1)(12:21)
0180   ENDFOR i
0190   FOR i:=1 TO antal DO
0200     skive$(i):=chr$(129+i MOD 3)+skive$(i)+chr$(129)
0210   ENDFOR i
0220   FOR y:=20 TO 21-antal STEP -1 DO
0230     PRINT AT y,pos(1): skive$(antal+y-20)
0240   ENDFOR y
0250 ENDPROC init
0260
0270 PROC vis(n,fra,til)
0280   x:=pos(fra)
0290   FOR y:=20-hoejde(fra) TO 20-antal STEP -1 DO
0300     PRINT AT y,x: skive$(n)
0310     PRINT AT y+1,x: tom$
0320   ENDFOR y
0330   retning:=sgn(til-fra)
0340   WHILE x<>pos(til) DO
0350     PRINT AT 20-antal,x: skive$(n)
0360     x:+retning
0370   ENDWHILE
0380   FOR y:=20-antal TO 20-hoejde(til) DO
0390     PRINT AT y,x: skive$(n)
0400     PRINT AT y-1,x: tom$
0410   ENDFOR y
0420   hoejde(fra):=hoejde(fra)-1; hoejde(til):=hoejde(til)+1
0430 ENDPROC vis
0440
0450 page
0460 PRINT "The towers of HANOI"
0470 PRINT
0480 INPUT "Height of the tower ( 1-10): ": antal
0490 init
0500 flyt(antal,1,2,3)
0510 PRINT AT 21,1:
