示例#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);
             }
         }
     }
 }