Evolvers

An evolver is a term in Corewar that refers to a program that was adapted using a computer algorithm rather than being constructed manually.

ga_war.c

 * Project homepage: http://corewar.co.uk/boer/

This evolution envrionment uses pmars extensively, and after creating viable random programs (i.e. those that are able to defeat or draw an  instruction), will engage the population in the genetic competition.

Each round in the competition will run a challenge for each member in the population. Each challenge is as follows:
 * The opponent is selected randomly from the pool of the other population members. (Targets may appear more than once in a challenge round.)
 * pmars is executed with the two competitors. Scores are tallied, and is determined to be either a total win (all battle completed without problem), a normal win (a battle was drawn or lost), or a draw for either competitor.
 * On a total win, the losing contestant is directly replaced
 * On a win, the winning contestant is mutated and replaced the loser.
 * In either a win or total win, the losing contestant is archived in it's population slot (provided it's better than the previous entry in the archive.)
 * On a tie, either the archived version is revivied, or the first contestant is given a chance to mutate.

It uses the opcodes: dat mov add sub mul div mod jmp jmz jmn djn spl slt cmp seq sne nop

Ir randomly attaches the modifiers .a, .b, .ab, .ba, .f, .x, .i

It uses address modes #, $, @, &lt;, &gt;, *, {, }