Code archives/Miscellaneous/Tower of Hanoi
This code has been declared by its author to be Public Domain code.
Download source code
| |||||
| This code was converted from my C++ recursive assignment. It solves the puzzle of the Tower of Hanoi. I wouldn't recommend trying any more than 20 discs..or you'll be waiting a while! | |||||
; Tower of Hanoi
; by Neuro 11-20-02
; -----------------
; Legend has it that in a temple in India, there stands 3 crystal pegs.
; On the first peg, there are 64 gold discs, each biggest at the bottom and smallest
; at the top. The monks in the temple must move all the discs from the first peg to
; the third. But since each discs are so fragile, that only one can be moved at a time
; and a larger disc can not be placed on top of a smaller disc.
; It is said, that when monks completely move each disc to the third pegs, the temple
; will collapse and thus be the end of the world.
; This was originally a C++ recursive assignment givin to me by my professor.
; After messing with this for so long, I finnally got it working. So then I decided to
; try it out on Blitz. And it worked!
; BTW, this is my first Blitz program.
Global counter=0
Function domove(n, a, c, b) ;# of disc, first peg, last peg, middle peg
If (n=1)
Print a +"->"+c ;Prints to screen after movement completed
counter=counter+1
Else
domove(n-1,a,b,c) ;move n-1 from peg 1 -> peg 2
domove(1,a,c,b) ;move last disc(1) from peg 1 -> peg 3
domove(n-1,b,c,a) ;move n-1 disc from peg 2 -> peg 3
EndIf
End Function
.Main
Print "Tower of Hanoi" : Print
Print " 64 disc is not recommended!" : Print
disc=Input(" Enter number of disc : ")
domove(disc,1,3,2)
Print "Total number of moves : "+ counter
WaitKey() |
Comments
None.
Code Archives Forum