Interface GridInterface

All Known Implementing Classes:
Grid

public interface GridInterface
Define la estructura y las operaciones permitidas sobre el tablero de simulación.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Añade una criatura al tablero usando su posición interna.
    Obtiene las posiciones adyacentes (derecha, arriba, izquierda, abajo) cuyas casillas están libres.
    Obtiene la criatura situada en una posición concreta.
    int
    Obtiene el tamaño del lado del tablero.
    boolean
    isEmpty(Position position)
    Comprueba si una posición es válida y su casilla está libre.
    void
    Avanza el estado del tablero en un turno temporal completo.
  • Method Details

    • tick

      void tick()
      Avanza el estado del tablero en un turno temporal completo.

      Precondición: El tablero está inicializado.

      Postcondición: Recorre todas las posiciones en orden, de izquierda a derecha y de arriba a abajo. Para cada criatura, procesa su movimiento y luego su reproducción. Si la criatura decide moverse, su casilla origen queda vacía y ocupa la nueva posición. Si decide reproducirse, la nueva criatura aparece en su casilla de destino. Las criaturas actúan solo una vez por turno. Las criaturas recién nacidas no actúan en el turno que aparecen.

    • getCreature

      CreatureInterface getCreature(Position position)
      Obtiene la criatura situada en una posición concreta.

      Precondición: position no es nulo y sus coordenadas están dentro de los límites del tablero.

      Postcondición: Devuelve la criatura que ocupa la casilla indicada. Devuelve nulo si la casilla está vacía.

      Parameters:
      position - la posición exacta de la casilla a consultar.
      Returns:
      la criatura en la casilla, o nulo si está vacía.
    • getSize

      int getSize()
      Obtiene el tamaño del lado del tablero.

      Precondición: El tablero está inicializado.

      Postcondición: Devuelve el número de filas (o columnas) del tablero.

      Returns:
      el tamaño del tablero.
    • addCreature

      void addCreature(CreatureInterface creature)
      Añade una criatura al tablero usando su posición interna.

      Precondición: creature no es nulo. Su posición está dentro de los límites del tablero y apunta a una casilla vacía.

      Postcondición: La criatura se almacena en el tablero, ocupando su casilla correspondiente.

      Parameters:
      creature - la criatura a registrar en el tablero.
    • isEmpty

      boolean isEmpty(Position position)
      Comprueba si una posición es válida y su casilla está libre.

      Precondición: position no es nulo.

      Postcondición: Devuelve verdadero si la posición está dentro del tablero y su casilla no contiene ninguna criatura. Devuelve falso si la casilla tiene una criatura o si la posición sale de los límites del tablero.

      Parameters:
      position - la posición a evaluar.
      Returns:
      verdadero si la casilla está libre y es válida, falso en caso contrario.
    • getAdjacentEmptyCells

      List<Position> getAdjacentEmptyCells(Position position)
      Obtiene las posiciones adyacentes (derecha, arriba, izquierda, abajo) cuyas casillas están libres.

      Precondición: position no es nulo.

      Postcondición: Devuelve una lista con las posiciones adyacentes que están dentro del tablero y cuyas casillas no tienen ninguna criatura. Las posiciones fuera del tablero o con criaturas se descartan.

      Parameters:
      position - la posición central para evaluar las adyacentes.
      Returns:
      una lista de posiciones adyacentes con casillas vacías.