示例#1
0
    /// <summary>
    /// Cambia la orientacion del barco
    /// </summary>
    /// <param name="barco">El barco que se quiere cambiar la orientacion</param>
    /// <param name="nuevaOrientacion">La nueva orientacion que se quiere</param>
    public void cambiarOrientacionDelBarco(Barco barco, OrientacionBarco nuevaOrientacion)
    {
        verificarUbicacionBarco(barco, true);

        barco.instanciaDelBarco.orientacion = nuevaOrientacion;

        if (barco.instanciaDelBarco.orientacion == OrientacionBarco.Horizontal)
        {
            barco.transform.rotation = Quaternion.Euler(0, 90, 0);
        }
        else
        {
            barco.transform.rotation = Quaternion.Euler(0, 0, 0);
        }

        verificarUbicacionBarco(barco);
    }
示例#2
0
 /// <summary>
 /// Metodo constructor de una instancia
 /// </summary>
 /// <param name="longitud">longitud del barco</param>
 /// <param name="orientacion">orientacion del barco</param>
 /// <param name="coordenadaRef">coordenada de referencia del barco</param>
 public InstanciaDeBarco(int longitud, OrientacionBarco orientacion, Coordenada coordenadaRef)
 {
     this.orientacion            = orientacion;
     this.coordenadaDeReferencia = coordenadaRef;
     this.golpesRestantes        = longitud;
 }
示例#3
0
    // para instanciar los barcos de la IA
    private void InstanciarBarcosIA()
    {
        Barco b = null;

        //Instanciamos todos los barcos tipo 4
        for (int i = 0; i < cantidadBarcos4; i++)
        {
            b = Instantiate <GameObject>(Resources.Load <GameObject>("Barcos/" + informacionDeLaPartida.BarcosDeLaPartida[3]), new Vector3(10000, 10000, 10000), Quaternion.identity).GetComponent <Barco>();
            Coordenada       coordenadaRandom  = new Coordenada("A", 0);
            OrientacionBarco orientacionRandom = OrientacionBarco.Horizontal;
            bool             posicionado       = false;
            while (!posicionado)
            {
                //obtenemos una orientacion y coordenada random
                orientacionRandom = Random.Range(0, 2) == 0 ? OrientacionBarco.Horizontal : OrientacionBarco.Vertical;
                coordenadaRandom  = new Coordenada(Coordenada.FILAS[(int)Random.Range(0, 10)], (int)Random.Range(0, 10));
                BarcoEnPartida barco = new BarcoEnPartida(b.informacionBarco.Nombre, b.informacionBarco.Longitud, orientacionRandom, coordenadaRandom);
                posicionado = VerfiUbicacionBarcoIA(barco);
            }
            Destroy(b.gameObject);
        }

        //barcos tipo 3
        for (int i = 0; i < cantidadBarcos3; i++)
        {
            b = Instantiate <GameObject>(Resources.Load <GameObject>("Barcos/" + informacionDeLaPartida.BarcosDeLaPartida[2]), new Vector3(10000, 10000, 10000), Quaternion.identity).GetComponent <Barco>();
            Coordenada       coordenadaRandom  = new Coordenada("A", 0);
            OrientacionBarco orientacionRandom = OrientacionBarco.Horizontal;
            bool             posicionado       = false;
            while (!posicionado)
            {
                //obtenemos una orientacion y coordenada random
                orientacionRandom = Random.Range(0, 2) == 0 ? OrientacionBarco.Horizontal : OrientacionBarco.Vertical;
                coordenadaRandom  = new Coordenada(Coordenada.FILAS[(int)Random.Range(0, 10)], (int)Random.Range(0, 10));
                BarcoEnPartida barco = new BarcoEnPartida(b.informacionBarco.Nombre, b.informacionBarco.Longitud, orientacionRandom, coordenadaRandom);
                posicionado = VerfiUbicacionBarcoIA(barco);
            }
            Destroy(b.gameObject);
        }

        //barcos tipo 2
        for (int i = 0; i < cantidadBarcos2; i++)
        {
            b = Instantiate <GameObject>(Resources.Load <GameObject>("Barcos/" + informacionDeLaPartida.BarcosDeLaPartida[1]), new Vector3(10000, 10000, 10000), Quaternion.identity).GetComponent <Barco>();
            Coordenada       coordenadaRandom  = new Coordenada("A", 0);
            OrientacionBarco orientacionRandom = OrientacionBarco.Horizontal;
            bool             posicionado       = false;
            while (!posicionado)
            {
                //obtenemos una orientacion y coordenada random
                orientacionRandom = Random.Range(0, 2) == 0 ? OrientacionBarco.Horizontal : OrientacionBarco.Vertical;
                coordenadaRandom  = new Coordenada(Coordenada.FILAS[(int)Random.Range(0, 10)], (int)Random.Range(0, 10));
                BarcoEnPartida barco = new BarcoEnPartida(b.informacionBarco.Nombre, b.informacionBarco.Longitud, orientacionRandom, coordenadaRandom);
                posicionado = VerfiUbicacionBarcoIA(barco);
            }
            Destroy(b.gameObject);
        }

        //barcos tipo 1
        for (int i = 0; i < CantidadBarcos1; i++)
        {
            b = Instantiate <GameObject>(Resources.Load <GameObject>("Barcos/" + informacionDeLaPartida.BarcosDeLaPartida[0]), new Vector3(10000, 10000, 10000), Quaternion.identity).GetComponent <Barco>();
            Coordenada       coordenadaRandom  = new Coordenada("A", 0);
            OrientacionBarco orientacionRandom = OrientacionBarco.Horizontal;
            bool             posicionado       = false;
            while (!posicionado)
            {
                //obtenemos una orientacion y coordenada random
                orientacionRandom = Random.Range(0, 2) == 0 ? OrientacionBarco.Horizontal : OrientacionBarco.Vertical;
                coordenadaRandom  = new Coordenada(Coordenada.FILAS[(int)Random.Range(0, 10)], (int)Random.Range(0, 10));
                BarcoEnPartida barco = new BarcoEnPartida(b.informacionBarco.Nombre, b.informacionBarco.Longitud, orientacionRandom, coordenadaRandom);
                posicionado = VerfiUbicacionBarcoIA(barco);
            }
            Destroy(b.gameObject);
        }

        for (int i = 0; i < tableroIA.GetLength(0); i++)
        {
            for (int j = 0; j < tableroIA.GetLength(1); j++)
            {
                if (tableroIA[i, j])
                {
                    GameObject.Find("Escenario/TableroEnemigo/" + Coordenada.FILAS[i] + j).gameObject.GetComponent <Renderer>().material.color = Color.yellow;
                }
            }
        }
    }
示例#4
0
 public BarcoEnPartida(string nombre, int longitud, OrientacionBarco orientacion, Coordenada coordenadaDeRef)
 {
     this.nombre        = nombre;
     this.longitud      = longitud;
     this.infoInstancia = new InstanciaDeBarco(longitud, orientacion, coordenadaDeRef);
 }