Esto se logró mediante una función booleana la cual nos permitirá chequear si el barco atacado fue o no fue herido, así como también si ya acerté en el barco y presiono en la misma posición los barcos no pierdan más puntos de vida.
Esta función del tipo booleana se la llamó Disparo.
//Esta funcion permite comprobar si el disparo golpeo un barco
public bool Disparo(int x, int y)
{
//creamos un tipo punto
Point p = new Point(picPosicion.Location.X + (x * 30), picPosicion.Location.Y + (y * 30));
//hacemos un foreach para buscar entre los barcos
foreach (Barco barco in barcos)
{
//Cargamos la propiedad Puntos, para hacer la comprobacion
Point[] valor = barco.Puntos;
//hacemos un foreach dentro del arreglo anteriormente obtenido
foreach (Point p2 in valor)
{
//Comprobamos si los puntos son iguales
if (p2 == p)
{
//Esto comprobamos que no sea en el mismo punto el golpe
int i = 0;
foreach (Point punto in barco.PuntosGolpe)
{
if (punto == p)
{
i++;
}
}
//Si no se ha dado anteriormente un golpe se disminuye los puntos de vida
if (i == 0)
{
MessageBox.Show("Te Golpearon", "Peligro", MessageBoxButtons.OK, MessageBoxIcon.Hand);
barco.PuntosVida--;
barco.PuntosGolpe.Add(p);
}
return true;
}
}
}
return false;
}
No hay comentarios:
Publicar un comentario