Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Python Python Collections (2016, retired 2019) Dungeon Game Hit points

Not sure what is wrong with movement.py

Can I get some help with this bug?

movement.py
# EXAMPLES:
# move((1, 1, 10), (-1, 0)) => (0, 1, 10)
# move((0, 1, 10), (-1, 0)) => (0, 1, 5)
# move((0, 9, 5), (0, 1)) => (0, 9, 0)

def move(player, direction):
    x, y, hp = player
    w,z = direction
    for x,y,hp in player and w,z in direction:
        x = x + w
        y = y + z
        if x < 0:
            x == 0
            hp = hp - 5
        if x > 9:
            x == 9
            hp = hp - 5
        if y < 0:
            y == 0
            hp = hp - 5
        if y > 9:
            y == 9
            hp = hp - 5

    return x, y, hp

2 Answers

Wade Williams
Wade Williams
24,476 Points

A couple of things, you can remove the for loop as we're only performing 1 move and when assigning x and y to 0 or 9 if they hit a wall, you only use one equal sign, you currently are using "==" which tests for equality.

def move(player, direction):
    x, y, hp = player
    w,z = direction

    x = x + w
    y = y + z
    if x < 0:
        x = 0
        hp = hp - 5
    if x > 9:
        x = 9
        hp = hp - 5
    if y < 0:
        y = 0
        hp = hp - 5
    if y > 9:
        y = 9
        hp = hp - 5

    return x, y, hp

Hi Wade,

Just a basic question - Why are performing this step x=x+w y=y+z

In other words, why are we adding co-ordinates of direction with x and y?