#!/usr/bin/python
#Copyleft (C) 1996 William Totten
#biell@udel.edu

#This program implements a solution to the Towers of Hanoi problem

from sys import argv
from posix import times, system
from time import sleep

PYTHONPATH='.'
from stack import stack

#Move: n rings from peg1 to peg2, using peg3 as temp space
#recursive version:
def move(n, p1, p2, p3):
	if(n<=0):
		return
	move(n-1, p1, p3, p2)
	p2.push(p1.pop())
	pprint()
	move(n-1, p3, p2, p1)

def bprint():
	print peg1, peg2, peg3

def pprint():
	sleep(0.3)
	system("clear")
	print peg1, "\n", peg2, "\n",  peg3

if __name__ == '__main__':
	n=eval(argv[1])

	peg1=stack(range(n, 0, -1)); peg2=stack(); peg3=stack()

	t=times()[0]
	move(n, peg1, peg2, peg3)
	print "\nUser Time: ", times()[0] - t
