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

Tell us what’s happening:

So… I just tried a thousand times and it keeps wrong ;-; what should I do?

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]:
                forward = True
            elif rods[source][-1] < rods[target][-1]:
                forward = True

# 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/122.0.0.0 Safari/537.36

Challenge Information:

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

A thousand times is more than a lot of times. Could you explain in your own words what it is that the request is asking?

Hi @AllieN

The other case in which you have to move the disk necessarily from source to target is when the source list is not empty and the last disk in source is lower than the last disk in target .

There are two keywords highlighted in the instructions.

Happy coding

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