After article https://habr.com/post/418545/ decided to make version using WPF .Net. Each bot has own consciousness that stores 64 actions. Each iteration bot executes next action. On bot division some actions could be randomly changed.
Some bots are relatives, depends on consciousness. If it pretty much close to each other than bot are relatives.
- Photosynthesis
- Accumulate minerals
- Skip some actions
- Move
- Rotate
- Look
- Eat (Organic, Relative bot or Other bot)
- Share (Only to relative)
- Give (Only to relative)
- Skip next action if surrounded
- Convert minerals to health
- Mutate (change own consciousness)
- Gene Attack (change other bot consciousness)
- Bot division
- Deploy using Squirrel.Windows
- Drawing is done by using WriteableBitmapEx
- Save load is done using serializing to Json (Newtonsoft.Json) and then packing to zip archieve (DotNetZip)
- Caliburn.Micro as Mvvm Framework
- PropertyChanged.Fody to reduce dumb code for INotifyPropertyChanged implementation