 # Why is my movement.py code failing?

My movement.py code is failing and I can not figure out why. I have tried printing the incoming parameters and they appear to be coming in as 0 for x and -1 for y and not the actual parameters supplied. I really need help and thank you in advance.

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
x1,y1 = direction

while True:

if x == 0 and x1 == -1:
hp -= 5
break
if x == 9 and x1 == 1:
hp -= 5
break
if y == 0 and y1 == -1:
hp -= 5
break
if y == 9 and y1 == 1:
hp -= 5
break
if x1 == -1:
x -= 1
if x1 == 1:
x += 1
if y1 == -1:
y -=1
if y1 == 1:
y += 1
return(x,y,hp)
``` MOD

Consider this function to be handling a single key press, it probably gets executed every game loop, which is quite often. So when a player hits a key they don't expect their character to continue in that direction until they hit a wall.

As it stands your code will not break out of the `while` loop until a collision occurs.

As you're using the `break`s to get to your `return`, why not just `return` on your conditional branches?

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

#handle left collision
if direction < 0 and x == 0:
return(x, y, hp - 5)

#handle right collision
if direction > 0 and x == 9:
return(x, y, hp - 5)

#handle up collision
if direction > 0 and y == 9:
return(x, y, hp - 5)

#handle down collision
if direction < 0 and y == 0:
return(x, y, hp - 5)

#handle valid move
return x + direction, y + direction, hp
```