Ocean: Whales in an Ocean

OceanR Documentation

Whales in an Ocean

Description

R6 Object for simulating a population of whales.

Format

R6Class object.

Value

Object of R6Class with methods for simulation.

Public fields

dimensions

A vector of length two giving the dimensions of the ocean.

males

A list of R6 objects of class Male containing the current population of male whales.

females

A list of R6 objects of class Female containing the current population of female whales.

malePop

Current number of males in the population.

femalePop

Current number of females in the population.

starveParameter

Helps determine probability for each whale to die by starvation in the current generation.

Methods

Public methods


Method distance()

Compute distance between two whales.

Usage
Ocean$distance(a, b)
Arguments
a

one whale

b

another whale

Returns

A number


Method new()

Create a new Ocean object.

Usage
Ocean$new(dims = c(100, 100), males = 10, females = 10, starve = 5)
Arguments
dims

numerical vector of length 2 giving the dimensions of the ocean

males

initial number of males

females

initial number of females

starve

the starvation parameter

Returns

A new 'Ocean' object.


Method starvationProbability()

Compute the starvation probability.

Usage
Ocean$starvationProbability(popDensity)
Arguments
popDensity

population density

Returns

a number.


Method advance()

advance the 'Ocean' one step.

Usage
Ocean$advance()
Returns

the 'Ocean' object.


Method plot()

plot the 'Ocean'.

Usage
Ocean$plot()
Returns

side effect


Method clone()

The objects of this class are cloneable with this method.

Usage
Ocean$clone(deep = FALSE)
Arguments
deep

Whether to make a deep clone.

Author(s)

Homer White homerhanumat@gmail.com

Examples

## Not run: 
library(ggplot2)
oceanSim <- function(
  steps = 100, males = 10,
  females = 10, starve = 5,
  animate = FALSE, seed = NULL
  ) {
 if ( !is.null(seed) ) {
   set.seed(seed)
  }
  ocean <- Ocean$new(dims = c(100, 100), males = males,
                     females = females, starve = starve)
  population <-numeric(steps)
  for ( i in 1:steps ) {
    population[i] <- ocean$malePop + ocean$femalePop
    if ( animate ) ocean$plot()
    if ( population[i] == 0 ) break
    ocean$advance()
    if ( animate ) {
        ocean$plot()
        Sys.sleep(0.5)
      }
  }
  pop <- population[1:i]
  df <- data.frame(time = 1:length(pop),
                  pop)
  ggplot(df, aes(x = time, y = pop)) + geom_line() +
    labs(x = "Time", y = "Whale Population")
}
oceanSim(seed = 5050)

## End(Not run)

homerhanumat/bcscr documentation built on Dec. 18, 2024, 9:29 a.m.