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

Tell us what’s happening:

good day honestly been on this keeps giving me an error .

Your code so far

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

# User Editable Region

            if not rods[target]:
                print(rods[target])
                
            forward = True
            elif not rods[source] and rods[source][-1] < rods[target][-1]:
                print(rods[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/131.0.0.0 Safari/537.36 OPR/116.0.0.0 (Edition ms_store)

Challenge Information:

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

Hi @karaboMyth99

Try placing the forward assignment in the elif block.

Happy coding

Here is the starting code:

            if not rods[target]:
                forward = True

Add an elif statement to check this condition. Then, set the forward variable to True if the condition is met.

You’ve changed the starting code too much, instead of just adding an elif.

forward = True is no longer within the if statement.

You are not asked for any print statements.

Your elif gives a hint:

You should have an elif statement to check if rods[source] is not empty and rods[source][-1] < rods[target][-1].

Let’s say rods[source] = 1, so it’s not empty. Is (not rods[source]) True or False?