The source code for this article can de downloaded here: https://github.com/LisburnLad/ArtificialLife/releases/tag/v1.0
Instructions on getting up and running are given at the end of the article.
How To Create Intelligent Life
Luckily such a program already exists: Genetic Algorithms model the natural selection process. They start with a set of instruction strings, each of which is used to form an object that can then be evaluated to see how well it performs at the task in hand. So, in our case, each instruction string would be used as the blue-print of our life form, which we would then create and evaluate to see how good it is at the problem we set it. The instruction strings in the Genetic Algorithm represent biological chromosomes.
Once the object created from each chromosome has been evaluated, to give it a fitness score, the chromosomes are then ordered by these scores. The worst performing chromosomes are discarded and the best are used to form a new generation of chromosomes. When forming the next generation, the best chromosomes are combined together in the hope of producing new chromosomes that contain the best features of their parent chromosomes. So, for our life forms, the instruction strings from two parents would be spliced together to form the instruction string for a new child which would, hopefully, outperform its parents.
When the next generation of chromosomes has been created, each is again evaluated in the same way as before, and the process continues in this way. This "survival of the fittest" selection approach should result in populations that are successively better adapted to solve the problem for which they are being evaluated. For more information on Genetic Algorithms check out the seminal book by David Goldberg.
In addition to knowing that life came about through evolution, I also know that the most evolved computer scientist brains have created C#, the finest programming language known to mankind (or to me anyway). Given this knowledge, a C# Genetic Algorithm is what we need and this looks perfect for the job:
This Genetic Algorithm (GA) Framework allows us to simulate evolution. All we need to know now is what to evolve. Unfortunately my knowledge is once again lacking. I do know that there are a load of different Artificial Neural Network models out there, the best known of which is probably the Backpropagation Algorithm. However, while all of these Neural Networks have much to offer, I'm not 100% sure if they're the exact component required to give true Artificial Intelligence.