Class StaticRabbit

All Implemented Interfaces:
CreatureInterface, Movable, Multipliable

public class StaticRabbit extends StaticCreature
Variante de criatura estática que a pesar de no desplazarse de sus coordenadas, tiene la peculiaridad biológica de multiplicar su especie sobre casillas contiguas bajo un sistema probabilístico.
  • Constructor Details

    • StaticRabbit

      public StaticRabbit(String name, String color, double multiplyProbability, Position position, Random random)
      Inicializa a la criatura indicando un motor aleatorio específico.

      Precondición: name no es nulo ni vacío. color es un color reconocido por CSS. multiplyProbability es un número entre 0.0 y 1.0 (ambos incluidos). position y random no son nulos.

      Postcondición: Dota a la criatura del gen reproductor, configurando la probabilidad de generar una cría y el motor de azar inyectado.

      Parameters:
      name - el nombre representativo de la especie.
      color - el color para mostrar en el tablero de la simulación.
      multiplyProbability - el valor base de probabilidad para reproducirse en casillas contiguas.
      position - su posición definitiva que actuará como origen reproductor.
      random - el motor de azar para sus comprobaciones biológicas en cada turno.
    • StaticRabbit

      public StaticRabbit(String id, String color, double multiplyProbability, Position position)
      Inicializa a la criatura usando la librería de azar estándar.

      Precondición: id no es nulo ni vacío. color es un color reconocido por CSS. multiplyProbability es un número entre 0.0 y 1.0 (ambos incluidos). position no es nulo.

      Postcondición: Crea el espécimen generando de forma autónoma su propia semilla aleatoria para resolver la reproducción.

      Parameters:
      id - identificador y nombre de la criatura.
      color - el color de renderizado.
      multiplyProbability - la probabilidad en coma flotante de reproducirse en este turno.
      position - su posición anclada en el tablero.
  • Method Details

    • getMultiplyProbability

      public double getMultiplyProbability()
      Provee la métrica estadística que condiciona las posibilidades de gestar crías.

      Precondición: Ninguna.

      Postcondición: Devuelve el ratio numérico que se usa como umbral en el cálculo probabilístico de cada turno.

      Returns:
      un valor base del 0.0 al 1.0 para intentar generar clones.
    • multiply

      public Creature multiply(GridInterface grid)
      Calcula probabilísticamente si debe crear una copia de sí mismo en las inmediaciones.

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

      Postcondición: Si no se supera la probabilidad o carece completamente de casillas libres adyacentes, aborta el proceso y devuelve nulo. Si lo consigue y tiene espacio, elige una casilla libre al azar y devuelve una nueva criatura (clon) con el mismo nombre, color, probabilidad de reproducción y vinculada a la nueva posición destino.

      Specified by:
      multiply in interface Multipliable
      Overrides:
      multiply in class StaticCreature
      Parameters:
      grid - escenario del tablero para determinar las casillas adyacentes libres.
      Returns:
      la nueva cría originada, o nulo si no logra reproducirse.