Exemplo n.º 1
0
        private void Panel_Oponente_Click(object sender, EventArgs e)
        {
            Point point = new Point((int)(posicion_mouse_panel_Enemigo.X / ancho_Cuadro), (int)(posicion_mouse_panel_Enemigo.Y / alto_Cuadro));

            cuadricula_Oponente[point.X, point.Y].disparo = true;
            ultima_coordenada_Atacada = point;
            string celda            = point.X + "," + point.Y;
            Data   mensajeParaEnvio = new Data();

            mensajeParaEnvio.nombre  = usuario;
            mensajeParaEnvio.mensaje = "Ataco la celda " + celda + " (ATAQUE)";
            mensajeParaEnvio.comando = Command.ATAQUE;
            byte[] bytedatos = mensajeParaEnvio.convertir_a_Bytes();
            clienteSocket.BeginSend(bytedatos, 0, bytedatos.Length, SocketFlags.None, new AsyncCallback(Enviar), null);
            foreach (var item in lista_Coordenadas.Items)
            {
                if (item.Equals(celda) == true)
                {
                    vidas++;
                    Text = vidas.ToString();
                    enemigo_coloca_Ficha.Llenar_Elipse(enemigo_coloca_Ficha.color_rojo, cuadricula_Oponente[point.X, point.Y], 0, 0);
                    Data resultado_acierto = new Data();
                    resultado_acierto.nombre  = usuario;
                    resultado_acierto.mensaje = "Acerto a la " + celda + " (RESULTADO)";
                    resultado_acierto.comando = Command.RESULTADO;
                    byte[] bytedatos_acierto = resultado_acierto.convertir_a_Bytes();

                    clienteSocket.BeginSend(bytedatos_acierto, 0, bytedatos_acierto.Length, SocketFlags.None, new AsyncCallback(Enviar), null);
                    if (vidas == 16)
                    {
                        MessageBox.Show(usuario + " Ha ganado la partida");
                        Data final = new Data();
                        final.nombre  = usuario;
                        final.mensaje = "Ha ganado la partida (FIN)";
                        final.comando = Command.FIN;
                        byte[] bytedatos_final = final.convertir_a_Bytes();
                        clienteSocket.BeginSend(bytedatos_final, 0, bytedatos_final.Length, SocketFlags.None, new AsyncCallback(Enviar), null);
                        Panel_Jugador.Enabled  = false;
                        Panel_Oponente.Enabled = false;
                    }
                    break;
                }
                else
                {
                    Data resultado_fallo = new Data();
                    resultado_fallo.nombre  = usuario;
                    resultado_fallo.mensaje = "Fallo a la " + celda + " (RESULTADO)";
                    resultado_fallo.comando = Command.RESULTADO;
                    byte[] bytedatos_fallo = resultado_fallo.convertir_a_Bytes();
                    clienteSocket.BeginSend(bytedatos_fallo, 0, bytedatos_fallo.Length, SocketFlags.None, new AsyncCallback(Enviar), null);

                    enemigo_coloca_Ficha.Llenar_Elipse(enemigo_coloca_Ficha.color_verde, cuadricula_Oponente[point.X, point.Y], 0, 0);
                }
            }
        }
Exemplo n.º 2
0
        private void Panel_Jugador_MouseClick(object sender, MouseEventArgs e)
        {
            if (tamaño_total_Cuadricula != null && !juego_Corriendo)
            {
                if (tamaño_total_Cuadricula.ok == true)
                {
                    bool continuar = Revisar_Cuadros_Habiles(rotar_Derecha);
                    if (continuar)
                    {
                        switch (codigo_Ficha)
                        {
                        case 5:
                            if (aircraftCarrier_Colocado)
                            {
                                return;
                            }
                            else
                            {
                                aircraftCarrier_Colocado = true;
                            }
                            break;

                        case 4:
                            if (battleship_Colocado)
                            {
                                return;
                            }
                            else
                            {
                                battleship_Colocado = true;
                            }
                            break;

                        case 3:
                            if (submarine_Colocado)
                            {
                                return;
                            }
                            else
                            {
                                submarine_Colocado = true;
                            }
                            break;

                        case 2:
                            if (destroyer_Colocado)
                            {
                                return;
                            }
                            else
                            {
                                destroyer_Colocado = true;
                            }
                            break;

                        case 1:
                            if (patrolBoat_Colocado)
                            {
                                return;
                            }
                            else
                            {
                                patrolBoat_Colocado = true;
                            }
                            break;
                        }
                        if (rotar_Derecha == false)
                        {
                            for (int i = 0; i < tamaño_total_Cuadricula.tamaño; i++)
                            {
                                jugador_coloca_Ficha.Llenar_Rectangulo(jugador_coloca_Ficha.color_blanco, tamaño_total_Cuadricula, i, 0);
                            }
                            for (int i = 0; i < tamaño_total_Cuadricula.tamaño; i++)
                            {
                                jugador_coloca_Ficha.Llenar_Elipse(jugador_coloca_Ficha.color_verde, tamaño_total_Cuadricula, i, 0);
                                cuadricula_Jugador[(int)(tamaño_total_Cuadricula.minimo.X / ancho_Cuadro), (int)((tamaño_total_Cuadricula.minimo.Y / alto_Cuadro) + i)].poner = true;
                                cuadricula_Jugador[(int)(tamaño_total_Cuadricula.minimo.X / ancho_Cuadro), (int)((tamaño_total_Cuadricula.minimo.Y / alto_Cuadro) + i)].poner_codigo_barco(codigo_Ficha);
                            }
                            for (int i = 0; i < codigo_Ficha; i++)
                            {
                                if (codigo_Ficha == 1)
                                {
                                    Point point = new Point((int)(tamaño_total_Cuadricula.minimo.X / ancho_Cuadro), (int)(tamaño_total_Cuadricula.minimo.Y / alto_Cuadro));
                                    lista_Coordenadas.Items.Add(point.X + "," + (point.Y + i));
                                    lista_Coordenadas.Items.Add(point.X + "," + (point.Y + i + 1));
                                }
                                else
                                {
                                    Point point = new Point((int)(tamaño_total_Cuadricula.minimo.X / ancho_Cuadro), (int)(tamaño_total_Cuadricula.minimo.Y / alto_Cuadro));
                                    lista_Coordenadas.Items.Add(point.X + "," + (point.Y + i));
                                }
                            }
                        }
                        else
                        {
                            if (rotar_Derecha == true)
                            {
                                for (int i = 0; i < tamaño_total_Cuadricula.tamaño; i++)
                                {
                                    jugador_coloca_Ficha.Llenar_Rectangulo(jugador_coloca_Ficha.color_blanco, tamaño_total_Cuadricula, 0, i);
                                }
                                for (int i = 0; i < tamaño_total_Cuadricula.tamaño; i++)
                                {
                                    jugador_coloca_Ficha.Llenar_Elipse(jugador_coloca_Ficha.color_verde, tamaño_total_Cuadricula, 0, i);
                                    cuadricula_Jugador[(int)((tamaño_total_Cuadricula.minimo.X / ancho_Cuadro) + i), (int)(tamaño_total_Cuadricula.minimo.Y / alto_Cuadro)].poner = true;
                                    cuadricula_Jugador[(int)((tamaño_total_Cuadricula.minimo.X / ancho_Cuadro) + i), (int)(tamaño_total_Cuadricula.minimo.Y / alto_Cuadro)].poner_codigo_barco(codigo_Ficha);
                                }
                            }
                            for (int i = 0; i < codigo_Ficha; i++)
                            {
                                if (codigo_Ficha == 1)
                                {
                                    Point point = new Point((int)(tamaño_total_Cuadricula.minimo.X / ancho_Cuadro), (int)(tamaño_total_Cuadricula.minimo.Y / alto_Cuadro));
                                    lista_Coordenadas.Items.Add((point.X + i) + "," + point.Y);
                                    lista_Coordenadas.Items.Add((point.X + i + 1) + "," + point.Y);
                                }
                                else
                                {
                                    Point point = new Point((int)(tamaño_total_Cuadricula.minimo.X / ancho_Cuadro), (int)(tamaño_total_Cuadricula.minimo.Y / alto_Cuadro));
                                    lista_Coordenadas.Items.Add((point.X + i) + "," + point.Y);
                                }
                            }
                        }
                    }
                }
            }
            if (aircraftCarrier_Colocado && battleship_Colocado && submarine_Colocado && destroyer_Colocado && patrolBoat_Colocado && !juego_Corriendo)
            {
                juego_Corriendo            = true;
                btn_Colocar_Fichas.Enabled = true;
                btn_Colocar_Fichas.Visible = true;
            }
        }