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); } } }
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; } }