Beispiel #1
0
 public void SetCasillas(int array_pos, Casilla casilla)
 {
     if (array_pos <= tamano)
     {
         casillas[array_pos] = casilla;
     }
 }
Beispiel #2
0
 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';
     }
 }
Beispiel #3
0
 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);
         }
     }
 }
Beispiel #4
0
 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));
         }
     }
 }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        // 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();
        }
Beispiel #7
0
        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);
        }