# Move function code challenge: need help understanding what is wrong or required.

Here is the code i gave:

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

```x += a
if x < 0:
hp -= 5
x = 0  # also tried x -= a
elif x > 9:
hp -= 5
x = 9 # also tried x -= a
else:
y += b
if y < 0:
hp -= 5
y = 0 # also tried y -= a

elif y > 9:
hp -= 5
y = 9 # also tried y -= a

return x, y, hp
```

## 1 Answer Hello, the only problem with your code is that you're checking the player's current position instead of where they are trying to move to.

• In this case to make it easier to understand I renamed your (a, b) variables into xdir and ydir (x - direction, y - direction).
• After setting the variables you have to check if the player wants to move left or right, (if xdir is -1 or 1)
• Then to make sure they don't cross the invisible border and leave the game so you'd have to check if they are on 0, or 9 as moving left on 0 would mean they exit and are moved to -1 and so on...
• If it's a valid move then apply the change to their current position on x
• You re-do the same thing for y
• And finally return it
```def move(player, direction):
x, y, hp = player
xdir, ydir = direction

#Checking whether it moves right or left
#-1 moves left, 1 moves right
if xdir == -1:
if x != 0:
x -= 1
else:
hp -= 5

elif xdir == 1:
if x != 9:
x += 1
else:
hp -= 5

#Checking whether it moves up or down
#-1 moves down, 1 moves up
if ydir == -1:
if y != 0:
y -= 1
else:
hp -= 5

elif ydir == 1:
if y != 9:
y += 1
else:
hp -= 5

#Sending back the changed positions and hp
return x, y, hp
```