Sections
Home
Hills
Infinite Hills
Tournaments
Software
Evolving
Optimizer
Community
Newsletter
Discussion
History
Sections
 
For Beginners
First Steps
FAQ
Guides
Lexicon
Benchmarks
For Beginners
> Home > The Corewar Newsletters > Core Warrior > Issue #1

Issue 61                                                      4 August, 1997
______________________________________________________________________________
Core Warrior is a newsletter promoting the game of corewar.  Emphasis is
placed on the most active hills--currently the '94 draft hill and the beginner
hill.  Coverage will follow where ever the action is.  If you have no clue what
I'm talking about then check out these five-star internet locals for more
information:

FAQs are available by anonymous FTP from rtfm.mit.edu as
pub/usenet/news.answers/games/corewar-faq.Z
FTP site is: ftp.csua.berkeley.edu /pub/corewar
Web pages are at: (Please note Stormking's new address)
http://www.koth.org/                            ;Stormking
http://www.ecst.csuchico.edu/~pizza/koth/       ;Pizza
http://pauillac.inria.fr/~doligez/corewar/      ;Planar

Newbies should check the stormking page for the FAQ, language specification,
guides, and tutorials.  Post questions to rec.games.corewar.  All new players
are infinitely welcome!

If ftp.csua.berkeley.edu is unreachable, you can download pMARS at:
Terry's web page--http://www.nc5.infi.net/~wtnewton/corewar/
Planar ftp site--ftp://ftp.inria.fr/INRIA/Projects/para/doligez/cw/pmars
Fechter ftp site--ftp://members.aol.com/ofechner/corewar

A collection of Bezzi's hints in the first issues is available at:
ftp://ftp.volftp.vol.it/pub/pc/msdos/games/solutions/bbhints.zip

Beppe Bezzi web page - http://www.aspide.it/freeweb/Bezzi
______________________________________________________________________________

Welcome to my first issue of Core Warrior, following Christian's two weeks
back. I hope at least someone finds it vaguely useful :-)

The Hills are still quite, with very little action. Is everyone just off on
their summer/winter break, or have we exhasted the possibilities of the '94
Draft? It was a year ago last Tuesday that Anton Marsden published Probe,
with its Q^2 scan, which is still seen on many of the warriors on the Hill. Who
will come with something similar this year?

STOP PRESS -- First and exclusive: the results of the second round of Anton's
Core War Tournament -- see below -- STOP PRESS ENDS

Phil Kendall
______________________________________________________________________________

Anton's Tournament Round 2 Results

The aim of round 2 was to write a warrior designed to beat Electric Head,
currently on top of the '94 Hill. (See _Core Warrior 59_ for the source)

Rank    Name                    Author             Score   Points
_________________________________________________________________
  1     Shelter 1f3             Ilmari Karonen      2986        7
  2     Head Basher             Brian Haskin        2940        6
  3     PBeat v1.0              Philipp Offermann   2903        5
  4     Short Circuit           Philip Kendall      2875        4
  5     P^(1/2)                 Christian Schmidt   2389        3
  6     Nautilus                Mole IX             2098        2
  7     Anti Head               Ian Oversby         1533        1

Congratulations to Ilmari Karonen for dropping only 14 points over the 1000
round fight. 
_______________________________________________________________________

Current Status of the Internet Pizza Server ICWS '94 Draft Hill:

Hill Specs:
   coresize: 8000
   max. processes: 8000
   duration: after 80,000 cycles, a tie is declared.
   max. entry length: 100
   minimum distance: 100
   rounds fought: 200
   instruction set: ICWS '94 Draft

The current ICWS '94 Draft hill:
 #   %W /  %L /  %T                       Name               Author Score  Age
 1  43.5/ 38.3/ 18.3             Electric Head        Anton Marsden 148.7   24
 2  45.6/ 45.6/  8.9            He Scans Again              P.Kline 145.6   12
 3  35.1/ 25.1/ 39.9                      Newt          Ian Oversby 145.1   15
 4  30.5/ 19.0/ 50.5      Return Of The Jedimp             John K W 142.0  269
 5  33.8/ 26.8/ 39.4                    RetroQ              P.Kline 140.9   69
 6  35.2/ 29.6/ 35.2              Head or Tail    Christian Schmidt 140.8   57
 7  35.5/ 30.8/ 33.7            Nine Seven Six           M R Bremer 140.2  133
 8  41.6/ 43.3/ 15.1                       C^2    Christian Schmidt 139.9   19
 9  37.4/ 36.2/ 26.4                PAN-TAU-RA    Christian Schmidt 138.6    4
10  34.1/ 30.9/ 35.0               Ultraviolet         Ken Espiritu 137.3    6
11  40.2/ 43.8/ 16.0                     Blain                Nimon 136.6   35
12  31.2/ 26.6/ 42.2           unrequited love                kafka 135.8   16
13  36.7/ 38.0/ 25.3              First Strike                Nimon 135.5   30
14  31.8/ 28.3/ 39.9                Ultra-RQ^2         Ken Espiritu 135.3    7
15  38.0/ 41.3/ 20.7                NCC-1701-A       Philip Kendall 134.8   72
16  37.7/ 41.0/ 21.3              Guessed v0.1                  Ian 134.4    9
17  26.5/ 18.9/ 54.6               Impish v0.2          Ian Oversby 134.1  308
18  37.2/ 40.7/ 22.1       Damage Incorporated        Anton Marsden 133.6  310
19  40.1/ 47.0/ 12.9                 Overdrive    Christian Schmidt 133.1    1
20  30.9/ 30.1/ 39.0                    Gigolo   Core Warrior staff 131.6  323
21  36.8/ 42.0/ 21.2              Solomon v0.8          Ian Oversby 131.5  115
22  36.4/ 42.1/ 21.5                      Guru          Robert Hale 130.7    2
23  31.3/ 32.3/ 36.5                Terkonit 3    Christian Schmidt 130.2   12
24  37.4/ 45.7/ 16.9               Fawkes v0.2          Ian Oversby 129.2    7
25  37.6/ 46.5/ 15.9                 myVamp5.4             Paulsson 128.7   19

Age since last issue: 2 ( 2 last issue, 13 the issue before )
New warriors: 2  Turnover/age rate 100%
Average age: 74 ( 74 last issue, 72 the issue before )
Average score: 142 ( 139 last issue, 142 the issue before )
The top 25 warriors are represented by 13 independent authors: Schmidt with 6;
Oversby with 5; Espiritu, Kline, Marsden and Nimon with 2. All others with one
warrior each.
______________________________________________________________________________
94 - What's New

 #   %W /  %L /  %T                       Name               Author Score  Age
19  36.9/ 41.9/ 21.2                      Guru          Robert Hale 131.9    1
19  40.1/ 47.0/ 12.9                 Overdrive    Christian Schmidt 133.1    1

We welcome Robert Hale to the '94 Hill.
______________________________________________________________________________
94 - What's No More

 #   %W /  %L /  %T                       Name               Author Score  Age
26  11.4/ 45.4/ 43.1               Pure Genius           Compudemon  77.4    0
26  40.3/ 52.5/  7.1                  Obsidian                Nimon 128.2   29
______________________________________________________________________________
94 - What's Old

 #   %W /  %L /  %T                       Name               Author Score  Age
20  30.9/ 30.1/ 39.0                    Gigolo   Core Warrior staff 131.6  323
18  37.2/ 40.7/ 22.1       Damage Incorporated        Anton Marsden 133.6  310
17  26.5/ 18.9/ 54.6               Impish v0.2          Ian Oversby 134.1  308
 4  30.5/ 19.0/ 50.5      Return Of The Jedimp             John K W 142.0  269

The top three here have all looked in trouble in recent weeks, never leaving
the lower reaches of the Hill. Jedimp, on the other hand, goes from strength
to strength.
______________________________________________________________________________
OLD HALL OF FAME
* means the warrior is still active.

Pos    Name                  Author          Age     Strategy
 1  Thermite II            Robert Macrae     2262    Qscan -> bomber
 2  Impfinity v4g1         Planar            1993    Stone/ imp
 3  Jack in the box        Beppe Bezzi       1620    P-warrior
 4  Tornado 3.0            Beppe Bezzi       1567    Bomber
 5  Torch t18              P.Kline           1539    Bomber
 6  Chameleon              Myer R Bremer     1437    P-warrior
 7  Frontwards v2          Steven Morrell    1420    One shot scanner
 8  Evol Cap 6.6           John Wilkinson    1299    Imp / stone
 9  quiz                   Schitzo           1262    Scanner/ bomber
10  T.N.T.                 Maurizio Vittuari 1204    Bomber
11  Grilled Octopus v0.5   David Boeren      1154    P-warrior
12  Hazy Shade II          John Wilkinson    1102    P-warrior
13  Stepping Stone         Kurt Franke       1049    Qscan -> Vampire
14  Rosebud                Beppe Bezzi        993    Stone/ imp
15  Iron Gate 1.5          Wayne Sheppard     926    CMP scanner
16  T.N.T. pro             Maurizio Vittuari  925    Bomber
17  Agony II               Stefan Strack      912    CMP scanner
18  Barrage                Anton Marsden      876    Qscan -> replicator
19  Blue Funk              Steven Morrell     869    Stone/ imp
20  Flurry                 Anton Marsden      835    Qscan -> pwarrior
21  Thermite 1.0           Robert Macrae      802    Qscan -> bomber
22  Blue Funk 3            Steven Morrell     766    Stone/ imp
23  Night Train            Karl Lewin         755    Replicator
24  Mirage 1.5             Anton Marsden      736    Scanner/ bomber
25  Blizzard               Anton Marsden      713    Qscan -> replicator
______________________________________________________________________________
NEW HALL OF FAME
* means the warrior is still active.

Pos    Name                  Author          Age     Strategy
 1  Probe                  Anton Marsden      403    Q^2 -> Bomber
 2  Blur 2                 Anton Marsden      396    Scanner
 3  unrequited love        kafka              346    Q^2 -> Paper
 4  Gigolo                 Core Warrior staff 323 *  Q^2 -> Stone/imp
 5  Damage Incorporated    Anton Marsden      310 *  Q^2 -> Bomber
 6  Impish v0.2            Ian Oversby        308 *  Stone/imp
 7  Falcon v0.3            Ian Oversby        275    P-warrior
 8  Return Of The Jedimp   John K W           269 *  Q^2 -> Stone/imp
 9  Rosebud                Beppe              218    Stone/imp
10  Q^2 Miro               Anders Ivner       214    Q^2 -> Scanner/bomber
11  Instant Wolf 3.4       Edgar              205    P-warrior
12  Goldfinch              P.Kline            201    P-warrior
13  Simple v0.4b           Ian Oversby        197    QScan -> Stone/imp
14  Trident^2              John K W           195    Q^2 -> Stone/imp
15  ompega                 Steven Morrell     189    Stone/imp
16  Frogz                  Franz              172    Q^2 -> Paper
17  The Machine            Anton Marsden      164    Scanner
18  Memories               Beppe              152    Scanner
19  Nine Seven Six         M R Bremer         133 *  Q^2 -> Stone/imp
20  Tiberius 3.1           Franz              130    Q^2 -> Paper
21  Solomon v0.8           Ian Oversby        115 *  Stone and scanner
22  CC Paper 3.3           Franz              107    Q^2 -> Paper
23  mrb-test               m r bremer         106    ?
24  T.N.T. pro             Maurizio Vittuari  105    Bomber
25  Jack in the box II     Beppe Bezzi        100    P-warrior
______________________________________________________________________________
Current Status of the Internet Pizza Server Beginner's Hill:

Hill Specs:
         coresize: 8000
   max. processes: 8000
         duration: after 80,000 cycles, a tie is declared.
max. entry length: 100
 minimum distance: 100
      maximum age: At age 100, warriors are retired.
    rounds fought: 200
  instruction set: ICWS '94 Draft

Last challenge: Sat Aug 2 20:56:55 PDT 1997
 #   %W /  %L /  %T                       Name               Author Score  Age
 1  51.6/ 37.1/ 11.4             Pentagram 2.a            J.A.Denny 166.1  94
 2  47.2/ 33.9/ 18.9                  Hexagram            J.A.Denny 160.5  92
 3  47.7/ 38.7/ 13.6              Guessed v0.1                  Ian 156.8  32
 4  45.6/ 37.0/ 17.5                 guru v0.1          Robert Hale 154.1   8
 5  39.9/ 25.7/ 34.5                  Sections           Zul Nadzri 154.1  52
 6  45.8/ 40.9/ 13.3                  Nautilus              Mole IX 150.6  11
 7  44.4/ 41.9/ 13.7             qDeath v .169         Ryan Coleman 146.8  39
 8  41.5/ 38.4/ 20.1            qbomber v .469         Ryan Coleman 144.5  43
 9  32.4/ 20.7/ 46.9                  Dust 7.0           Justin Kao 144.1  72
10  34.1/ 24.4/ 41.6               Flimsy v0.6          Ian Oversby 143.8  93
11  41.8/ 41.0/ 17.3                 guru v0.3          Robert Hale 142.6   2
12  32.2/ 22.4/ 45.4           A Blaise Affair     Robert J. Street 142.1  12
13  43.5/ 45.6/ 10.9             Short Sword 4            JS Pulido 141.4  74
14  31.2/ 21.2/ 47.5            Scanitator 3.0     Christian Schmid 141.3  99
15  38.8/ 37.3/ 23.9       Pain and Panic v0.1          Robert Hale 140.3   1
16  31.0/ 23.5/ 45.5 Six-Finger Discount From          Ryan Coleman 138.5  46
17  34.1/ 33.5/ 32.4    If I only had a brain?         Ryan Coleman 134.6  44
18  39.4/ 47.4/ 13.2             Dwa Michaly b    Waldemar Bartolik 131.4  80
19  26.0/ 21.3/ 52.7 4-Finger Discount From th         Ryan Coleman 130.7  47
20  23.6/ 19.4/ 56.9                   Quantum    Christian Schmidt 127.9  96
21  28.0/ 31.6/ 40.4                    Zorm-B            Anonymous 124.4  77
22  23.7/ 23.3/ 53.0 It's a Harmless Addition           Robert Hale 124.1  30
23  25.3/ 28.7/ 46.0 It's a Harmless Addiction          Robert Hale 121.9  33
24  24.6/ 29.3/ 46.2          Kohonenian Dream     Robert J. Street 119.9  66
25   1.1/ 54.6/ 44.4                  PruebaX5 Eleazar Martinez Can  47.5   3

    35.0/ 32.7/ 32.3           Top 25 Averages                      137.2  49
______________________________________________________________________________
The Hint
A new way of avoiding self-bombing

[Note: the warriors mentioned in this article are available from Planar's Web
page: http://pauillac.inria.fr/~doligez/corewar/]

When writing a stone, if all else is equal (which it never is :-) ), a stone
which bombs with a smaller mod will beat the one which bombs with a larger
mod. However, if a stone has a small mod, then it will very often drop a bomb
on itself. Sometimes this can be used to mutate the warrior (for example, see
Beppe Bezzi's _Tornado 3.0_, which uses a spl bomb to change from a bomber to
a coreclear), but often it is a thing to be avoided.

This article gives a (hopefully) new way which means that the mod of a (self-
splitting) bomber can be reduced. The actual method is rather complicated, so
instead of doing a general analysis, I'll do a specific example instead:
Consider this stone, taken from John K Wilkinson's _evoltmp_:

(The actual stone is between the lines labelled p and l, with the d-clear bomb
at jclr; the rest of the warrior is a boot routine and a dat 1,1 decoy)

;redcode-94
;name evoltmp's stone
;author John K W & Philip Kendall
;assert CORESIZE == 8000

org EvolCap

BOOT_DIST equ (2626+24*66)
S       equ 24

jclr:   dat     >2667,     S+10

evol
EvolCap mov.i   jclr,   evol+BOOT_DIST+S+4

for 6
        mov.i   {pptr,  <pptr
rof
        jmp     @pptr

        for     84
        dat.f   1,1
        rof

p       spl     #0,     {-S+1
a       add.f   3,      1
m       mov     }S-2,   -S+1
d       djn.f   -2,     <-1160
c       mov     S,      >-S
l       djn.f   -1,     >-S-1

pptr:   nop     0,      evol+BOOT_DIST+6

        end

(Note that this method will work only for self-splitting stones which have the
add line _before_ one of the bombing lines)

This stone is a stone -> d-clear, which mutates when the mov line looks like

        mov     }-2,1

which moves the spl at p on top of the first djn.f. Currently, it uses a mod-8
step for bombing, with a-field increments offset from this by 3. If we trace
the execution of the warrior once it is booted, the instructions execute in
this order:

[p]
[a p]                   (*)
[m a p]
[d m a p]
[a d m a p]             (*)
[m a d m a p]
[d m a d m a p]
[a d m a d m a p]       (*)
etc...

If we look at the lines marked with * (those where the number of processes is
congruent to 2 mod 3), we notice that there are more adds (a) executed than
movs (m). Therefore there must be some of the mod-8 locations which we thought
were going to be bombed which will not be, at least before the mutation occurs
(a small amount of bombing still occurs after this due to the spl instruction
at p still feeding processes into the loop). In fact, the locations which are
missed are those which occur after (3/2)*n*(n+1) additions, where n=0,1,2,...

This fact enables us to reduce the mod to 4 and, so long as we syncronise our
stone correctly, still avoid self-bombing. As an example, let us consider a
step size, S, of 28 (it is important to keep the step size small with this
warrior as the region from (c-S) to (c+S) is not cleared). The mov instruction
we are trying to miss is mov }2,-3, as this would increment our step size.

Each time a is executed, 28 is added to the initial value of -2 of the a-field
of m, so we require 28k mod 8000=4 (k=0,1,2,...) to get to mov.i }2,-3. This
has a solution of k=1143. There is no value of n such that (3/2)*n*(n+1)=1143,
but if we take n=27, this gives 1134. Then, if we start the warrior with m as

        mov     }(-2+(9*S)),(1-(9*S))

after 1134 additions (the point at which m is skipped), m will be

        mov     }(-2+(1143*S)),(1-(1143*S))

which is equivalent to

        mov     }2,-3

the instruction we are trying to miss. This only leaves one very small
problem: before the mutation to d-clear occurs, at one stage m looks like

        mov     }30,-31

which increments the a-field of the bomb, so we must change the jclr
instruction to

jclr:   dat     >2666,     S+10

(A better bomb to use would be dat >5335,S+10, which would have to start off
as dat >5334,S+10 - see _Core Warrior 52_ for details)

So, here's the complete source to the mod 4 version of evoltmp's stone:

;redcode-94
;name evoltmp's stone
;author John K W & Philip Kendall
;assert CORESIZE == 8000

;see Core Warrior 61 for details of this warrior

org EvolCap

BOOT_DIST equ (2626+24*66)
S       equ 28
magic   equ     9               ; to avoid self-bombing

jclr:   dat     >2666,     S+10 ; changed to >2667 by the stone

evol
EvolCap mov.i   jclr,   evol+BOOT_DIST+S+4

for 6
        mov.i   {pptr,  <pptr
rof
        jmp     @pptr

        for     84
        dat.f   1,1
        rof

        spl     #0,     {-S+1
        add.f   3,      1
        mov     }(-2+(magic*S)),(1-(magic*S))
        djn.f   -2,     <-1160
        mov     S,      >-S
        djn.f   -1,     >-S-1

pptr:   nop     0,      evol+BOOT_DIST+6

        end

At present, if this warrior is run off against some other warriors, its
performance is actually worse than that of the mod-8 version; for example,
versus Planar's _Impfinity v4g1_, the mod-8 version scores 61/86/53
(236 points), whilst the mod-4 version scores 37/99/64 (175 points), and
against Paul Kline's _Torch t18_, mod-8 scores 95/63/42 (327), but mod-4
scores only 77/68/55 (286). One of the principal reasons for this change in
performance is that the mod-4 version is in its bombing mode for
(approximately) twice as long as the mod-8 version; this means that a)
Impfinity has twice as long to build up processes in its imp spirals and b)
the d-clear is running for less time, both of which make Impfinity harder to
kill. This is shown by the fact that the change versus Impfinity is mostly
from wins to ties. Similar considerations apply versus Torch, and many other
warriors.

The above is only an example of a technique, rather than an attempt to create
a warrior which will do well on the Hills, so the fact that performance is
actually degraded by this is not of prime importance; however, it does show
that reducing the mod of a stone is not always a good point. 
______________________________________________________________________________
Questions?  Concerns?  Comments?  Complaints?  Mail them to people who care.
authors: Beppe Bezzi <bezzi@nemo.it>,  Anton Marsden <amarsden@mcs.vuw.ac.nz>,
Christian Schmidt <schmc003@goofy.zdv.Uni-Mainz.de> and Philip Kendall
<pak21@cam.ac.uk>
2002-2005 corewar.info. Logo C. Schmidt