Have two types for world: a regular world, and a dirty world, with potential conflicts. From a clean world, generate a dirty world by applying moves (in parallel). From the dirty world, generate a clean world using a conflict resolving projection. Such a projection could involve bidding, bouncing the fishes off each other when they collide, giving stochastic priority to some fishes, etc. On Jun 9, 2014 10:26 AM, "O Frolovs" wrote: > Hello > > I am trying to write a predator-prey simulator and I have hit the wall > with functional design. I would appreciate any help or pointers to relevant > literature. > > The simulator is that of a world populated with fish and sharks. It is a > discrete-time multi-agent simulation and what I am struggling to think > about is how to implement the illusion of parallelism in simulation. Since > the problem is not specifically with OCaml (but the simulator is in OCaml), > I have kept this email short and put all the details and the code on GitHub: > > "On the subject of Toroidal Planets, Sharks and Fish." > https://gist.github.com/olliefr/fb26ca3a7645dae7e203 > > It's only a hobby project, but it is of some interest to me, so I would > really appreciate any advice. > > Best regards, > > Ollie >