adventjs-issues icon indicating copy to clipboard operation
adventjs-issues copied to clipboard

Reto 9 inconsistencia en resultado de ejecución

Open blasferna opened this issue 10 months ago • 1 comments

No es la primera vez que me pasa, el resultado en la plataforma no es igual al resultado cuando lo ejecuto en mi interprete de Python.

Por ejemplo:

from typing import List, Literal


def move_train(
    board: List[str], mov: Literal["U", "D", "R", "L"]
) -> Literal["none", "crash", "eat"]:
    i = 0
    state = "none"
    for e in board:
        index = e.find("@")
        if index != -1:
            if mov == "U":
                if i > 0:
                    prev = board[i - 1]
                    if prev[index] == "*":
                        return "eat"
                    if prev[index] == "·":
                        return "none"
                if i == 0:
                    return "crash"
            if mov == "D":
                if i + 1 < len(board):
                    next = board[i + 1]
                    if next[index] == "o":
                        return "crash"
                    if next[index] == "*":
                        return "eat"
                    if next[index] == "·":
                        return "none"
            if mov == "L":
                if index == 0:
                    return "crash"
                if e[index - 1] == "*":
                    return "eat"
                if e[index - 1] == "o":
                    return "crash"
                if e[index - 1] == ".":
                    return "none"
            if mov == "R":
                if index + 1 == len(e):
                    return "crash"
                if e[index + 1] == "*":
                    return "eat"
                if e[index + 1] == "o":
                    return "crash"
                if e[index + 1] == "·":
                    return "none"
        i += 1
    return state


if __name__ == "__main__":
    print(move_train(["··@··", "··o··", "·*o··", "··o··", "··o··"], "U"))

La salida es:

crash

Pero en Adventjs la salida es:

imagen

La forma de hacer que pase es basicamente haciendo trampa:

    for e in board:
        if "@" in e and i == 0 and mov=="U":
            return "crash"

Mi teoría es que str.find("@") no retorna el valor correcto, pero también he probado averiguar el indice de la forma más basica posible (con un blucle for), pero de igual manera no funciona.

Ya ha pasado en retos anteriores y tuve que cambiar algunas sintaxis.

blasferna avatar Dec 09 '24 12:12 blasferna