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_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
    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}')
                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')

Your browser information:

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

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