EVOLUTION Version 1.3
The program EVOLVE.EXE will run on any IBM-PC family of computers
equipped with a graphics card (works best on EGA/VGA). When you
are entering data, please enter only integers. If you enter a
number out of range, you will be asked to re-enter the number.
If you have a graphics card that supports multiple pages (EGA,
Hercules, VGA except VGAhi, and IBM8514), if you press any key
other than ESCape, 'S', or 'L', while the program is executing,
you will be able to view the statistics for the current session
and the individual bugs. 'S' will save the current food and bug
status to the current drive and directory, 'L' will recall the
previous save under the same name. ESCape key will exit the
THE EVOLUTION OF EVOLUTION:
Version 1.0 -- Bare bones. Just enough to view the process of
evolution in a single environment. Original release.
Version 1.1 -- Added size, speed, and bloat genes. Added an
extra bacteria-rich environment. Second release.
Version 1.2 -- Fixed several bugs in Version 1.1 such as adding
prompt #15 which was in the 1.1 docs but never implemented. Also
fixed problem of crashing when the number of bugs exceeded 127.
Version 1.3 -- Added prompt #16 and #17. Added save and load
features. Third release.
You will first be asked if you wish to load data. Enter 'Y' if
you have a saved session on the current drive and directory and
then enter the filename when asked. If you do not load previous-
ly saved data from disk, enter the data in the following order:
1. The initial number of bugs on the screen. (10)
2. Do you wish to have a portion of the universe which has a
plot of extra bacteria-rich ground? If you answer 'N', then
prompts #6,7,8 will be skipped.
3. The number of bugs which is the dividing point between
increasing placement of food and decreasing placement of
food. The amount of food placed on screen is inversely
proportional to the number of bugs on screen. (10)
4. The food multiplier value. If you entered 10 for number 2
above and there are 10 bugs on screen, the replenish amount
is 1 which will be multiplied by the value entered here to
determine the actual amount of food to place. (6)
5. The replenish rate. This determines how often food is
placed on to the screen. (10)
6. Size of one side of extra fertile ground. (50)
7. Replenish rate of extra fertile ground. This determined how
often food is replenished. (4)
8. Replenish probability. Each time the fertile ground is
replenished, each individual spot is checked against this
number to determine if food should be placed or not. (20)
9. If all the bugs die out for some reason, you can either
start all over or use the current settings.
10. If you answered No to the above, then you enter how many new
bugs to place on the screen when the bugs die out. (10)
11. The maximum energy level for a normal bug. A normal bug
cannot store more energy than this number. Food eaten
beyond this will be discarded. (1500)
12. Bloat death energy level. A bug may have a defective gene
which will allow it to eat beyond the normal limit as de-
fined by #11. If the stored energy is greater than the
limit given here, the bug will die from over-eating. (2500)
13. Fission age. A bug is mature and able to reproduce when it
reaches this age. (800)
14. Fission energy. A bug must have this much stored energy for
it to reproduce. (1000)
15. Food energy value. Each food unit is worth this many energy
16. If you enter 'N', then size, speed, and bloat genes will not
17. Filename to save this data and environment under. This is
the filename used when you press 'S' or 'L' while the pro-
gram is running.
The allowed input ranges are given after each prompt. The number
in parentheses following the descriptions above are typical
The first six numbers of the genes are the probability of that
bug turning in a certain direction. The first number is proba-
bility for going straight ahead. Second is for turning right,
then hard right, reverse, hard left, left. The seventh number is
the bug size, eighth is the bug speed, and the ninth is the bloat
gene. Bug size can range from 0 (one pixel) to 3 (7x7 pixels).
The tendency is for larger bugs to become slower. The speed gene
can range from -1 (no movement, therefore dies) to 4 (move every
2^4 = 16 moves). The bloat gene comes into effect when the value
is greater than 2. This gene also has the tendency to increase
in number as the bug becomes larger but unlike the speed gene, if
the bug decreases in size, this one has only a small probability
of decreasing in value.
You can find values you like by experimenting. On a faster
machine, you can increase the value of #2, and on a slower ma-
chine, decrease it. The value for #2 basically controls the
saturation point -- the higher the saturation point, the slower
the program runs when near the saturation point.
One thing which may be fascinating is using small values for #13
and 14 (less than 50 for both).
This program is FreeWare. In other words, I own the rights to
the program, but you are given the right to distribute it freely
to anyone as long as you don't receive payment for it and you
distribute it unaltered in any way. If you find this program to
be fascinating, interesting, found a bug, etc. (or find this
program to be downright awful), drop me a note at:
GEnie mail address: M.KUBO1
P.O. Box 945
Angwin, CA 94508
Registration is not required but donations (in the area of $10 -
$30, but any amount you feel this program is worth is welcome)
are appreciated. If you are using this program is any way other
than for personal entertainment, I would appreciate registration
and details of the use.
Hope you find the program as fascinating as I've found it to be.
Disclaimer: The author disclaims all warranties, expressed or
implied. In no event shall the author be liable for any loss of
profit or any other commercial damage, including but not limited
to special, incidental, consequential or other damages.
Program algorithm based on descriptions given in Scientific
American, May 1989. In no way does this program duplicate the
code of "Simulated Evolution" sold by Life Science Associates.
In fact, I've never even seen the program except for the screen
displays given in the article.
Program and documentation copyright (C)1989, Mark Kubo.