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); } }
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); }
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); }
}//numero aleatorio para elegit palabra de diccionario al azar public void GeneraPalabra() { int numero = GenerateRandom(0, diccionario.Count - 1); if (numerosUsados.IndexOf(numero) >= 0) { // si el numero ya fue usad GeneraPalabra(); } else { Palabra = diccionario.ElementAt(numero); //elimino los acentos de las palabras Palabra = Palabra.Replace('á', 'a'); Palabra = Palabra.Replace('é', 'e'); Palabra = Palabra.Replace('í', 'i'); Palabra = Palabra.Replace('ó', 'o'); Palabra = Palabra.Replace('ú', 'u'); Palabra = Palabra.ToUpper(); //creo el arreglo con longitud equivalente a la palabra obtenida palabraArray = new String[Palabra.Length, 2]; int contador = 0; foreach (clsJugador j in Jugadores) { j.SinAcertar = 0; j.FueraDeJuego = false; } foreach (char i in Palabra) { palabraArray[contador, 0] = i.ToString(); palabraArray[contador, 1] = null; contador++; } ganador = null; } }//genera una nueva palabra para palabraArray y vuelve las chances perdidas por los jugadores a cero
private void habilitaPalabra(clsMensajeBase m) { ganador = (clsMensajeGanador)m; int cant = ganador.PalabraAhorcado.Length; for (int i = 0; i < cant; i++) { if (i == 0) { this.Invoke(new Action(() => { lb0.Text = ganador.PalabraAhorcado[i].ToString(); })); } else if (i == 1) { this.Invoke(new Action(() => { lb1.Text = ganador.PalabraAhorcado[i].ToString(); })); } else if (i == 2) { this.Invoke(new Action(() => { lb2.Text = ganador.PalabraAhorcado[i].ToString(); })); } else if (i == 3) { this.Invoke(new Action(() => { lb3.Text = ganador.PalabraAhorcado[i].ToString(); })); } else if (i == 4) { this.Invoke(new Action(() => { lb4.Text = ganador.PalabraAhorcado[i].ToString(); })); } else if (i == 5) { this.Invoke(new Action(() => { lb5.Text = ganador.PalabraAhorcado[i].ToString(); })); } else if (i == 6) { this.Invoke(new Action(() => { lb6.Text = ganador.PalabraAhorcado[i].ToString(); })); } else if (i == 7) { this.Invoke(new Action(() => { lb7.Text = ganador.PalabraAhorcado[i].ToString(); })); } else if (i == 8) { this.Invoke(new Action(() => { lb8.Text = ganador.PalabraAhorcado[i].ToString(); })); } else if (i == 9) { this.Invoke(new Action(() => { lb9.Text = ganador.PalabraAhorcado[i].ToString(); })); } else if (i == 10) { this.Invoke(new Action(() => { lb10.Text = ganador.PalabraAhorcado[i].ToString(); })); } else if (i == 11) { this.Invoke(new Action(() => { lb11.Text = ganador.PalabraAhorcado[i].ToString(); })); } else if (i == 12) { this.Invoke(new Action(() => { lb12.Text = ganador.PalabraAhorcado[i].ToString(); })); } else if (i == 13) { this.Invoke(new Action(() => { lb13.Text = ganador.PalabraAhorcado[i].ToString(); })); } } frmGanador frmGana = new frmGanador(ganador.ListaJugadores[ganador.Indice_ganador].Nick.ToString(), cliente); frmGana.ShowDialog(); limpiarForm(); //Reiniciar juego despues que muestre al ganador }
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(); } }