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 btnArriesgar_Click(object sender, EventArgs e) { if (tbPalabra.Text != " " && tbPalabra.Text != "") // Checkear bien que no hayan varios espacios { clsMensajeJuego msj = new clsMensajeJuego(); msj.LetraPalabra = tbPalabra.Text.ToUpper(); msj.Accion = "PROBAR_PALABRA"; msj.Nick = cliente.Nick; cliente.enviar(msj); } }
private void btnLetra_Click(object sender, EventArgs e) { if (tbLetra.Text != " " && tbLetra.Text != "") { clsMensajeJuego msj = new clsMensajeJuego(); msj.LetraPalabra = tbLetra.Text.ToUpper(); msj.Accion = "PROBAR_LETRA"; msj.Nick = cliente.Nick; cliente.enviar(msj); tbLetra.Clear(); tbLetra.Focus(); } }
public clsMensajeJuego enviaLetra(string nick, string l) { clsMensajeJuego msjRetorno = new clsMensajeJuego(); List <int> listaPosiciones = new List <int>(); int indiceJugador = BuscaIndiceJugador(nick); msjRetorno.Retorno = "FALLO"; for (int i = 0; i <= (palabraArray.Length / 2) - 1; i++) { if (palabraArray[i, 0].Equals(l.ToString())) { listaPosiciones.Add(i); msjRetorno.Retorno = "ACERTADO"; palabraArray[i, 1] = nick;// agregado martes a la noche 23:00hs esto agrega el jugador que adivina al arreglo } } if (msjRetorno.Retorno.Equals("FALLO")) { Jugadores.ElementAt(indiceJugador).SinAcertar++; if (Jugadores.ElementAt(indiceJugador).SinAcertar == CHANCES) { Perdio(nick); } } else { if (palabraAdivinada()) { asignaPuntajePorPartidaAjugadores(); ganador = new clsMensajeGanador(); ganador.ListaJugadores = jugadores; ganador.Indice_ganador = puntajeMasAltoPorPartida(nick); ganador.Adivinador = nick; ganador.PalabraAhorcado = palabra; } } msjRetorno.Nick = nick; msjRetorno.LetraPalabra = l; msjRetorno.PosicionLetra = listaPosiciones; msjRetorno.Accion = "PROBAR_LETRA";//REVISAR PORQUE SE PIERDE LA ACCION AL ENVIAR AL CLIENTE EL MSJ return(msjRetorno); }
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 recibe(clsMensajeBase m, String nombre) //Revisar String nombre que viene JSON completo { lock (a) { clsMensajeJuego mensaje = (clsMensajeJuego)m; mensaje.PalabraAhorcado = juego.Palabra; switch (m.Accion) { case "PROBAR_LETRA": mensaje = juego.enviaLetra(nombre, mensaje.LetraPalabra); controlaFallo(mensaje, nombre); break; case "PROBAR_PALABRA": mensaje = juego.enviaPalabra(nombre, mensaje.LetraPalabra); controlaFallo(mensaje, nombre); break; } } }
public clsMensajeJuego enviaPalabra(string nick, string s) { clsMensajeJuego msjRetorno = new clsMensajeJuego(); if (palabra.Equals(s)) { Jugadores.ElementAt(BuscaIndiceJugador(nick)).Puntaje = Jugadores.ElementAt(BuscaIndiceJugador(nick)).Puntaje + 5; msjRetorno.Retorno = "ACERTADO"; //p.Puntaje = 5;//cantidad de puntajes por acertar //finJuego(p.Color); for (int i = 0; i <= (palabraArray.Length / 2) - 1; i++) { if (palabraArray[i, 1] == null) { palabraArray[i, 1] = "0"; } }//este bucle hace que complete la palabra entonces la funcion palabra adivinada puede devolver true asignaPuntajePorPartidaAjugadores(); if (palabraAdivinada()) { asignaPuntajePorPartidaAjugadores(); ganador = new clsMensajeGanador(); ganador.ListaJugadores = jugadores; ganador.Indice_ganador = puntajeMasAltoPorPartida(nick); ganador.Adivinador = nick; ganador.PalabraAhorcado = palabra; } } else { //quitarJugador(p); msjRetorno.Retorno = "FALLO"; } msjRetorno.LetraPalabra = s; msjRetorno.Accion = "PROBAR_PALABRA"; return(msjRetorno); }
private void habilitaLetra(clsMensajeBase m) { clsMensajeJuego msj = (clsMensajeJuego)m; Color colorJG = Color.Orange; lvJugadores.Invoke(new Action(() => { foreach (ListViewItem list in lvJugadores.Items) { this.Invoke(new Action(() => { if (msj.Nick.Equals(list.SubItems[0].Text)) { colorJG = list.SubItems[0].ForeColor; } })); } })); List <int> posiciones = msj.PosicionLetra; for (int i = 0; i < posiciones.Count; i++) { if (posiciones[i] == 0) { this.Invoke(new Action(() => { lb0.Text = msj.LetraPalabra; lbAdivina0.BackColor = colorJG; })); } else if (posiciones[i] == 1) { this.Invoke(new Action(() => { lb1.Text = msj.LetraPalabra; lbAdivina1.BackColor = colorJG; })); } else if (posiciones[i] == 2) { this.Invoke(new Action(() => { lb2.Text = msj.LetraPalabra; lbAdivina2.BackColor = colorJG; })); } else if (posiciones[i] == 3) { this.Invoke(new Action(() => { lb3.Text = msj.LetraPalabra; lbAdivina3.BackColor = colorJG; })); } else if (posiciones[i] == 4) { this.Invoke(new Action(() => { lb4.Text = msj.LetraPalabra; lbAdivina4.BackColor = colorJG; })); } else if (posiciones[i] == 5) { this.Invoke(new Action(() => { lb5.Text = msj.LetraPalabra; lbAdivina5.BackColor = colorJG; })); } else if (posiciones[i] == 6) { this.Invoke(new Action(() => { lb6.Text = msj.LetraPalabra; lbAdivina6.BackColor = colorJG; })); } else if (posiciones[i] == 7) { this.Invoke(new Action(() => { lb7.Text = msj.LetraPalabra; lbAdivina7.BackColor = colorJG; })); } else if (posiciones[i] == 8) { this.Invoke(new Action(() => { lb8.Text = msj.LetraPalabra; lbAdivina8.BackColor = colorJG; })); } else if (posiciones[i] == 9) { this.Invoke(new Action(() => { lb9.Text = msj.LetraPalabra; lbAdivina9.BackColor = colorJG; })); } else if (posiciones[i] == 10) { this.Invoke(new Action(() => { lb10.Text = msj.LetraPalabra; lbAdivina10.BackColor = colorJG; })); } else if (posiciones[i] == 11) { this.Invoke(new Action(() => { lb11.Text = msj.LetraPalabra; lbAdivina11.BackColor = colorJG; })); } else if (posiciones[i] == 12) { this.Invoke(new Action(() => { lb12.Text = msj.LetraPalabra; lbAdivina12.BackColor = colorJG; })); } else if (posiciones[i] == 13) { this.Invoke(new Action(() => { lb13.Text = msj.LetraPalabra; lbAdivina13.BackColor = colorJG; })); } } }
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(); } }