Python Python Collections Dungeon Game Hit points

Elias Helander
Elias Helander
1,435 Points

What is wrong?

It gets the wrong value. What am I doing wrong?

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
    a, b = direction
    if x + a > 0:
        x += 0
        hp -= 5
    if x + a < 9:
        x += 0
        hp-=5
    if y + b > 0:
        y += 0
        hp -= 5
    if y + b < 9:
        y += 0
        hp-=5

    return x, y, hp

1 Answer

Tomas Svojanovsky
Tomas Svojanovsky
21,302 Points

Hello, you don't solve the situation when it is ok and too many ifs

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

    if x + toX < 0 or y + toY < 0 or x + toX > 9 or y + toY > 9:
        hp -= 5
    else:
        x += toX
        y += toY

    return x, y, hp