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

Python Collections: "move" function works fine in Workspaces, but the challenge says "Hmm, didn't get the right results"

Can someone help me?

I'm stuck... I even tried in Workspaces and it worked just fine.

What could've tripped me here? I've tried my hardest (I was stuck on this challenge for 20 minutes straight).

I'd appreciate any response :)

Tagging Kenneth Love

movement.py
def move(player, direction):
    x, y, hp = player

    moves = [(-1, 0), (1, 0), (0, 1), (0, -1)]
    if x == 0:
        moves.remove((-1, 0))
    if x == 9:
        moves.remove((1, 0))
    if y == 0:
        moves.remove((0, -1))
    if y == 9:
        moves.remove((0, 1))

    if direction not in moves:
        hp -= 5
    else:
        if direction == (0, -1):
            x -= 1
        if direction == (0, 1):
            x += 1
        if direction == (-1, 0):
            y -= 1
        if direction == (1, 0):
            y += 1

    return x, y, hp

1 Answer

Jennifer Nordell
seal-mask
STAFF
.a{fill-rule:evenodd;}techdegree
Jennifer Nordell
Treehouse Teacher

Hi there, Alexander! You're so close here that you're probably either going to laugh or cry :smiley: Somehow you've managed to mix up your x and y coordinates. Take a look at this example from your code.

if direction == (0, -1):
            x -= 1

This essentially is saying if the direction is down move one to the left. Cartesian coordinates are, by convention, listed as x first and then y (x, y). We use x for the horizontal axis and y for the vertical axis. Try changing around your x and y values in your last four if statements.

Hope this helps! :sparkles:

Lol yeah I laughed so hard XD Thanks!

P.S.: I always mix up x and y's when I'm programming lol