Python Python Collections Dungeon Game Hit points

Sergey Chekurin
Sergey Chekurin
1,340 Points

Function move() doesn't pass through checking

Hey, I can not understand why this code doesn't pass checking. Examples work correctly.

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
    dx, dy = direction

    if (x + dx < 0) or (x + dx > 9) or (y + dy < 0) or (y + dy > 9):
        hp -= 5
    else:
        x += dx
        y += dy

    return x, y, hp

1 Answer

Sergey Chekurin
Sergey Chekurin
1,340 Points

Oh, I found the problem. Maby it will help somebody.

It was due to tabs and spaces. I had:

(space)(space)(space)(space)x, y, hp = player

(space)(space)(tab)dx, dy = direction

Indents were the same and visually not visible

After I had done

(space)(space)(space)(space)x, y, hp = player

(space)(space) (space)(space)dx, dy = direction

it passed through checking.

Have a nice day!