public void empezarPartida() { if (rondaActual != 5) { EmpezoPartida = true; Console.WriteLine("Empezo la partida"); RecToken = new CancellationTokenSource(); EndToken = RecToken.Token; Random ran = new Random(); int i = ran.Next(0, palabras.Length - 1); palabraDesignada = palabras[i]; Console.WriteLine("Palabra designada " + palabraDesignada); MensajeTocaDibujar msjToca = new MensajeTocaDibujar("", "*", 1, orden.ElementAt <string>(turnoActual), palabraDesignada); Console.WriteLine("Turno de dibujar: " + orden.ElementAt <string>(turnoActual)); MensajeIniciarPartida iniciar = new MensajeIniciarPartida("", "*", 1); //SE ENVIA A TODOS EL MENSAJE Iniciar Partida y toca dibujar enviarTodos(msjToca, ""); Thread.Sleep(3000); enviarTodos(iniciar, ""); //THREAD CONTADOR Thread HiloContador = new Thread(contador); HiloContador.Start(EndToken); avanzarTurno(); //SE ENVIA AL DEL TURNO ACTUAL EL MENSAJE TOCA DIBUJAR } else { RecToken.Cancel(); string ganador = ""; int puntos = 0; Cliente cliente; foreach (string en in usuarioEnsala) { cliente = filtrar(en); if (cliente.Puntos > puntos) { ganador = cliente.Id; puntos = cliente.Puntos; } } MensajeGanador msgGanador = new MensajeGanador("", ganador, 0, puntos); enviarTodos(msgGanador, ""); EmpezoPartida = false; } }
private void Comunicacion_Ganador(MensajeGanador m) { lblMensaje.Invoke((Action)(() => { lblMensaje.Text = "El ganador es '" + m.To + "'. Con " + m.Puntos + " puntos."; lblMensaje.Visible = true; })); Thread.Sleep(3000); for (int i = 5; i > 0; i--) { lblMensaje.Invoke((Action)(() => lblMensaje.Text = "En " + i + " comenzará otra partida")); Thread.Sleep(1000); } lblMensaje.Invoke((Action)(() => lblMensaje.Visible = false)); if (m.To == usuario.User) { comunicacion.empezarNuevaPartida(); } }
private void Serializador_Recibir(MensajeBase msg) { switch (msg.TipoMensaje) { case "MensajeLogin": if (Logear != null) { try { MensajeLogin msgL = (MensajeLogin)msg; Logear(msgL); } catch (InvalidCastException e) { } } break; case "MensajeEntrarSala": if (EntraSala != null) { try { MensajeEntrarSala msgEn = (MensajeEntrarSala)msg; EntraSala(msgEn); } catch (InvalidCastException e) { } } break; case "MensajeDibujarPuntos": MensajeDibujarPuntos msgDibPun = (MensajeDibujarPuntos)msg; if (Dibujar != null) { Dibujar(msgDibPun); } break; case "MensajeEnviarPalabra": MensajeEnviarPalabra msgEnvPal = (MensajeEnviarPalabra)msg; if (RespuestaPalabraEnviada != null) { RespuestaPalabraEnviada(msgEnvPal); } break; case "MensajeIniciarPartida": if (IniciarPartida != null) { try { MensajeIniciarPartida msgEn = (MensajeIniciarPartida)msg; IniciarPartida(msgEn); } catch (InvalidCastException e) { } } break; case "MensajeTocaDibujar": if (TocaDibujar != null) { try { MensajeTocaDibujar msgEn = (MensajeTocaDibujar)msg; TocaDibujar(msgEn); } catch (InvalidCastException e) { } } break; case "MensajeFinTrazo": if (FinTrazo != null) { try { MensajeFinTrazo msgEn = (MensajeFinTrazo)msg; FinTrazo(msgEn); } catch (InvalidCastException e) { } } break; case "MensajeContador": if (Contador != null) { try { MensajeContador msgCon = (MensajeContador)msg; Contador(msgCon); } catch (InvalidCastException e) { Console.WriteLine("151" + e.Message); } } break; case "MensajeUsuariosEnSala": if (UsuariosEnSala != null) { try { MensajeUsuariosEnSala msgUsSala = (MensajeUsuariosEnSala)msg; UsuariosEnSala(msgUsSala); } catch (InvalidCastException e) { Console.WriteLine("164" + e.Message); } } break; case "MensajeGanador": if (Ganador != null) { try { MensajeGanador msgGanador = (MensajeGanador)msg; Ganador(msgGanador); } catch (InvalidCastException e) { Console.WriteLine("180" + e.Message); } } break; case "MensajeEmpate": if (Empate != null) { try { MensajeEmpate msgempate = (MensajeEmpate)msg; Empate(msgempate); } catch (InvalidCastException e) { Console.WriteLine("195" + e.Message); } } break; } }