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

Tell us what’s happening:

I can’t understand why this wouldn’t work when checking for source being empty and checking the last places against each other

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] != [] and 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/126.0.0.0 Safari/537.36

Challenge Information:

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

This works the same, but the test wants you to write it in a different way.
In this case you don’t need to compare rod[source] with anything. If rod[source] is not empty, rod[source] itself used as a condition gives True.

On the same subject but not understanding what you mean by rod[source] itself giving true condition?

values are divided between truthy and falsy, when put in a boolean envirnment, like when using a logical operator or as condition of an if statement, the truthy values behave like True and the falsy value behave like False

I just figured it out, but still not sure how I came to the conclusion :laughing:

It is great that you solved the challenge, but instead of posting your full working solution, it is best to stay focused on answering the original poster’s question(s) and help guide them with hints and suggestions to solve their own issues with the challenge.

We are trying to cut back on the number of spoiler solutions found on the forum and instead focus on helping other campers with their questions and definitely not posting full working solutions.