public void SetCasillas(int array_pos, Casilla casilla) { if (array_pos <= tamano) { casillas[array_pos] = casilla; } }
public void AsignarCasillas(int filaInicial, int columnaInicial, int esHorizontal) { for (int i = 0; i < casillas.Length; i++) { int fila = esHorizontal == 1 ? filaInicial : filaInicial + i; int columna = esHorizontal == 1 ? columnaInicial + i : columnaInicial; casillas[i] = new Casilla(fila, columna); casillas[i].Estado = 'B'; } }
private void RellenaTablero() { casillas = new Casilla[FILASTABLERO, COLUMNASTABLERO]; for (int i = 0; i < FILASTABLERO; i++) { for (int j = 0; j < COLUMNASTABLERO; j++) { casillas[i, j] = new Casilla(i + 1, j + 1); } } }
public void EstablecerTablero() { tablero = new Casilla[width, height]; for (int y = 0; y < tablero.GetLength(0); y++) { for (int x = 0; x < tablero.GetLength(1); x++) { tablero[x, y] = new Casilla(new Casilla.Coords(x, y)); } } }
private bool PonerBarco(Barco.Tipo tipo_barco, Barco.Orientacion orientacion, int x, int y) { bool puesto = false; // Console.WriteLine("Tipo: {0} | Orientación: {1} | x: {2} | y: {3}", tipo_barco, orientacion, x, y); // Comprobamos que no excede los límites if ((orientacion.Equals(Barco.Orientacion.HORIZONTAL) && x + GetBarcoTablero(tipo_barco).GetTamano() <= tablero.GetLength(0)) || (orientacion.Equals(Barco.Orientacion.VERTICAL) && y + GetBarcoTablero(tipo_barco).GetTamano() <= tablero.GetLength(1))) { int p = orientacion.Equals(Barco.Orientacion.HORIZONTAL) ? x : y; // Comprobamos que todas las posiciones para el nuevo barco son de tipo agua puesto = true; for (int i = p; i < GetBarcoTablero(tipo_barco).GetTamano() + p; i++) { if ((orientacion.Equals(Barco.Orientacion.HORIZONTAL) && !tablero[i, y].GetEstado().Equals(Casilla.Estados.AGUA)) || orientacion.Equals(Barco.Orientacion.VERTICAL) && !tablero[x, i].GetEstado().Equals(Casilla.Estados.AGUA)) { puesto = false; break; } } // Si no excede límites y todas son de tipo agua, establecemos el tipo de barco en el tablero if (puesto) { int array_pos = 0; Casilla casilla = null; for (int i = p; i < GetBarcoTablero(tipo_barco).GetTamano() + p; i++) { if (orientacion.Equals(Barco.Orientacion.HORIZONTAL)) { casilla = tablero[i, y]; } else if (orientacion.Equals(Barco.Orientacion.VERTICAL)) { casilla = tablero[x, i]; } casilla.SetEstado(Casilla.Estados.BARCO); GetBarcoTablero(tipo_barco).SetCasillas(array_pos, casilla); array_pos++; } } } return(puesto); }
// en el constructor creamos el tablero public Tablero() { for (int i = 0; i < FILAS; i++) { for (int j = 0; j < COLUMNAS; j++) { casillas[i, j] = new Casilla(i,j); } } barcos[0] = new Lancha(); barcos[1] = new Fragata(); barcos[2] = new Buque(); barcos[3] = new Portaaviones(); }
public string ComprobarCasilla(int fila, int columna) { string respuesta = "AGUA"; char estado = casillas[fila - 1, columna - 1].Estado; if (estado == 'B') { bool marcado = false; int indiceBarcos = 0; do { Barco barco = barcos[indiceBarcos]; int indiceCasillas = 0; do { Casilla casilla = barco.casillas[indiceCasillas]; if (casilla.Fila == fila && casilla.Columna == columna) { barcos[indiceBarcos].casillas[indiceCasillas].Estado = 'X'; if (barcos[indiceBarcos].EstaHundido()) { respuesta = "TOCADO Y HUNDIDO"; } else { respuesta = "TOCADO"; } PintarBarco(indiceBarcos); marcado = true; } indiceCasillas++; } while (!marcado && indiceCasillas < barco.casillas.Length); indiceBarcos++; } while (!marcado && indiceBarcos < barcos.Length); } return(respuesta); }