![]() |
Martin Ankerl's CoreWare Page |
![]() |
Hello and welcome to my CoreWar Homepage!
If you don't know what CoreWar is, you should have a look at some
beginner guides which can be found on the King of The Hill - Server.
Here you can find some information about evolving corewar-warriors in general, and the Sourcecode of yace which is an modified version of the evolver ga_war.c (many thanks to Jason Boer). It uses exhaust, which is an corewarsimulator under the GPL (many thanks to M Joonas Pihlaja).
Finally I decided to call my evolver yace, yet another corewar
evolver. If you want to use yace I wouldn't download the
beta. It will have more features, but will also be more buggy. If you
want help debugging send me an email if you encouter a problem, or
better: try to correct it :-)
Latest Release: yace_0-01.zip
Latest Beta: yace_0-02_beta.zip
Terry Newton has written a description
of yace and some batch-files for easier use of it.
At the moment it is a modified version of ga_war.c. Watch out the history:
Here you can find some information about evolving corewar in general. There have been many attemps on evolving corewars, but up to now purely evolved warriors are still much bader than handwritten ones. When I write this I know of 5 different evolvers: Sys4b, ga_war.c, RedMaker, RedRace any yace. There are also some corewar-evolution related papers, a good starting point is KoTH.
All these evolver face two big problems:
oppcode | DAT, MOV, ADD, SUB, MUL, DIV, MOD, JMP, JMZ, JMN, DJN, SPL, CMP, SEQ, SNE, SLT, NOP |
mode | A, B, AB, BA, X, F, I |
modifier 1 | #, $, *, @, {, <, }, > |
address 1 | 0, 1, 2, 3, 4, 5, ... 7998, 7999 |
modifier 2 | #, $, *, @, {, <, }, > |
address 2 | 0, 1, 2, 3, 4, 5, ... 7998, 7999 |
This are
17 x 7 x 8 x 8000 x 8 x 8000 = 487.424.000.000
possible different lines of codes, and a warrior may contain up to 100 lines:
487.424.000.000 * 100 = 48.742.400.000.000 = 4.87424 * 10^13
This is a huge number. (All warriors smaller than 100 lines are already included, because the core is initially filled with DAT's, which is also a regular instruction)
![]() |
written by Martin Ankerl August 2000 |
![]() |