示例#1
0
        /*Este metodo se encarga de generar un objeto barco de nive 1.
         * Recibe como parametro:
         * r : Representa el numero del barco con el cual se va a crear.*/
        public Barco barcoDebil(int r)
        {
            Barco barco = new Barco();

            if (r == 0)
            {
                barco.nombre   = "UniversidadDeConcepcion";
                barco.arma     = "Normal";
                barco.vida     = 1;
                barco.municion = 100;
                barco.nivel    = 1;
                barco.imagen   = "..\\..\\Imagenes\\conce.png";
            }

            else if (r == 1)
            {
                barco.nombre   = "SantiagoWanders";
                barco.arma     = "Normal";
                barco.vida     = 1;
                barco.municion = 100;
                barco.nivel    = 1;
                barco.imagen   = "..\\..\\Imagenes\\santiago.png";
            }

            else if (r == 2)
            {
                barco.nombre   = "Everton";
                barco.arma     = "Normal";
                barco.vida     = 1;
                barco.municion = 100;
                barco.nivel    = 1;
                barco.imagen   = "..\\..\\Imagenes\\everton.png";
            }
            return(barco);
        }
示例#2
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);
     }
 }
示例#3
0
        //contructor de la clase, ademas se encarga de guardar los barcos con los cuales jugara.
        public Pnj(int cantBarcos, string nivel, string equipoPreferido)
        {
            this.cantBarcos = cantBarcos;
            barcos          = new Barco[cantBarcos];

            Barco jefe = new Barco(); // composicion

            jefe      = jefe.jefeBarcoN(equipoPreferido);
            barcos[0] = jefe;

            for (int i = 1; i < cantBarcos; i++)
            {
                Random r = new Random(DateTime.Now.Millisecond);
                Barco  barco;  // agregacion
                Barco  barcoN; // agregacion
                int    nivelBarco  = r.Next(0, 2);
                int    numeroBarco = r.Next(0, 3);

                if (nivelBarco == 0)
                {
                    barco            = new Barco(); // composicion
                    barco            = barco.barcoDebil(numeroBarco);
                    largoBarcosTotal = largoBarcosTotal + 1;
                    barcos[i]        = barco;
                }

                if (nivelBarco == 1)
                {
                    barcoN           = new Barco(); // composicion
                    barcoN           = barcoN.barcoNormales(numeroBarco);
                    largoBarcosTotal = largoBarcosTotal + 2;
                    barcos[i]        = barcoN;
                }
            }
        }
示例#4
0
        /*Este metodo se encarga de generar un objeto barco jefe de nivel 3
         * Recibe como parametro:
         * r : Representa el numero del barco con el cual se va a crear.*/
        public Barco jefeBarcoN(string nombreB)
        {
            Barco barco = new Barco();

            if (nombreB != "UniversidadDeChile")
            {
                barco.nombre   = "UniversidadDeChile";
                barco.vida     = 3;
                barco.arma     = "Chilena";
                barco.municion = 50;
                barco.nivel    = 3;
                barco.imagen   = "..\\..\\Imagenes\\universidaddechile.png";
            }

            if (nombreB != "UnionEspañola")
            {
                barco.nombre   = "UnionEspañola";
                barco.vida     = 3;
                barco.arma     = "Chilena";
                barco.municion = 50;
                barco.nivel    = 3;
                barco.imagen   = "..\\..\\Imagenes\\union.png";
            }
            return(barco);
        }
示例#5
0
        // metodos de la clase:

        /* Este metodo se encarga de generar un objeto barco de nive 2.
        *  Recibe como parametro:
        *  r : Representa el numero del barco con el cual se va a crear.*/
        public Barco barcoNormales(int r)
        {
            Barco barco = new Barco();

            if (r == 0)
            {
                barco.nombre   = "Colocolo";
                barco.vida     = 2;
                barco.arma     = "TiroRapido";
                barco.municion = 75;
                barco.nivel    = 2;
                barco.imagen   = "..\\..\\Imagenes\\colocolo.png";
            }

            if (r == 1)
            {
                barco.nombre   = "UniversidadCatolica";
                barco.vida     = 2;
                barco.arma     = "TiroRapido";
                barco.municion = 75;
                barco.nivel    = 2;
                barco.imagen   = "..\\..\\Imagenes\\catolica.png";
            }

            if (r == 2)
            {
                barco.nombre   = "Iquique";
                barco.vida     = 2;
                barco.arma     = "TiroRapido";
                barco.municion = 75;
                barco.nivel    = 2;
                barco.imagen   = "..\\..\\Imagenes\\iquique.png";
            }
            return(barco);
        }
示例#6
0
        /*Consutrctor de la clase.
         * Se puede observar que son asignado cada uno de los datos a la variable de la casilla, para asi despues
         * tener un mejor manejo de datos dentro del juego.*/

        public Casilla(int fila, int columna, bool estado, Barco barco)
        {
            this.fila    = fila;
            this.columna = columna;
            this.estado  = estado;
            this.barco   = barco;
            this.Size    = new Size(35, 35);
            this.atacado = false;
        }
示例#7
0
        Terreno board; // agregacion

        //Contrsuctor de la clase:

        /* Se encarga de generar un arreglo de barcos con la cantidad de barcos que se ingreso, ademas de otorgar
         * el barco jefe de inmediato, ya que el barco jefe siempre sera su equipo preferido.*/
        public Jugador(int cantBarcos, string equipoPreferido, string nombre)
        {
            this.Nombre         = nombre;
            this.cantBarcos     = cantBarcos;
            barcos              = new Barco[(cantBarcos + 1)];
            this.barcosActuales = 0;
            jefe      = jefe.jefeBarco(0, equipoPreferido);
            barcos[0] = jefe;
        }
示例#8
0
        /*Funcion que se encarga de posicionar un barco en donde seleccione el usuario.
         * Recibe como parametro:
         * Fil y columna: Coordenadas de donde quiere posicionar el barco.
         * Estado: Condicion en la cual se encuentra la casilla que selecciono el usuario para colocar su barco
         * Terreno: Variable que contiene la matriz de juego y es donde se realizaran las modificaciones al momento
         * que se coloque un barco dentro de la matriz
         * Barco: Barco que el usuario escoge para colocarlo dentro de su matriz.*/
        public void putShip(int fila, int columna, bool estado, Terreno terreno, Barco barco)
        {
            this.fila    = fila;
            this.columna = columna;
            this.estado  = estado;
            this.terreno = terreno;
            filaCp       = ((terreno.InfoTablero[0] / 2));
            columnaCp    = (terreno.InfoTablero[1] - 1);

            if (terreno.Casilla[fila, columna].Estado)
            {
            }
            else if (fila > filaCp)
            {
                if (barco.Nivel == 1)
                {
                    terreno.Casilla[fila, columna].Barco  = barco;
                    terreno.Casilla[fila, columna].estado = true;
                    terreno.Casilla[fila, columna].Image  = Image.FromFile(comp.Terreno.Casilla[fila, columna].Barco.Imagen);
                    bandera = false;
                    jugador.Barcos[jugador.BarcosActuales] = barco;
                    jugador.BarcosActuales = jugador.BarcosActuales + 1;
                }

                else if (barco.Vida == 2)
                {
                    if ((fila + 1) > filaCp && (fila + 1) < terreno.InfoTablero[0])
                    {
                        if (terreno.Casilla[fila + 1, columna].Estado != true)
                        {
                            terreno.Casilla[fila, columna].Barco      = barco;
                            terreno.Casilla[fila, columna].estado     = true;
                            terreno.Casilla[fila, columna].Image      = Image.FromFile(comp.Terreno.Casilla[fila, columna].Barco.Imagen);
                            terreno.Casilla[fila + 1, columna].Barco  = barco;
                            terreno.Casilla[fila + 1, columna].estado = true;
                            terreno.Casilla[fila + 1, columna].Image  = Image.FromFile(comp.Terreno.Casilla[fila, columna].Barco.Imagen);
                            bandera = false;
                            jugador.Barcos[jugador.BarcosActuales] = barco;
                            jugador.BarcosActuales = jugador.BarcosActuales + 1;
                        }

                        else
                        {
                            bandera = true;
                        }
                    }

                    else if ((fila - 1) > filaCp && (fila - 1) < terreno.InfoTablero[0])
                    {
                        if (terreno.Casilla[fila - 1, columna].Estado != true)
                        {
                            terreno.Casilla[fila, columna].Barco      = barco;
                            terreno.Casilla[fila, columna].estado     = true;
                            terreno.Casilla[fila, columna].Image      = Image.FromFile(comp.Terreno.Casilla[fila, columna].Barco.Imagen);
                            terreno.Casilla[fila - 1, columna].Barco  = barco;
                            terreno.Casilla[fila - 1, columna].estado = true;
                            terreno.Casilla[fila - 1, columna].Image  = Image.FromFile(comp.Terreno.Casilla[fila, columna].Barco.Imagen);
                            bandera = false;
                            jugador.Barcos[jugador.BarcosActuales] = barco;
                            jugador.BarcosActuales = jugador.BarcosActuales + 1;
                        }

                        else
                        {
                            bandera = true;
                        }
                    }

                    else if ((columna + 1) <= columnaCp && (columna + 1) < terreno.InfoTablero[1])
                    {
                        if (terreno.Casilla[fila, columna + 1].Estado != true)
                        {
                            terreno.Casilla[fila, columna].Barco      = barco;
                            terreno.Casilla[fila, columna].estado     = true;
                            terreno.Casilla[fila, columna].Image      = Image.FromFile(comp.Terreno.Casilla[fila, columna].Barco.Imagen);
                            terreno.Casilla[fila, columna + 1].Barco  = barco;
                            terreno.Casilla[fila, columna + 1].estado = true;
                            terreno.Casilla[fila, columna + 1].Image  = Image.FromFile(comp.Terreno.Casilla[fila, columna].Barco.Imagen);
                            bandera = false;
                            jugador.Barcos[jugador.BarcosActuales] = barco;
                            jugador.BarcosActuales = jugador.BarcosActuales + 1;
                        }

                        else
                        {
                            bandera = true;
                        }
                    }

                    else if ((columna - 1) <= columnaCp && (columna - 1) < terreno.InfoTablero[1])
                    {
                        if (terreno.Casilla[fila, columna - 1].Estado != true)
                        {
                            terreno.Casilla[fila, columna].Barco      = barco;
                            terreno.Casilla[fila, columna].estado     = true;
                            terreno.Casilla[fila, columna].Image      = Image.FromFile(comp.Terreno.Casilla[fila, columna].Barco.Imagen);
                            terreno.Casilla[fila, columna - 1].Barco  = barco;
                            terreno.Casilla[fila, columna - 1].estado = true;
                            terreno.Casilla[fila, columna - 1].Image  = Image.FromFile(comp.Terreno.Casilla[fila, columna].Barco.Imagen);
                            bandera = false;
                            jugador.Barcos[jugador.BarcosActuales] = barco;
                            jugador.BarcosActuales = jugador.BarcosActuales + 1;
                        }

                        else
                        {
                            bandera = true;
                        }
                    }
                }

                else if (barco.Vida == 3)
                {
                    if ((fila + 2) > filaCp && (fila + 2) < terreno.InfoTablero[0])
                    {
                        if (terreno.Casilla[fila + 1, columna].Estado != true && terreno.Casilla[fila + 2, columna].Estado != true)
                        {
                            terreno.Casilla[fila, columna].Barco      = barco;
                            terreno.Casilla[fila, columna].estado     = true;
                            terreno.Casilla[fila, columna].Image      = Image.FromFile(comp.Terreno.Casilla[fila, columna].Barco.Imagen);
                            terreno.Casilla[fila + 1, columna].Barco  = barco;
                            terreno.Casilla[fila + 1, columna].estado = true;
                            terreno.Casilla[fila + 1, columna].Image  = Image.FromFile(comp.Terreno.Casilla[fila, columna].Barco.Imagen);
                            terreno.Casilla[fila + 2, columna].Barco  = barco;
                            terreno.Casilla[fila + 2, columna].estado = true;
                            terreno.Casilla[fila + 2, columna].Image  = Image.FromFile(comp.Terreno.Casilla[fila, columna].Barco.Imagen);
                            bandera = false;
                            jugador.Barcos[jugador.BarcosActuales] = barco;
                            jugador.BarcosActuales = jugador.BarcosActuales + 1;
                        }

                        else
                        {
                            bandera = true;
                        }
                    }

                    else if ((fila - 2) > filaCp && (fila - 2) < terreno.InfoTablero[0])
                    {
                        if (terreno.Casilla[fila - 1, columna].Estado != true && terreno.Casilla[fila - 2, columna].Estado != true)
                        {
                            terreno.Casilla[fila, columna].Barco      = barco;
                            terreno.Casilla[fila, columna].estado     = true;
                            terreno.Casilla[fila, columna].Image      = Image.FromFile(comp.Terreno.Casilla[fila, columna].Barco.Imagen);
                            terreno.Casilla[fila - 1, columna].Barco  = barco;
                            terreno.Casilla[fila - 1, columna].estado = true;
                            terreno.Casilla[fila - 1, columna].Image  = Image.FromFile(comp.Terreno.Casilla[fila, columna].Barco.Imagen);
                            terreno.Casilla[fila - 2, columna].Barco  = barco;
                            terreno.Casilla[fila - 2, columna].estado = true;
                            terreno.Casilla[fila - 2, columna].Image  = Image.FromFile(comp.Terreno.Casilla[fila, columna].Barco.Imagen);
                            bandera = false;
                            jugador.Barcos[jugador.BarcosActuales] = barco;
                            jugador.BarcosActuales = jugador.BarcosActuales + 1;
                        }

                        else
                        {
                            bandera = true;
                        }
                    }

                    else if ((columna + 2) <= columnaCp && (columna + 2) < terreno.InfoTablero[1])
                    {
                        if (terreno.Casilla[fila, columna + 1].Estado != true && terreno.Casilla[fila, columna + 2].Estado != true)
                        {
                            terreno.Casilla[fila, columna].Barco      = barco;
                            terreno.Casilla[fila, columna].estado     = true;
                            terreno.Casilla[fila, columna].Image      = Image.FromFile(comp.Terreno.Casilla[fila, columna].Barco.Imagen);
                            terreno.Casilla[fila, columna + 1].Barco  = barco;
                            terreno.Casilla[fila, columna + 1].estado = true;
                            terreno.Casilla[fila, columna + 1].Image  = Image.FromFile(comp.Terreno.Casilla[fila, columna].Barco.Imagen);
                            terreno.Casilla[fila, columna + 2].Barco  = barco;
                            terreno.Casilla[fila, columna + 2].estado = true;
                            terreno.Casilla[fila, columna + 2].Image  = Image.FromFile(comp.Terreno.Casilla[fila, columna].Barco.Imagen);
                            bandera = false;
                            jugador.Barcos[jugador.BarcosActuales] = barco;
                            jugador.BarcosActuales = jugador.BarcosActuales + 1;
                        }

                        else
                        {
                            bandera = true;
                        }
                    }

                    else if ((columna - 2) <= columnaCp && (columna - 2) < terreno.InfoTablero[1] && (columna - 2) > 0)
                    {
                        if (terreno.Casilla[fila, columna - 1].Estado != true && terreno.Casilla[fila, columna - 2].Estado != true)
                        {
                            terreno.Casilla[fila, columna].Barco      = barco;
                            terreno.Casilla[fila, columna].estado     = true;
                            terreno.Casilla[fila, columna].Image      = Image.FromFile(comp.Terreno.Casilla[fila, columna].Barco.Imagen);
                            terreno.Casilla[fila, columna - 1].Barco  = barco;
                            terreno.Casilla[fila, columna - 1].estado = true;
                            terreno.Casilla[fila, columna - 1].Image  = Image.FromFile(comp.Terreno.Casilla[fila, columna].Barco.Imagen);
                            terreno.Casilla[fila, columna - 2].Barco  = barco;
                            terreno.Casilla[fila, columna - 2].estado = true;
                            terreno.Casilla[fila, columna - 2].Image  = Image.FromFile(comp.Terreno.Casilla[fila, columna].Barco.Imagen);
                            bandera = false;
                            jugador.Barcos[jugador.BarcosActuales] = barco;
                            jugador.BarcosActuales = jugador.BarcosActuales + 1;
                        }

                        else
                        {
                            bandera = true;
                        }
                    }
                }

                else
                {
                    bandera = true;
                }
            }
        }
示例#9
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);
            }
        }