Learn Recursion by Solving the Tower of Hanoi Puzzle - Step 31. I'm stock I help

Tell us what’s happening:

Describe your issue in detail here.

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):
    forward = False
    if not rods[target]:
        forward = True
    elif rods[rod1] and rods[rod1][-1] < rods[target][-1]:
        forward = True              
    if forward:
        print(f'Moving disk {rods[rod1][-1]} from {rod1} to {rod2}')
        rods[target].append(rods[ro1].pop())
    else:
        print(f'Moving disk {rods[target][-1]} from {target} to {rod2}')
        rods[rod2].append(rods[target].pop())
    
    # display our progress
    print(rods)

# User Editable Region

 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}')            
        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 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6 Safari/605.1.15

Challenge Information:

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

You appear to have created this post without editing the template. Please edit your post to Tell us what’s happening in your own words.

1 Like

I need help with it please

Don’t change the given code, just move it as the instructions say. For example, you changed the posted line above from the code line in this challenge:

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

‘source’ vs ‘rod’ etc.

Reset the step.
Select the required code lines, cut them (Ctrl + X), and paste them instead of the ‘pass’ in the make_allowed_move function. Pay attention to the indentation.

1 Like