Exemplo n.º 1
0
 /* Se declara un contructor que contiene todo los datos que ingresa el usuario, al momento de pasar la vista
  * que solicta la totalidad de los datos.*/
 public Terreno(Jugador jugador, int fila, int columna, int numBarcoUsuario, int numBarcoEnemigo, String nivel, string equipoPreferido, Pnj computador, int tiempoo, VistaTerreno vt)
 {
     this.vt                = vt;
     this.jugador           = jugador;
     this.comp              = computador;
     this.time              = tiempoo;
     this.infoTablero       = new int[4];
     this.infoTablero[0]    = fila;
     this.infoTablero[1]    = columna;
     this.infoTablero[2]    = numBarcoUsuario;
     this.infoTablero[3]    = numBarcoEnemigo;
     this.cantBarcosTerreno = numBarcoUsuario;
     this.nivel             = nivel;
     this.equipoPreferido   = equipoPreferido;
     casilla                = new Casilla[fila, columna];
     listaGeneral           = new List <Barco>();
     jefeUsuario            = barco.jefeBarco(0, this.EquipoPreferido);
     jugador.Barcos[0]      = jefeUsuario;
     listaGeneral.Add(jugador.Barcos[0]);
     for (int i = 0; i < 3; i++)
     {
         Barco aux  = barco.barcoDebil(i);
         Barco aux1 = barco.barcoNormales(i);
         listaGeneral.Add(aux);
         listaGeneral.Add(aux1);
     }
 }
Exemplo n.º 2
0
 /*Funcion que realiza el llamado para posicionar los barcos del enemigo dentro de la matriz de juego
  * Recibe como parametro:
  * Terreno: Es donde se almacena la matriz de jueg y donde se colocaran los barcos del enemigo.
  * Computador: Es donde esta el enemigo con los barcos que fueron seleccionados al azar para esta partida
  * ademas de contener cada una de las posiciones de sus barcos.*/
 public void posicionarBarcos(Pnj computador, Terreno terreno)
 {
     this.terreno = terreno;
     this.comp    = computador;
     for (int i = 0; i < comp.barcos.Length; i++)
     {
         if (barco.colocarPos(comp.barcos[i], comp, this.terreno))
         {
         }
         else
         {
             i--;
         }
     }
     comp.Terreno = this.terreno;
 }
Exemplo n.º 3
0
        /*Funcion que se encarga de colocar las imagenes de los barcos que se encuentran dentro de la matriz
         * ademas de colocar pasto si la casilla esta desocupada y tambien hacer la verificacion en la mitad del
         * terreno, para que se puede diferenciar el terreno de cada uno de los jugadores.
         * Recibe como parametro:
         * Terreno: Es el terreno al cual se el colocaran las imagenes.
         * Computador: Es el usuario enemigo que esta dentro de la partida.*/
        public Terreno verImagen(Terreno terreno, Pnj Computador)
        {
            this.terreno = terreno;
            this.comp    = Computador;

            for (int i = 0; i < terreno.InfoTablero[0]; i++)
            {
                for (int j = 0; j < terreno.InfoTablero[1]; j++)
                {
                    if (comp.Terreno.Casilla[i, j].Estado)
                    {
                        if ((terreno.InfoTablero[0] / 2 <= i))
                        {
                            terreno.Casilla[i, j].Image      = Image.FromFile(comp.Terreno.Casilla[i, j].Barco.Imagen);
                            terreno.Casilla[i, j].ImageAlign = ContentAlignment.TopCenter;
                        }
                        else
                        {
                            terreno.Casilla[i, j].Image      = Image.FromFile("..\\..\\Imagenes\\casilla.png");
                            terreno.Casilla[i, j].ImageAlign = ContentAlignment.TopCenter;
                        }
                    }

                    else if (i == (terreno.InfoTablero[0] / 2))
                    {
                        terreno.Casilla[i, j].Image = Image.FromFile("..\\..\\Imagenes\\banda.png");
                    }

                    else
                    {
                        terreno.Casilla[i, j].Image      = Image.FromFile("..\\..\\Imagenes\\casilla.png");
                        terreno.Casilla[i, j].ImageAlign = ContentAlignment.TopCenter;
                    }
                }
            }
            comp.Terreno = terreno;
            // MessageBox.Show("Ha escogido le nivel " + terreno.Nivel + "que se conforma de" + terreno.InfoTablero[2].ToString() + "barcos enemigos");
            return(terreno);
        }
Exemplo n.º 4
0
        /* Este metodo se encarga de generar las posiciones a cada uno de los barcos, es decir, este metodo
         * otorga posiciones a todo los barcos que son generados para el enemigo.
         * Tener en cuenta que genera posiciones para cada barco segun sea el nivel de este.
         * Recibe como parametro:
         * Barco: El barco al cual se le quiere otorgar las posiciones que va a utilizar dentro de la matriz
         * Computador: Usuario oponente que esta dentro de la aplicacion
         * Terreno: Variabe donde se almacena la matriz del juego , ademas es la cual se le agregaran los barcos
         * enemigos, tambien otorgara la posibilidad de ver si la casilla esta vacio o ocupada.*/
        public bool colocarPos(Barco barco, Pnj computador, Terreno terreno)
        {
            this.terreno = terreno;
            this.comp    = computador;
            Random r = new Random(DateTime.Now.Millisecond);
            int    orientacion = r.Next(0, 2);
            int    filaCp, columnaCp;
            int    filaBoard    = ((terreno.InfoTablero[0] / 2) - 1);
            int    columnaBoard = (terreno.InfoTablero[1] - 1);

            filaCp    = r.Next(0, filaBoard);
            columnaCp = r.Next(0, columnaBoard);

            if (barco.Nivel == 3)
            {
                if (orientacion == 0 && ((filaCp + 2) < filaBoard) && (columnaCp <= columnaBoard) && terreno.Casilla[filaCp, columnaCp].Estado != true)
                {
                    if (terreno.Casilla[(filaCp + 1), columnaCp].Estado != true && terreno.Casilla[(filaCp + 2), columnaCp].Estado != true)
                    {
                        terreno.Casilla[filaCp, columnaCp].Estado       = true;
                        terreno.Casilla[filaCp, columnaCp].Barco        = barco;
                        terreno.Casilla[(filaCp + 1), columnaCp].Estado = true;
                        terreno.Casilla[(filaCp + 1), columnaCp].Barco  = barco;
                        terreno.Casilla[(filaCp + 2), columnaCp].Estado = true;
                        terreno.Casilla[(filaCp + 2), columnaCp].Barco  = barco;
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }

                else if (orientacion == 1 && (filaCp < filaBoard) && ((columnaCp + 2) <= columnaBoard) && terreno.Casilla[filaCp, columnaCp].Estado != true)
                {
                    if (terreno.Casilla[filaCp, (columnaCp + 1)].Estado != true && terreno.Casilla[filaCp, (columnaCp + 2)].Estado != true)
                    {
                        terreno.Casilla[filaCp, columnaCp].Estado       = true;
                        terreno.Casilla[filaCp, columnaCp].Barco        = barco;
                        terreno.Casilla[filaCp, (columnaCp + 1)].Estado = true;
                        terreno.Casilla[filaCp, (columnaCp + 1)].Barco  = barco;
                        terreno.Casilla[filaCp, (columnaCp + 2)].Estado = true;
                        terreno.Casilla[filaCp, (columnaCp + 2)].Barco  = barco;
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }

                else
                {
                    return(false);
                }
            }

            else if (barco.Nivel == 2)
            {
                if (orientacion == 0 && ((filaCp + 1) < filaBoard) && (columnaCp <= columnaBoard))
                {
                    if (terreno.Casilla[filaCp, columnaCp].Estado != true && terreno.Casilla[(filaCp + 1), columnaCp].Estado != true)
                    {
                        terreno.Casilla[filaCp, columnaCp].Estado       = true;
                        terreno.Casilla[filaCp, columnaCp].Barco        = barco;
                        terreno.Casilla[(filaCp + 1), columnaCp].Estado = true;
                        terreno.Casilla[(filaCp + 1), columnaCp].Barco  = barco;
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }

                else if (orientacion == 1 && (filaCp < filaBoard) && ((columnaCp + 1) <= columnaBoard))
                {
                    if (terreno.Casilla[filaCp, columnaCp].Estado != true && terreno.Casilla[filaCp, (columnaCp + 1)].Estado != true)
                    {
                        terreno.Casilla[filaCp, columnaCp].Estado       = true;
                        terreno.Casilla[filaCp, columnaCp].Barco        = barco;
                        terreno.Casilla[filaCp, (columnaCp + 1)].Estado = true;
                        terreno.Casilla[filaCp, (columnaCp + 1)].Barco  = barco;
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }

                else
                {
                    return(false);
                }
            }

            else if (barco.Nivel == 1)
            {
                if (filaCp < filaBoard)
                {
                    if (terreno.Casilla[filaCp, columnaCp].Estado != true)
                    {
                        terreno.Casilla[filaCp, columnaCp].Estado = true;
                        terreno.Casilla[filaCp, columnaCp].Barco  = barco;
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }