Learn Recursion by Solving the Tower of Hanoi Puzzle - Step 27

Please help correct my code. I’ve done it just as they need it, and it runs on the console but it still won’t proceed.

``````NUMBER_OF_DISKS = 3
number_of_moves = 2**NUMBER_OF_DISKS - 1
rods = {
'A': list(range(NUMBER_OF_DISKS, 0, -1)),
'B': [],
'C': []
}

def move(n, source, auxiliary, target):
# display starting configuration
print(rods)
for i in range(number_of_moves):
remainder = (i + 1) % 3
if remainder == 1:
print(f'Move {i + 1} allowed between {source} and {target}')
forward = False
if not rods[target]:
forward = True
elif rods[source] and rods[source][-1] < rods[target][-1]:
forward = True

# User Editable Region

if forward:
print(f'Moving disk {rods[source][-1]} from {source} to {target}')
rods[target].append(rods[source].pop())
else:
print(f'Moving disk {rods[target][-1]} from {target} to {source}')

# User Editable Region

elif remainder == 2:
print(f'Move {i + 1} allowed between {source} and {auxiliary}')
elif remainder == 0:
print(f'Move {i + 1} allowed between {auxiliary} and {target}')

# initiate call from source A to target C with auxiliary B
move(NUMBER_OF_DISKS, 'A', 'B', 'C')
``````

User Agent is: `Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0`

Challenge Information:

Learn Recursion by Solving the Tower of Hanoi Puzzle - Step 27

The instructions: “… the disk has to be moved in the opposite direction.”

Following the instructions, you should add the code line that secures the disk is moving in the opposite direction. That means adding the same line as for the ‘True’ condition: rods[target].append(rods[source].pop()), but interchanging the second and fourth arguments from the ‘move’ function, in this line.

Thank you,
I didn’t understand the instruction.

1 Like

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.