Пример #1
0
 private void CargarPares()
 {
     for (int i = 0; i < 70; i++)
     {
         for (int j = 0; j < 70; j++)
         {
             Pares par = new Pares(i, j);
             paresJugador1.Add(par);
             paresJugador2.Add(par);
         }
     }
 }
Пример #2
0
        private void CazarHaciaArriba()
        {
            Pares parDeArriba = new Pares(parDeCaza.X, parDeCaza.Y + 1);

            if (paresJugador1.Contains(parDeArriba))
            {
                if (tableroJug1[parDeArriba.X, parDeArriba.Y].BackColor == Color.DarkGray || tableroJug1[parDeArriba.X, parDeArriba.Y].BackColor == Color.White)
                {
                    //Este escenario implica que se completo el barco
                    tableroJug1[parDeArriba.X, parDeArriba.Y].BackColor = Color.Blue;
                    paresJugador1.Remove(parDeArriba);
                    paresJugador1.Remove(parDeCaza);
                    //parDeCaza se setea null para que vuelva a tiar random
                    parDeCaza = null;
                    //Se resetean los indicadores de la caza
                    ResetearIndicadores();
                    cantTirosJugador2++;
                }
                else if (tableroJug1[parDeArriba.X, parDeArriba.Y].BackColor == Color.Red)
                {
                    tableroJug1[parDeArriba.X, parDeArriba.Y].BackColor = Color.Orange;
                    aciertosJugador2++;
                    //Eliminamos el par de caza y lo cambiamos por el nuevo par que marcamos
                    paresJugador1.Remove(parDeCaza);
                    parDeCaza = parDeArriba;
                    cantTirosJugador2++;
                }
                else
                {
                    //En esta instancia estaba cazando y el limite del barco estaba en el limite del tablero, se concluye la caza
                    paresJugador1.Remove(parDeCaza);
                    //parDeCaza se setea null para que vuelva a tiar random
                    parDeCaza = null;
                    //Se resetean los indicadores de la caza
                    ResetearIndicadores();
                    TiroCaza();
                }
            }
            else
            {
                //En esta instancia estaba cazando y el limite del barco estaba en el limite del tablero, se concluye la caza
                paresJugador1.Remove(parDeCaza);
                //parDeCaza se setea null para que vuelva a tiar random
                parDeCaza = null;
                //Se resetean los indicadores de la caza
                ResetearIndicadores();
                TiroCaza();
            }
        }
Пример #3
0
        private void CazarHaciaDerecha()
        {
            Pares parDerecho = new Pares(parDeCaza.X + 1, parDeCaza.Y);

            if (paresJugador1.Contains(parDerecho))
            {
                if (tableroJug1[parDerecho.X, parDerecho.Y].BackColor == Color.DarkGray || tableroJug1[parDerecho.X, parDerecho.Y].BackColor == Color.White)
                {
                    //Este escenario implica que se completo el barco
                    tableroJug1[parDerecho.X, parDerecho.Y].BackColor = Color.Blue;
                    paresJugador1.Remove(parDerecho);
                    paresJugador1.Remove(parDeCaza);
                    //parDeCaza se setea null para que vuelva a tiar random
                    parDeCaza = null;
                    //Se resetean los indicadores de la caza
                    ResetearIndicadores();
                    cantTirosJugador2++;
                }
                else if (tableroJug1[parDerecho.X, parDerecho.Y].BackColor == Color.Red)
                {
                    tableroJug1[parDerecho.X, parDerecho.Y].BackColor = Color.Orange;
                    aciertosJugador2++;
                    //Eliminamos el par de caza y lo cambiamos por el nuevo par que marcamos
                    paresJugador1.Remove(parDeCaza);
                    parDeCaza = parDerecho;
                    cantTirosJugador2++;
                }
                else
                {
                    paresJugador1.Remove(parDeCaza);
                    //parDeCaza se setea null para que vuelva a tiar random
                    parDeCaza = null;
                    //Se resetean los indicadores de la caza
                    ResetearIndicadores();
                    TiroCaza();
                }
            }
            else
            {
                paresJugador1.Remove(parDeCaza);
                //parDeCaza se setea null para que vuelva a tiar random
                parDeCaza = null;
                //Se resetean los indicadores de la caza
                ResetearIndicadores();
                TiroCaza();
            }
        }
Пример #4
0
        private void TirarArriba()
        {
            Pares parDeArriba = new Pares(parDeCaza.X, parDeCaza.Y + 1);

            if (paresJugador1.Contains(parDeArriba))
            {
                if (tableroJug1[parDeArriba.X, parDeArriba.Y].BackColor == Color.DarkGray || tableroJug1[parDeArriba.X, parDeArriba.Y].BackColor == Color.White)
                {
                    tableroJug1[parDeArriba.X, parDeArriba.Y].BackColor = Color.Blue;
                    paresJugador1.Remove(parDeArriba);
                    tiroArriba = true;
                    cantTirosJugador2++;
                }
                else if (tableroJug1[parDeArriba.X, parDeArriba.Y].BackColor == Color.Red)
                {
                    tableroJug1[parDeArriba.X, parDeArriba.Y].BackColor = Color.Orange;
                    aciertosJugador2++;
                    //Eliminamos el par de caza porque ya determinamos que vamos a ir hacia arriba
                    paresJugador1.Remove(parDeCaza);
                    parDeCaza   = parDeArriba;
                    cazarArriba = true;
                    tiroArriba  = true;
                    cantTirosJugador2++;
                }
                else
                {
                    //No se cuenta este tiro porque ya fue marcado
                    tiroArriba = true;
                    TiroCaza();
                }
            }
            else
            {
                //No se cuenta este tiro porque esta fuera del tablero
                tiroArriba = true;
                TiroCaza();
            }
        }
Пример #5
0
        private void TirarIzquierda()
        {
            Pares parIzquierda = new Pares(parDeCaza.X - 1, parDeCaza.Y);

            if (paresJugador1.Contains(parIzquierda))
            {
                if (tableroJug1[parIzquierda.X, parIzquierda.Y].BackColor == Color.DarkGray || tableroJug1[parIzquierda.X, parIzquierda.Y].BackColor == Color.White)
                {
                    tableroJug1[parIzquierda.X, parIzquierda.Y].BackColor = Color.Blue;
                    paresJugador1.Remove(parIzquierda);
                    tiroIzquierda = true;
                    cantTirosJugador2++;
                }
                else if (tableroJug1[parIzquierda.X, parIzquierda.Y].BackColor == Color.Red)
                {
                    tableroJug1[parIzquierda.X, parIzquierda.Y].BackColor = Color.Orange;
                    aciertosJugador2++;
                    //Eliminamos el par de caza porque ya determinamos que vamos a ir hacia la izquierda
                    paresJugador1.Remove(parDeCaza);
                    parDeCaza      = parIzquierda;
                    cazarIzquierda = true;
                    tiroIzquierda  = true;
                    cantTirosJugador2++;
                }
                else
                {
                    tiroIzquierda = true;
                    TiroCaza();
                }
            }
            else
            {
                tiroIzquierda = true;
                TiroCaza();
            }
        }
Пример #6
0
        //El jugador 2 le tira a los pares del jugador 1
        public void TiroCaza()
        {
            if (parDeCaza == null)
            {
                var rand = random.Next(0, paresJugador1.Count);

                var par = paresJugador1[rand];

                if (tableroJug1[par.X, par.Y].BackColor == Color.DarkGray || tableroJug1[par.X, par.Y].BackColor == Color.White)
                {
                    tableroJug1[par.X, par.Y].BackColor = Color.Blue;
                    cantTirosJugador2++;
                    paresJugador1.RemoveAt(rand);
                    return;
                }
                else if (tableroJug1[par.X, par.Y].BackColor == Color.Red)
                {
                    //Pintamos, contamos 1 tiro y almacenamos el par para tenerlo en cuenta en el tiro siguiente;
                    tableroJug1[par.X, par.Y].BackColor = Color.Orange;
                    parDeCaza = par;
                    cantTirosJugador2++;
                    aciertosJugador2++;
                    return;
                }
                else
                {
                    TiroCaza();
                }
            }
            else
            {
                //En esta logica se hace un tiro en cada direccion. Al hacer el tiro se determina si es correcta y se empieza la caza en esa direccion, de lo contrario se intenta con otra.
                if (!tiroArriba)
                {
                    TirarArriba();
                    return;
                }
                else if (cazarArriba)
                {
                    CazarHaciaArriba();
                    return;
                }

                if (!tiroDerecha)
                {
                    TirarDerecha();
                    return;
                }
                else if (cazarDerecha)
                {
                    CazarHaciaDerecha();
                    return;
                }

                if (!tiroAbajo)
                {
                    TirarAbajo();
                    return;
                }
                else if (cazarAbajo)
                {
                    CazarHaciaAbajo();
                    return;
                }

                if (!tiroIzquierda)
                {
                    TirarIzquierda();
                    return;
                }
                else if (cazarIzquierda)
                {
                    CazarHaciaIzquierda();
                    return;
                }

                parDeCaza = null;
                ResetearIndicadores();
                TiroCaza();
            }
        }