Class MobileCreature

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

public class MobileCreature extends Creature
Representa una entidad de la simulación capaz de moverse físicamente por el tablero basándose en una probabilidad definida.
  • Constructor Details

    • MobileCreature

      public MobileCreature(String name, String color, double moveProbability, Position position, Random random)
      Instancia la criatura inyectando una semilla aleatoria externa para controlar la probabilidad.

      Precondición: name no es nulo ni está vacío. color es válido en CSS. moveProbability es un valor entre 0.0 y 1.0 (ambos incluidos). position y random no son nulos.

      Postcondición: Configura la criatura almacenando su probabilidad de movimiento y el generador de azar.

      Parameters:
      name - denominación de la especie.
      color - representación gráfica en texto de su color.
      moveProbability - probabilidad (0.0 a 1.0) para que la criatura efectúe un movimiento en un turno.
      position - la posición inicial de la criatura.
      random - objeto generador numérico de probabilidad.
    • MobileCreature

      public MobileCreature(String id, String color, double moveProbability, Position position)
      Constructor por defecto que asume una librería aleatoria estándar.

      Precondición: id no es nulo ni está vacío. color es válido en CSS. moveProbability está entre 0.0 y 1.0 (ambos incluidos). position no es nulo.

      Postcondición: Construye la criatura autogestionando su propio motor de números aleatorios para calcular el movimiento.

      Parameters:
      id - denominación de la especie.
      color - representación gráfica en texto de su color.
      moveProbability - probabilidad de moverse en cada turno.
      position - la posición inicial donde se ubicará.
  • Method Details

    • getMoveProbability

      public double getMoveProbability()
      Extrae el ratio matemático configurado que dicta la frecuencia de movimiento en la simulación.

      Precondición: Ninguna.

      Postcondición: Devuelve el valor decimal asignado que marca la probabilidad de desplazamiento en cada turno.

      Returns:
      probabilidad del 0.0 al 1.0.
    • move

      public Position move(GridInterface grid)
      Resuelve y ejecuta el intento de movimiento de la criatura por el tablero.

      Precondición: grid no es nulo y contiene a esta criatura en su posición correspondiente.

      Postcondición: Si el azar supera la probabilidad definida o si la criatura está rodeada y carece de casillas vacías, devuelve nulo sin modificar su ubicación. Si se cumplen las opciones probabilísticas y hay espacio físico, elige una casilla libre aleatoria, actualiza la posición interna y devuelve estas nuevas coordenadas.

      Specified by:
      move in interface Movable
      Specified by:
      move in class Creature
      Parameters:
      grid - el tablero que rige las colisiones y espacios en este turno.
      Returns:
      la posición de destino a ocupar, o nulo en caso de no desplazarse.
    • multiply

      public Creature multiply(GridInterface grid)
      Bloquea el intento biológico de generar crías.

      Precondición: grid no es nulo y contiene a esta criatura en su posición correspondiente.

      Postcondición: Devuelve siempre nulo. Por regla de negocio, la criatura móvil convencional no tiene activada la reproducción y anula el proceso independientemente de las casillas contiguas vacías.

      Specified by:
      multiply in interface Multipliable
      Specified by:
      multiply in class Creature
      Parameters:
      grid - el entorno del tablero evaluado en este turno.
      Returns:
      siempre devuelve nulo.