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

Tell us what’s happening:

Apart from not being able to execute the instructions - the functionality of the lesson module is appalling.
If you use the browser back button to take you back to the previous step so that you can complete it again (assuming that by doing so you will be able to start the problem step afresh) it loads up the same mess you just tried to reverse out of. That’s not helpful.
You don’t want to hit the reset button as this seems to imply that you’ll reset the whole lesson and will have to start again.

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': []
}

# User Editable Region

def make_allowed_move(rod1, rod2):
    if remainder == 1:    
        forward = True
    elif rods[source] and rods[source][-1] < rods[target][-1]:
        forward = True
    if forward:
            
        rods[target].append(rods[source].pop())
    else:
        print(f'Moving disk {rods[target][-1]} from {target} to {source}')
        rods[source].append(rods[target].pop())

    # display our progress
        print(rods)
    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}')
    
    forward = False
    if not rods[target]:
        pass
            


def move(n, source, auxiliary, target):
    # display starting configuration
    print(rods)
    for i in range(number_of_moves):
        remainder = (i + 1) % 3
        
            print(f'Moving disk {rods[source][-1]} from {source} to {target}')
            print(f'Move {i + 1} allowed between {source} and {target}')
            

# User Editable Region

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

Challenge Information:

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

The reset button resets the code for a single step, which seems what you would like to do, right?

Also, if you go to the settings, you can enable keyboard shortcuts to navigate between the steps pressing ESC + n and p.

Going back to this step, it says Move the code nested inside the first if statement (except the first print() call) to your new function.

The green block is the code nested inside the first if:


You need that, except the first print call.

Your code from a previous step does not carry forward to the next steps, each step is independent in this way.

So, you cannot go down a wrong path over multiple steps. When you go to the next step pre-written code is loaded at the correct starting point for that step.

If you go back to a previous step, what you written will still be there. Presumably it will already be correct since you would pass that step and go to the next?