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); } }
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); } } } }
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(); } }