I have created my version of “Life“.

A board gets populated with “living” dots.

The java executable can be found here and can be run by double clicking on it or “java -jar Swarm.jar”.  My little dots can breed, come in two different genders, and try to follow each other around (when they’re interested, and they don’t follow diagonally very well).

Each initial dot (generation 0) has randomly assigned attributes.  Such as: Eyesight (that can be seen when  you check the “Show Direction of Travel” box) and lifespan (in turns).

When two different genders come in contact, they breed out another dot.  The new dot inherits some of its “parents’” qualities such as lifespan, eyesight.  Dots die off as their lifespan is reached.

To view the dots’ interests, directions of travel, eyesight, and other properties, check the boxes in the upper right-hand corner of the window.

Another window will also open showing the statistics of the board such as: Number of living dots; max, min and average lifespan; and eyesight statistics.  I wanted to see how these values would change as the population progressed.

It was originally written so that each dot could be its own thread, but on occasion the population booms and it gets extremely slow, so the turns are currently managed by the main process.

The source, written with NetBeans, can be downloaded here.