/// <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); }
/// <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; }
// 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; } } } }
public BarcoEnPartida(string nombre, int longitud, OrientacionBarco orientacion, Coordenada coordenadaDeRef) { this.nombre = nombre; this.longitud = longitud; this.infoInstancia = new InstanciaDeBarco(longitud, orientacion, coordenadaDeRef); }