A humorous but powerful tool for simulating evolution - with some great-to-learn-from Delphi code!
A great idea for the Fancy Delphi Application Contest ;-)
Critters Evolve!Evolution is all about change, to understand evolution you need to see it in action - let's see if Darvin was wrong?!
Make your critter tribe unique:
- Fitness is determined by how closely the critter's string is to the target. This determines the critters food supply, and so its ability to reproduce.
- Hunger and old age keeps the population from becoming too large.
- The critter colors are determined by uncontrolled mutation, this allows you to see who is related to whom.
- It is relaxing to watch with a large tank size. ;)
Critters Evolve! FAQHow / why do the critters evolve?
The critters on the screen live out their lives, and eventually must die from either starvation or old age. They cannot change at all, the same as real creatures, their "genetics" are fixed. But their offspring may be slightly different from themselves, either worse (further from the target) or better (closer to the target). If their offspring are worse, they usually die without having offspring of their own. If the are better, they will usually have a few offspring of their own, which will carry on their improvements.
Changes, when they occur, are one of three types:
- a random character addition to a random loction
- a deletion of a character at a random location or
- a transformation of a random character location to a new random character.
So gradually, over time, the population moves to higher and higher average fitness levels.
Have the colors/move a particular signification?
The colors are there only for two reasons. One is that I thought it was pretty. The other is that because the offspring have the same color (or similar color) to the parent, you can see groups of related critters.
The motion is also treated in this way, offspring appear near their parent, traveling the same way. But motion can change while a critter is still living, while the color and string are fixed.
What is 'target', 'cycles', 'fitness'?
The "Target" is the string that defines a perfect critter, the most fit, and thus the best at getting food and reproducing. You can change the target, and suddenly critters that were good are not so good.
"Cycles" are the number of years or generations in the simulation.
"Fitness" is the current average closeness of the entire population to the target.
"Critters Evolve!" was submitted by Robert Norton.
Do you have a FDA(C)? Submit your Delphi code to the Fancy Delphi Application Contest.