IIC2233 / Syllabus-2023-1

75 stars 44 forks source link

Conexión de un 5to cliente cuando la sala esta llena o cuando existe una partida en juego. #483

Open tremendapithon opened 1 year ago

tremendapithon commented 1 year ago

Prerrequisitos

(Marcar colocando una X entre los corchetes los ítems que ya hiciste, así: "[X]")

Duda

Hola buenas tengo una consulta respecto a que tengo que hacer con un cliente que se trata de conectar al momento de que la sala este llena o exista una partida en juego, yo en mi caso simplemente descarto su conexión y le aviso que existe una partida en juego o que la sala esta llena.

El enunciado no especifica que hacer en estos casos, sólo que hay que enviarle un mensaje o popup.

MelanyLillo commented 1 year ago

Hola! En ese caso el jugador no se conectará a la partida y se mantendrá en la ventana de inicio, además se le notifica que la sala está llena u ocupada mediante un pop-up. Avísame si se respondió tu duda😊

tremendapithon commented 1 year ago

No se conecta, pero tengo que dejarlo en alguna clase cola o en espera hasta que pueda volver a conectarse?

MelanyLillo commented 1 year ago

No es necesario, simplemente no podrá entrar. Ahora, si dentro de la sala de espera algún jugador se sale, dejando una vacante, este jugador que no pudo entrar previamente podrá entrar.

pulpaulaa commented 1 year ago

@MelanyLillo No estoy entendiendo cómo funcionan las señales/envío de mensajes para este caso, en que el quinto jugador intenta conectarse a la sala de espera pero ya hay 4 jugadores conectados. Si el NUMERO_JUGADORES es 4, no debería poder conectarse al servidor el quinto jugador, ¿o si? por lo que no entiendo cómo el servidor le manda un mensaje a ese quinto cliente para mostrar el pop up si no están conectados. (No estoy hablando de la partida, solo de la sala de espera). Había hecho una issue al respecto antes de esta pero me mandaron para acá

En caso de que sí se deba conectar al servidor, entonces sería que hay 5 jugadores conectados, y luego de revisar si ya hay 4, se muestra el pop up y se desconecta a ese cliente? (En la página 9 del enunciado dice que hay que respetar el número de jugadores dado por parametros.json para conectarse y desconectarse (4), por lo que no sé si esto estaría correcto)

MelanyLillo commented 1 year ago

Hola! En el momento en que un jugador abre su ventana de inicio, este se conecta con el servidor, por lo que se podrán comunicar. El tema con el quinto jugador es que no se conectará a la ventana de espera. Avísame si se resolvió tu duda😊

FelipeIGS commented 1 year ago

Hola! Sigo con la duda, en el caso que no cumpla las condiciones para la sala de espera, ya sea por juego en curso o sala de espera llena, muestro el pop up; luego que hago? Es legal que desconecte al cliente del servidor?

Ademas, la acotacion de que el 5to jugador no se conectara a la ventana de espera se me hace rara, ya que igual hay que mostrar la ventana de espera con su pop-up, podrias especificar?

MelanyLillo commented 1 year ago

Hola! Luego de mostrar la ventana con pop-up el cliente debe mantenerse en dicha ventana, como se muestra en las imágenes del enunciado. No se debe desconectar del servidor a menos que decida salir del juego. Respecto a tu otra duda, se refiere a que no entrará a la ventana de espera, donde se encuentran quienes podrán jugar. En su lugar, se mantendrá en la ventana de inicio, de la cual pueden visualizar un ejemplo en el enunciado. En el ejemplo se ve que dicha ventana tiene un aspecto tipo ventana de espera más pop-up, tal como dices, pero esta no será la ventana de espera que observan los demás jugadores. Avísenme si se respondieron sus dudas😊

tremendapithon commented 1 year ago

@MelanyLillo Tengo una duda, podria poner como supuesto que el cliente que no pueda entrar por las dos condiciones, simplemente se le manda el pop-up y que este obligado a cerrar su ventana si o si hasta que se desocupe un espacio; pregunto debido que el enunciado no dice que tenemos que hacer con el cliente una vez que se le manda el pop-up.

FelipeIGS commented 1 year ago

Una pregunta, la sala de inicio y la sala de espera no son lo mismo?

MelanyLillo commented 1 year ago

En el enunciado se explicita que el jugador se mantendrá en la ventana de inicio. La idea es que en el caso de que la sala esté llena, si otro jugador quiere entrar debe mantenerse en la ventana de inicio, y en caso de que se libere un cupo este entrará automáticamente.

MelanyLillo commented 1 year ago

Respecto a si la ventana de inicio y espera son lo mismo... Si, pero sus condiciones son diferentes, pues la ventana de inicio mostrará la sala de espera a quienes logren entrar para jugar, mientras que si un jugador quiere entrar y la sala está llena, se mostrará la ventana de inicio con un pop-up, dónde dicha ventana no mostrará su usuario correspondiente, pues estarán otros usuarios ocupando esos espacios. Con ello, se indica que el usuario se mantendrá en la sala de inicio y NO se conectará a la partida. Espero que se hayan resuelto sus dudas, sino no duden en consultar.

FelipeIGS commented 1 year ago

Seria legal si creo una ventana distinta a la de espera que tan solo tenga al jugador mismo y que aparezca ahi el pop up, en vez de esa pseudo igual/distinta ventana de inicio y de espera. Y si se cumplen las condiciones entra a la sala de espera?

maxo2727 commented 1 year ago

Hola, entonces, cuando un cliente entra a un partida llena, lo que verá será la ventana de espera con los jugadores dentro de la partida, y el pop-up con el aviso, quedará en una especie de lista de espera. En ese caso, se deshabilitaría el botón de comenzar, ya que no participa de la partida? Además. cuando de desocupe un espacio, solo ahí aparecerá su nombre en la ventana y podrá usar el botón de comenzar partida?

MelanyLillo commented 1 year ago

@FelipeIGS Estoy esperando una respuesta oficial acerca de la opción que mencionas, en cuanto tenga una respuesta te la comunicaré por aqui. @maxo2727 Exactamente, la idea es que se vayan mostrando solo los nombres de quienes son conectados a la partida. De igual manera, solo podrán presionar el botón comenzar quienes estén conectados y en consecuencia puedan jugar.

MelanyLillo commented 1 year ago

@FelipeIGS Si quieres hacer una ventana nueva en lugar del pop-up puedes hacerlo, pero la ventana de inicio con los jugadores que se van conectando debe estar sí o sí.

FelipeIGS commented 1 year ago

Buenisimo! Muchas gracias Melany