es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Qué cambios debo hacer para que mi salida devuelva Verdadero o Falso en función del estado actual en el tablero?

Estoy tratando de crear una versión fácil de t2048, por lo que estoy tratando de empezar encontrando si hay movimientos posibles o no basados en el tablero actual, y tengo una función ispossible(board: Board) que devuelve si es verdadero o falso.

En caso de que no sepas lo que significa 2048, esto es lo que es el juego… https://play2048.co/

No estoy tratando de recrear todo el juego, simplemente estoy tratando de hacer una versión simple que funcione.

def ispossible(board: Board)
    for i in range(0, board):
        for j in range(1, board):
            if [i][j - 1] == 0 and [i][j] > 0:
                return True
            elif ([i][j - 1] == [i][j]) and [i][j - 1] != 0:
                return True
    return False

Sin embargo, esto no funciona en absoluto ya que obtengo un “Error” cuando lo pongo como entrada.

print(ispossible([4,3,2,2],[2,2,8,16], [16,4,4,4], [4,4,4,4]))

¿Qué debo cambiar para asegurarme de que esto funcione?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Hay algunos errores en el código proporcionado:

    • La definición de la función falta un dos puntos al final de la línea.
    • La función “range” debería tomar la longitud del tablero como entrada, no el tablero en sí.
    • El indexado del tablero es incorrecto, debería ser “board[i][j]” en lugar de “[i][j]”.
    • La llamada a la función “ispossible([4,3,2,2],[2,2,8,16], [16,4,4,4], [4,4,4,4])” está pasando cuatro listas separadas, pero la definición de la función solo toma un argumento que debería ser una lista de listas.

    Aquí hay una versión corregida del código con estos errores resueltos:

    from typing import List
    
    def ispossible(board: List[List[int]]) -> bool:
        for i in range(0, len(board)):
            for j in range(1, len(board)):
                if board[i][j - 1] == 0 and board[i][j] > 0:
                    return True
                elif board[i][j - 1] == board[i][j] and board[i][j - 1] != 0:
                    return True
        return False
    
    print(ispossible([[4,3,2,2],[2,2,8,16], [16,4,4,4], [4,4,4,4]]))
    

    Este código debería producir la salida “True”, indicando que hay al menos una jugada posible en el tablero dado.

Comments are closed.