Пример #1
0
        public clsMensajeBase recibirMensaje(string mensaje)
        {
            clsMensajeBase convertido = JsonConvert.DeserializeObject <clsMensajeBase>(mensaje);

            switch (convertido.Tipo)
            {
            case "MENSAJE_PARTIDA":
                clsMensajePartida retorno1 = JsonConvert.DeserializeObject <clsMensajePartida>(mensaje);
                return(retorno1);

            case "MENSAJE_JUEGO":
                clsMensajeJuego retorno2 = JsonConvert.DeserializeObject <clsMensajeJuego>(mensaje);
                return(retorno2);

            case "MENSAJE_PERDEDOR":
                clsMensajePerdedor retorno3 = JsonConvert.DeserializeObject <clsMensajePerdedor>(mensaje);
                return(retorno3);

            case "MENSAJE_GANADOR":
                clsMensajeGanador retorno4 = JsonConvert.DeserializeObject <clsMensajeGanador>(mensaje);
                return(retorno4);

            case "MENSAJE_TIMER":
                clsMensajeTimer retorno5 = JsonConvert.DeserializeObject <clsMensajeTimer>(mensaje);
                return(retorno5);

            case "MENSAJE_FIN_PARTIDA":
                clsMensajeFinPartida retorno6 = JsonConvert.DeserializeObject <clsMensajeFinPartida>(mensaje);
                return(retorno6);

            default: return(convertido);
            }
        }
Пример #2
0
 private void controlaFallo(clsMensajeJuego mensaje, String nombre)
 {
     if (juego.Jugadores.ElementAt(juego.BuscaIndiceJugador(nombre)).FueraDeJuego)
     {
         clsMensajePerdedor msjPerdedor = new clsMensajePerdedor();
         EnviarAUno(nombre, msjPerdedor);
     }
     else
     {
         if (mensaje.Retorno.Equals("FALLO"))
         {
             EnviarAUno(nombre, mensaje);
         }
         else
         {
             if (juego.Ganador != null)
             {
                 EnviarATodos(juego.Ganador);
                 Thread.Sleep(5000);
                 t.Abort();
                 if (cantidadRondas < 2)
                 {
                     reiniciaRonda();
                     cantidadRondas++;
                 }
                 else
                 {
                     clsMensajeFinPartida msjFinPartida = new clsMensajeFinPartida();
                     EnviarATodos(msjFinPartida);
                     clsServer server = new clsServer();
                 }
             }
             else
             {
                 EnviarATodos(mensaje);
             }
         }
     }
 }
Пример #3
0
        public void leeInputCliente()
        {
            try
            {
                clsMensajeBase mb = new clsMensajeBase();
                mb.Nick = nick;
                streamw.WriteLine(serializador.enviarMensaje(mb));
                streamw.Flush();


                string aux1 = streamr.ReadLine();
                mensaje = serializador.recibirMensaje(aux1);
                start(mensaje);
                while (true)
                {
                    string aux = streamr.ReadLine();
                    mensaje = serializador.recibirMensaje(aux);
                    switch (mensaje.Tipo)
                    {
                    case "MENSAJE_JUEGO":
                    {
                        clsMensajeJuego mensajeJuego = (clsMensajeJuego)mensaje;
                        if (mensaje.Retorno != "FALLO" && mensaje.Accion == "PROBAR_LETRA")
                        {
                            acertoLetra(mensajeJuego);
                        }
                        else if (mensaje.Retorno == "FALLO" && mensaje.Accion == "PROBAR_LETRA")
                        {
                            falloLetra();
                        }

                        else if (mensaje.Retorno == "FALLO" && mensaje.Accion == "PROBAR_PALABRA")
                        {
                            falloPalabra();
                        }
                    } break;

                    case "MENSAJE_PERDEDOR":
                    {
                        falloPalabra();
                    } break;

                    case "MENSAJE_GANADOR":
                    {
                        clsMensajeGanador mensajeGanador = (clsMensajeGanador)mensaje;
                        acertoPalabra(mensajeGanador);
                    } break;

                    case "MENSAJE_FIN_PARTIDA":
                    {
                        clsMensajeFinPartida mensajeFinPartida = (clsMensajeFinPartida)mensaje;
                        finPartida();
                    } break;

                    case "MENSAJE_TIMER":
                    {
                        clsMensajeTimer mensajeTimer = (clsMensajeTimer)mensaje;
                        timeForm(mensajeTimer);
                        if (mensajeTimer.Segundero == 0)
                        {
                            falloPalabra();
                        }
                    } break;
                    }
                }
            }
            catch (InvalidOperationException e)
            {
                ExitGame();
            }
            catch (SocketException e)
            {
                DesconexionServidor();
            }
            catch (System.IO.IOException e)
            {
                DesconexionServidor();
            }
        }