/* 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); } }
/*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; }
/*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); }
/* 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); } }