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 trialAndrew McLane
3,385 PointsNot sure what is wrong with movement.py
Can I get some help with this bug?
# 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
24,476 PointsA 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
Mohammed Ismail
7,190 PointsHi 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?