conway {simecol} | R Documentation |
simecol example: This model simulates a deterministic cellular automaton.
data(conway)
An S4 object according to the gridModel
specification.
The object contains the following slots:
main
functions with the state transition rules.
parms
A list with two vector elements:
srv
number of neighbours, necessary to survive,
gen
number of neighbours, necessary to generate a new cell.
times
number of time steps to be simulated,
init
matrix with the initial state of the cellular grid (default: random).
To see all details, please have a look into the implementation below.
Gardner, Martin (1970) The Fantastic Combinations of John Conway's New Solitaire Game 'Life.' Scientific American, October 1970.
##============================================ ## Basic Usage: ## explore the example ##============================================ data(conway) plot(sim(conway)) ## more interesting start conditions m <- matrix(0, 40, 40) m[5:35, 19:21] <- 1 init(conway) <- m plot(sim(conway), col=c("white", "green"), axes = FALSE) ## change survival rules parms(conway) <- list(srv = c(3,4), gen = c(3, 4)) plot(sim(conway), col = c("white", "green"), axes = FALSE) ## Not run: require("tcltk") init(conway) <- matrix(0, 10, 10) conway <- editInit(conway) # enter some "1" sim(conway, animate = TRUE, delay = 100) ##============================================ ## Implementation: ## The code of Conways Game of Life ##============================================ conway <- new("gridModel", main = function(time, init, parms) { x <- init nb <- eightneighbours(x) surviv <- (x > 0 & (nb %in% parms$srv)) gener <- (x == 0 & (nb %in% parms$gen)) x <- (surviv + gener) > 0 return(x) }, parms = list(srv = c(2, 3), gen = 3), times = 1:17, init = matrix(round(runif(1000)), ncol = 40), solver = "iteration" ) ## End(Not run)