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

Tell us what’s happening:

I try and I try and I can’t reduce the indentation as the step ask, I don’t know what I am doing wrong. Please give me some hints

Your code so far


# User Editable Region

NUMBER_OF_DISKS = 5
A = list(range(NUMBER_OF_DISKS, 0, -1))
B = []
C = []

def move(n, source, auxiliary, target):
    if n <= 0:
        return
        # move n - 1 disks from source to auxiliary, so they are out of the way
        move(n - 1, source, target, auxiliary)
        
        # move the nth disk from source to target
        target.append(source.pop())
        
        # display our progress
        print(A, B, C, '\n')
        
        # move the n - 1 disks that we left on auxiliary onto target
        move(n - 1,  auxiliary, source, target)
              
# initiate call from source A to target C with auxiliary B
move(NUMBER_OF_DISKS, A, B, C)

# User Editable Region

Your browser information:

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

Challenge Information:

Learn Recursion by Solving the Tower of Hanoi Puzzle - Step 55
https://www.freecodecamp.org/learn/scientific-computing-with-python/learn-recursion-by-solving-the-tower-of-hanoi-puzzle/step-55`Preformatted text`

None of the code has the indentation reduced, it appears to be unchanged.

What are you doing to reduce the indentation and which code are you applying it to? It’s hard to tell what’s not working.

You can select/highlight the block of code that you want to reduce indentation and press “shift+tab”

1 Like
 return

    # move n - 1 disks from source to auxiliary, so they are out of the way
        move(n - 1, source, target, auxiliary)

    # move the nth disk from source to target
        target.append(source.pop())

    # display our progress
        print(A, B, C, '\n')

    # move the n - 1 disks that we left on auxiliary onto target
        move(n - 1,  auxiliary, source, target)
            
# initiate call from source A to target C with auxiliary B
move(NUMBER_OF_DISKS, A, B, C)

Thanks I didn’t know about the shift+tab trick

1 Like

That’s a good one that’s very useful.

There’s actually a ton of features built into the editor. You can right-click in the editor and select “command palette”. Probably not that useful for most of these step problems but it comes in handy sometimes.

That’s really helpful thanks for sharing !

1 Like