Ejemplo n.º 1
0
        public void ejecutarHechizo(int ataque, string nombre) //Recibimos información sobre el ataque y mostramos los resutados de este sobre los jugadores
        {
            DelegadoParaChat delegado = new DelegadoParaChat(añadirMensaje);

            if (nombre == anfitrionPartida)
            {
                cartasPartida[1].SetHp(cartasPartida[1].GetHp() - ataque);
                this.indice = 1;
                if (cartasPartida[1].GetHp() > 0) //El jugador pierde vida
                {
                    vidaContrincante1.Text = "Vida: " + Convert.ToString(cartasPartida[1].GetHp());
                }
                else //hostenApp ha ganado la partida
                {
                    partidaGanada = true;
                    vidaContrincante1.ForeColor = Color.Red;
                    vidaContrincante1.Text      = "Vida: 0";
                    string mensaje = "34/" + nForm + "/" + cartasPartida[0].GetHp() + "/" + anfitrionPartida + "/" + Player2;
                    byte[] msg     = System.Text.Encoding.ASCII.GetBytes(mensaje);
                    server.Send(msg);
                    ocultarBotones();
                    if (anfitrionPartida == hostEnApp)
                    {
                        resultadoPartida.Text = "Victoria";
                    }
                    else
                    {
                        resultadoPartida.Text = "Derrota";
                    }
                }
            }
            else if (nombre == Player2)
            {
                cartasPartida[0].SetHp(cartasPartida[0].GetHp() - ataque);
                this.indice = 0;
                if (cartasPartida[0].GetHp() > 0) //El jugador pierde vida
                {
                    vidaAnfitrion.Text = "Vida: " + Convert.ToString(cartasPartida[0].GetHp());
                }
                else //HostenApp ha perdido la partida
                {
                    partidaGanada           = true;
                    vidaAnfitrion.ForeColor = Color.Red;
                    vidaAnfitrion.Text      = "Vida: 0";
                    string mensaje = "34/" + nForm + "/" + cartasPartida[1].GetHp() + "/" + Player2 + "/" + anfitrionPartida;
                    byte[] msg     = System.Text.Encoding.ASCII.GetBytes(mensaje);
                    server.Send(msg);
                    ocultarBotones();
                    if (Player2 == hostEnApp)
                    {
                        resultadoPartida.Text = "Victoria";
                    }
                    else
                    {
                        resultadoPartida.Text = "Derrota";
                    }
                }
            }
            Invoke(delegado, new Object[] { "BOT", "El jugador " + nombre + " ha ejecutado " + cartasPartida[this.indice].GetNombreH() + " restando " + Convert.ToString(ataque) + " de vida al contrincante." });
        }
Ejemplo n.º 2
0
        public void SetMensajeChat(string mensajeChat) //Recibe los mensajes para el chat de partida
        {
            string[]         trozos   = mensajeChat.Split('$');
            DelegadoParaChat delegado = new DelegadoParaChat(añadirMensaje);

            Invoke(delegado, new Object[] { trozos[0], trozos[1] });
        }
Ejemplo n.º 3
0
        //
        //Función para atender las peticiones del servidor.
        //
        private void AtenderServidor()
        {
            while (true)
            {
                byte[] msg2 = new byte[80];
                server.Receive(msg2);
                string   mssg    = Encoding.ASCII.GetString(msg2).Split('\0')[0];
                string[] trozos  = mssg.Split('-');
                int      codigo  = Convert.ToInt32(trozos[0]);
                string   mensaje = trozos[1];
                int      cont_f  = formularios.Count;

                switch (codigo)
                {
                case 1:     //LOGIN
                    string[] piezas = mensaje.Split('/');
                    int      code   = Convert.ToInt32(piezas[0]);
                    if (code == 11)
                    {
                        MessageBox.Show("El usuario y la contraseña no coinciden. Por favor intente INCIAR SESIÓN de nuevo.");
                        this.Close();
                    }
                    else
                    {
                        DelegadoParaEscribir delegado = new DelegadoParaEscribir(PonConectado);
                        matriz.Invoke(delegado, new object[] { code, piezas });
                    }
                    break;

                case 2:     //ELIMINAR
                    MessageBox.Show(mensaje);
                    break;

                case 4:     // El usuario invitado recibe la invitacion y envia su respuesta correspondiente

                    string[] msg_form = mensaje.Split('/');
                    forms_s = Convert.ToInt32(msg_form[1]);
                    DialogResult resultado;
                    resultado = MessageBox.Show(msg_form[0] + " te ha enviado una invitación.", "Invitación", MessageBoxButtons.OKCancel);
                    if (resultado == DialogResult.OK)
                    {
                        string message = "5/" + msg_form[0] + "/0";       // + "/" + nform
                        byte[] msg     = System.Text.Encoding.ASCII.GetBytes(message);
                        server.Send(msg);
                    }
                    else
                    {
                        string message = "5/" + msg_form[0] + "/1";
                        byte[] msg     = System.Text.Encoding.ASCII.GetBytes(message);
                        server.Send(msg);
                    }

                    break;

                case 5:     //El usuario que ha invitado recibe si el invitado ha aceptado o no

                    string[] pieces       = mensaje.Split('/');
                    int      codigoAcepta = Convert.ToInt32(pieces[1]);
                    if (codigoAcepta == 0)
                    {
                        MessageBox.Show(pieces[0] + " ha ACEPTADO tu invitación");
                        //invitado = pieces[0];
                    }
                    else
                    {
                        MessageBox.Show(pieces[0] + " ha RECHAZADO tu invitación");
                    }

                    break;

                case 6:     //Recibe los mensajes del chat
                    pieces = mensaje.Split('/');
                    DelegadoParaChat delegadoChat = new DelegadoParaChat(PonMensaje);
                    listBox1.Invoke(delegadoChat, new object[] { pieces });

                    break;

                case 7:     //Pone en marcha los formularios de la partida

                    string[] jugadores = mensaje.Split('/');
                    jug1 = jugadores[0];
                    jug2 = jugadores[1];
                    ThreadStart ts = delegate { PonerEnMarchaFormulario(); };
                    Thread      T  = new Thread(ts);
                    T.Start();

                    break;

                case 8:     //Recibe la tirada y la pone en el tablero del otro jugador

                    string[] jugada  = mensaje.Split('/');
                    int      nform   = Convert.ToInt32(jugada[0]);
                    int      jug     = Convert.ToInt32(jugada[1]);
                    int      fila    = Convert.ToInt32(jugada[2]);
                    int      columna = Convert.ToInt32(jugada[3]);
                    CheckForIllegalCrossThreadCalls = false;
                    formularios[nform].TomaRespuesta(jug, fila, columna);

                    break;

                case 9:     //Recibe el ganador

                    string[] ganadors = mensaje.Split('/');
                    string   ganador  = (ganadors[0]);
                    int      nform_g  = Convert.ToInt32(ganadors[1]);
                    formularios[nform_g].TomaGanador(ganador);

                    break;

                case 10:     //Ver jugadores con los que has jugado
                    EF.PonInvokeJugador(mensaje);
                    break;

                case 11:    //Ver todos los jugadores registrados en la base de datos
                    EF.PonInvokeTodosJugadores(mensaje);
                    break;

                case 12:    //Ver jugadores con quien has jugado
                    EF.PonInvokePartidas(mensaje);
                    break;

                case 13:    //Ver las partidas que ha ganado un determiando jugador
                    EF.PonInvokeGanadas(mensaje);
                    break;
                }
            }
        }