Exemple #1
0
 public void EnviarATodos(clsMensajeBase mensaje)
 {
     foreach (clsCliente c in listaCliente)
     {
         c.enviar(mensaje);
     }
 }
Exemple #2
0
        public void Inicio()
        {
            Console.WriteLine("Servidor escuchando en puerto 8000");
            server = new TcpListener(ipendpoint);
            server.Start();

            while (true)
            {
                if (juego.Jugadores.Count < 1)
                {
                    client      = server.AcceptTcpClient();
                    con         = new Connection();
                    con.stream  = client.GetStream();
                    con.streamr = new StreamReader(con.stream);
                    con.streamw = new StreamWriter(con.stream);
                    con.recibe  = con.streamr.ReadLine();
                    clsMensajeBase msjLee = paquete.recibirMensaje(con.recibe);
                    Console.WriteLine("Jugador " + msjLee.Nick + "  se unio a la partida");
                    clsJugador jugador = new clsJugador(msjLee.Nick);
                    juego.agregarJugador(jugador);
                    cliente = new clsCliente(con.stream, con.streamw, con.streamr, msjLee.Nick);
                    router.ListaCliente.Add(cliente);
                    if ((1 - juego.Jugadores.Count) == 0)
                    {
                        router.comienzaPartida();
                    }
                    Thread t = new Thread(cliente.DataIn);
                    t.Start();
                }
            }
        }
        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);
            }
        }
Exemple #4
0
 public clsCliente(NetworkStream ntStream, StreamWriter sw, StreamReader sr, String nick)
 {
     stream     = ntStream;
     streamw    = sw;
     streamr    = sr;
     this.nick  = nick;
     msjPaquete = new clsManejoPaquetes();
     clsMensajeBase m = new clsMensajeBase();
 }
Exemple #5
0
 public void EnviarAUno(string nombre, clsMensajeBase mensaje)
 {
     foreach (clsCliente c in listaCliente)
     {
         if (c.Nick.Equals(nombre))
         {
             c.enviar(mensaje);
         }
     }
 }
Exemple #6
0
 public void enviar(clsMensajeBase msj)
 {
     try
     {
         string aux = serializador.enviarMensaje(msj);
         streamw.WriteLine(aux);
         streamw.Flush();
     }
     catch (Exception ex)
     {
         Console.Write(ex.Message);
     }
 }
Exemple #7
0
 public void enviar(clsMensajeBase msj)
 {
     try
     {
         streamw.WriteLine(msjPaquete.enviarMensaje(msj));
         streamw.Flush();
     }
     catch (System.IO.IOException e)
     {
         Console.ReadLine();
     }
     catch (System.Net.Sockets.SocketException e)
     {
         Console.ReadLine();
     }
 }
Exemple #8
0
 public void comenzar(clsMensajeBase msgBase)
 {
     if (msgBase.Retorno != "WAIT")
     {
         frmJuego frmP1 = new frmJuego(cliente, tbJugador.Text, msgBase);
         this.Invoke(new Action(() =>
         {
             frmP1.Show();
             this.Hide();
         }));
     }
     else
     {
         MessageBox.Show("ESPERA DEMAS JUGADORES");
     }
 }
Exemple #9
0
 public frmJuego(clsCliente cliente, String nick, clsMensajeBase msjBase)
 {
     InitializeComponent();
     this.nick    = nick;
     this.cliente = cliente;
     ///this.msjJuego = (clsMensajeJuego)msjBase;
     msjPartida = (clsMensajePartida)msjBase;
     start(msjPartida);
     cliente.acertoLetra         += habilitaLetra;
     cliente.falloLetra          += fallaLetra;
     cliente.acertoPalabra       += habilitaPalabra;
     cliente.falloPalabra        += fallaPalabra;
     cliente.timeForm            += tiempo;
     cliente.finPartida          += finPartida;
     cliente.DesconexionServidor += DesconexionServidor;
     cliente.ExitGame            += ExitGame;
     palabra = cliente.Mensaje.PalabraAhorcado;
     Char[] palabraIndice = palabra.ToCharArray();
 }
Exemple #10
0
        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;
                }
            }
        }
Exemple #11
0
        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;
                    }));
                }
            }
        }
Exemple #12
0
 private void tiempo(clsMensajeBase m)
 {
     msjTime = (clsMensajeTimer)m;
     lbTime.Invoke((Action)(() => lbTime.Text = msjTime.Segundero.ToString()));
 }
Exemple #13
0
        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 string enviarMensaje(clsMensajeBase msj)
 {
     return(JsonConvert.SerializeObject(msj));
 }
Exemple #15
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();
            }
        }