Class Creature

java.lang.Object
com.tt1.simserver.model.creatures.Creature
All Implemented Interfaces:
CreatureInterface, Movable, Multipliable
Direct Known Subclasses:
MobileCreature, StaticCreature

public abstract class Creature extends Object implements CreatureInterface
Clase abstracta base que modela a las entidades genéricas dentro de la simulación. Las implementaciones de esta clase definen los diferentes tipos (móviles, estáticos, reproductivos, etc.).
  • Field Details

    • position

      protected final Position position
  • Constructor Details

    • Creature

      public Creature(String name, String color, Position position)
      Construye una nueva criatura base configurando sus atributos visuales e iniciales.

      Precondición: name no es nulo, no está vacío ni solo contiene caracteres invisibles. color es un color reconocido por CSS. position no es nulo.

      Postcondición: La criatura queda instanciada en memoria guardando su especie, representación visual y su posición de origen.

      Parameters:
      name - nombre de la especie o de la criatura.
      color - el color que la representa visualmente dentro del tablero.
      position - su posición inicial dentro de la simulación.
  • Method Details

    • getName

      public String getName()
      Obtiene el nombre de la especie a la que pertenece la criatura.

      Precondición: Ninguna.

      Postcondición: Devuelve la cadena de texto exacta con el nombre asignado en su creación.

      Specified by:
      getName in interface CreatureInterface
      Returns:
      el nombre de la criatura.
    • getColor

      public String getColor()
      Obtiene el color que representa a la criatura.

      Precondición: Ninguna.

      Postcondición: Devuelve la cadena de texto con el identificador CSS del color.

      Specified by:
      getColor in interface CreatureInterface
      Returns:
      el color de la criatura.
    • getPosition

      public Position getPosition()
      Recupera las coordenadas actuales de la criatura en el tablero.

      Precondición: Ninguna.

      Postcondición: Devuelve una copia nueva del objeto posición actual para evitar manipulaciones externas del estado interno de la criatura.

      Specified by:
      getPosition in interface CreatureInterface
      Returns:
      una nueva instancia con la posición actual.
    • move

      public abstract Position move(GridInterface grid)
      Calcula e intenta realizar un movimiento hacia una nueva casilla del tablero durante este turno.

      Precondición: grid no es nulo y contiene a esta criatura apuntando a la misma posición que tiene guardada.

      Postcondición: Devuelve la nueva posición si la criatura logra moverse con éxito, o nulo si decide o se ve forzada a quedarse quieta.

      Specified by:
      move in interface Movable
      Parameters:
      grid - el tablero que expone las casillas adyacentes.
      Returns:
      la posición de destino, o nulo si no se mueve.
    • multiply

      public abstract Creature multiply(GridInterface grid)
      Intenta ejecutar la reproducción de la especie creando una cría en una casilla contigua durante este turno.

      Precondición: grid no es nulo y contiene a esta criatura apuntando a la misma posición que tiene guardada.

      Postcondición: Devuelve una nueva instancia de criatura (cría) posicionada en el tablero si la reproducción tiene éxito, o nulo si fracasa.

      Specified by:
      multiply in interface Multipliable
      Parameters:
      grid - el tablero para evaluar el espacio y depositar la cría.
      Returns:
      la nueva cría generada, o nulo si no se reproduce.