Closed joserubiod closed 3 years ago
Hola @joserubiod, leí tu código y te puedo señalar lo siguiente:
N
jugadores, deberás ejecutar N
archivos client/main.py
en distintas ventanas de la consola. Es incorrecto que tengas dos instancias Cliente
llamadas cliente
y b_cliente
.backend.py
y client.py
tienes dos clases con el mismo nombre (Client
).Inferfaz
, que se encargue de establecer las conexiones y señales entre el frontend y el backend. Te ayudará muchísimo a estructurar mejor tu código. Las conexiones también las puedes hacer en el main. Pero ojo que actualmente las realizas en client.py
que es backend, lo cual no es apropiado. Así, tendrías principalmente estos archivos por cada cliente (los nombres pueden cambiar):
client.py
: backend que recibe la info del servidor y llama a la interfaz para enviar mensajes al frontend.interfaz.py
: punto de conexión entre el back y el front. Acá se instancian las clases del front, las señales y se establecen las conexiones.main.py
: instancia a la clase Client
Si decides usar una Interfaz
te recomiendo leer la issue #1180, además claramente de la actividad formativa 5, que te puede servir de punto de partida.
Éxito en la tarea!
Buena gracias ! Acabo de corregirlo como dices. Puedes echarle una mirada para ver si va bien porfa ?
Hola @joserubiod, gran avance! Felicitaciones
Ojo con lo siguiente: la interfaz debe instanciarse como self.controlador = Controlador(self)
. Dentro de Cliente
nunca debes instanciar o emitir una señal. Lo que se hace en el Clientes
es llamar a métodos de la Interfaz que dentro de ellos se emiten las señales correspondientes. Las señales deben instanciarse dentro de la Interfaz
(antes del init), no deben pasarse algunas como parámetros.
Entiendo la idea de mensaje_recibido
, pero la idea es que cada response
distinta tenga su propio método en la Interfaz
, y sea desde el Cliente
que se llame a un método específico dependiendo del dato.
Sigue así!
Prerrequisitos
(Marcar colocando una X entre los corchetes los ítems que ya hiciste, así: "[X]")
Duda
Estuve leyendo varias issues con respecto a señales que no se envían. Al principio creí que era eso lo que ocurría pero me di cuenta que lo que pasa es que cuando corro el main se instancia el cliente que recibe datos del server y luego no se siguen instanciando los demás archivos como la interfaz y el backend. Llevo mil horas tratando de arreglarlo pero no encuentro nada.
[De ser necesario, coloca tu pregunta de manera explícita utilizando este formato]