curriculum/challenges/english/blocks/learn-recursion-by-solving-the-tower-of-hanoi-puzzle/657b6a4a49faec5c600287ba.md
As a final step, reduce the indentation level of all the code after the return statement.
Well done. You have completed the Tower of Hanoi practice project.
You should reduce the indentation level of all the code after the return statement.
({ test: () => assert(runPython(`
a, b, c = [3, 2, 1], [], []
move(3, a, b, c)
a == [] and b == [] and c == [3, 2, 1]
`))
})
--fcc-editable-region--
NUMBER_OF_DISKS = 5
A = list(range(NUMBER_OF_DISKS, 0, -1))
B = []
C = []
def move(n, source, auxiliary, target):
if n <= 0:
return
# move n - 1 disks from source to auxiliary, so they are out of the way
move(n - 1, source, target, auxiliary)
# move the nth disk from source to target
target.append(source.pop())
# display our progress
print(A, B, C, '\n')
# move the n - 1 disks that we left on auxiliary onto target
move(n - 1, auxiliary, source, target)
# initiate call from source A to target C with auxiliary B
move(NUMBER_OF_DISKS, A, B, C)
--fcc-editable-region--
NUMBER_OF_DISKS = 5
A = list(range(NUMBER_OF_DISKS, 0, -1))
B = []
C = []
def move(n, source, auxiliary, target):
if n <= 0:
return
# move n - 1 disks from source to auxiliary, so they are out of the way
move(n - 1, source, target, auxiliary)
# move the nth disk from source to target
target.append(source.pop())
# display our progress
print(A, B, C, '\n')
# move the n - 1 disks that we left on auxiliary onto target
move(n - 1, auxiliary, source, target)
# initiate call from source A to target C with auxiliary B
move(NUMBER_OF_DISKS, A, B, C)