Bienvenido a la Comunidad de Treehouse

¿Quieres colaborar en errores de código? ¿Tienes errores que necesitan comentarios? ¿Buscas un par de ojos adicionales en tu último proyecto? aquí.

¿Buscas aprender algo nuevo?

Treehouse ofrece una prueba gratuita de siete días para estudiantes nuevos. Obtén acceso a miles de horas de contenido y únete a miles de

Inicia tu prueba gratuita

Python Python Orientado a Objetos Básico Crear un juego de memoria Clase Game Parte 2

Artithaya Bachner
Artithaya Bachner
1,719 Puntos

El código solo imprime [] sin nada dentro

from tarjetas import Tarjeta 
import aleatorio 



class Game:
    def __init__(self): #tamaño de cuadrícula
        self.tamaño = 4
        self.opciones_tarjeta = ['perro', 'gato', 'huevo', 'té', # opciones de tarjeta 
                             'wii', Fuente, 'sol', 'aceite']
        self.columnas = ['A', 'B', 'C', 'D'] # columnas
        self.tarjetas =  # tamaño 
        self.ubicaciones =  # ubicaciones
        para columna en self.columnas: 
            para num en rango (1, self.tamaño + 1):
               self.ubicaciones.append(f'{columna}{número})')

    def establecer_tarjetas(self):
        ubicaciones_usadas = 
        para palabra en self.opciones_tarjeta:
            para i en rango(2):  # porque cada tarjeta aparece dos veces
                ubicaciones_disponibles = establecer(self.ubicaciones) - establecer(ubicaciones_usadas)
                ubicación_aleatoria = aleatorio.choice(list(ubicaciones_disponibles))
                ubicaciones_usadas.append(ubicación_aleatoria)
                de = Tarjeta(palabra, ubicación_aleatoria)
                self.tarjetas.append(de)





# métodos 

    def crear_fila(self, num): 
        row = 
        para columna en self.columnas:
            para de en  self.tarjetas:
                if de.ubicación == f'{columna} {número}':
                    if de.coincidido: 
                        row.append(str(de))
                    else:
                        row.append('   ')
        return row 

    # crear tarjetas 
    # crear cuadrícula 
    # verificar coincidencias
    # verificar si se ha ganado el juego
    # ejecutar el juego

# dunder main 
if __name__ == '__main__': 
    game = Game()
    game.establecer_tarjetas()
    game.tarjetas[0].coincidido = Verdadero 
    game.tarjetas[1].coincidido = Verdadero 
    game.tarjetas[2].coincidido = Verdadero 
    game.tarjetas[3].coincidido = Verdadero 
    print(game.crear_fila(1))
    print(game.crear_fila(2))
    print(game.crear_fila(3))
    print(game.crear_fila(4))
    #crear instancia de juego

1 Respuesta

Steven Parker
Steven Parker
244 163 puntos

Veo dos problemas:

# línea 16:
               self.ubicaciones.append(f'{columna}{número})')
#                                                   👆🏻
#                                                   esto añade un ")" espurio a la cadena
# y línea 38:
                if de.ubicación == f'{columna} {número}':
#                                             👆🏻
#                                             esto añade un espacio entre las partes de la ubicación

Cualquiera de estos causará que la coincidencia de ubicación falle.

Artithaya Bachner
Artithaya Bachner
1,719 Puntos

¡oh Dios, gracias muchísimo! realmente son las cosas pequeñas jajaja