Abdulg

Recursive hanoi

Nov 16th, 2015
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.53 KB | None | 0 0
  1. pins = []
  2. numOfDiscs = 4
  3. numOfPins = 3
  4.  
  5. def moveDisc(fromRod, toRod):
  6.     pins[fromRod - 1] -= 1;
  7.     pins[toRod - 1] += 1;
  8.  
  9. def moveDiscs(fromRod, toRod, n):
  10.     if (n == 1):
  11.         moveDisc(fromRod, toRod)
  12.         print(pins)
  13.     else:
  14.         spareRod = 1;
  15.         while (spareRod == fromRod or spareRod == toRod):
  16.             spareRod += 1
  17.        
  18.         moveDiscs(fromRod, spareRod, n-1)
  19.        
  20.         moveDisc(fromRod, toRod)
  21.         print(pins)
  22.        
  23.         moveDiscs(spareRod, toRod, n-1)
  24.  
  25. pins.append(numOfDiscs)
  26. pins.extend([0] * (numOfPins - 1))
  27. moveDiscs(1, numOfPins, numOfDiscs)
Advertisement
Add Comment
Please, Sign In to add comment