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_TocaDibujar(MensajeTocaDibujar m) { msj = m; p = msj.PalabraAdivinar; // _PantallaActualizada.WaitOne(); if (usuario.User == m.Dibujante) { lblPalabra.Invoke((Action)(() => lblPalabra.Visible = true)); groupBox1.Invoke((Action)(() => groupBox1.Visible = true)); lblPalabra.Invoke((Action)(() => lblPalabra.Text = m.PalabraAdivinar)); lblAdivina.Invoke((Action)(() => lblAdivina.Visible = false)); pnlAdivina.Invoke((Action)(() => pnlAdivina.Visible = false)); tbPalabra.Invoke((Action)(() => tbPalabra.Visible = false)); pnlDibujo.Invoke((Action)(() => pnlDibujo.Visible = true)); toca = "Sos dibujante"; } else { groupBox1.Invoke((Action)(() => groupBox1.Visible = false)); lblPalabra.Invoke((Action)(() => lblPalabra.Visible = false)); lblAdivina.Invoke((Action)(() => { lblAdivina.Visible = true; lblAdivina.Text = ""; int longPalabra = m.PalabraAdivinar.Length; for (int i = 0; i < longPalabra; i++) { lblAdivina.Text += " _ "; } } )); pnlDibujo.Invoke((Action)(() => pnlDibujo.Visible = false)); pnlAdivina.Invoke((Action)(() => pnlAdivina.Visible = true)); tbPalabra.Invoke((Action)(() => tbPalabra.Visible = true)); toca = "Tenés que adivinar"; } // _EsperarHilo.Set(); }
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; } }