A midweek review of Corewar
                             October 25, 1993
-------------------------------------------------------------------------------
  I.  The Standings:

 #  %W/ %L/ %T                      Name               Author   Score     Age
 1  34/ 13/ 53                 Cannonade              P.Kline     155     101
 2  34/ 20/ 46                Imprimis 7              P.Kline     149     498
 3  33/ 18/ 48               Impact v1.0         Anders Ivner     148     395
 4  36/ 24/ 40                  Vagabond              P.Kline     148       6
 5  36/ 25/ 39                      test        James Layland     147      23
 6  45/ 42/ 13           Dragon Spear II             c w blue     147      28
 7  40/ 34/ 26         Winter Werewolf 3         W. Mintardjo     146     576
 8  31/ 16/ 53                     pMARS        pMARS project     146     307
 9  37/ 30/ 32              Keystone t13              P.Kline     144     105
10  43/ 41/ 16           Twilight Pits 8         W. Mintardjo     144       2
11  34/ 25/ 41       Deck of Many Things             c w blue     143      15
12  44/ 46/ 11                   Impurge     Fredrik Ohrstrom     142     582
13  44/ 47/  9                 Agony 6.0        Stefan Strack     141     210
14  37/ 33/ 30                  Herem VI         Anders Ivner     141     430
15  32/ 23/ 45                       ttt        nandor sieben     141     482
16  33/ 25/ 42             FlyPaper 3.10            J.Layland     141      29
17  41/ 43/ 15                      test      Mike Nonemacher     140       5
18  41/ 42/ 17           Red Baron ][ v2      Mike Nonemacher     139      16
19  31/ 23/ 47             Night Crawler       Wayne Sheppard     139    1258
20   5/ 44/ 51             Primitive imp         Mintardjo W.      65       1

21   2/ 98/  0                      test              P.Kline       7       0

-------------------------------------------------------------------------------
 II.  The Basics:

       -Core War Archives, including many helpful articles, warrior source
        code, and reliable emulators, are available via anonymous FTP
        at soda.berkeley.edu in pub/corewar.

       -FAQ for this newsgroup is available via anonymous FTP at
        rtfm.mit.edu as pub/usenet/news.answers/games/corewar-faq.z

-------------------------------------------------------------------------------
III.  The Scoop:

Oh my!  What a week (well ok, two weeks).  Stout hearts were driven to
tears as sturdy warriors were laid in the dust.  There is no mercy,
KotH has no favorites, all is woe and struggle - except for the lucky
author whose four entries were ranked 1-4 after a recent battle :-)

Dragon Spear, one of a class of strong cmp-scanners, was driven off.
Sorry Blue, I forgot to make a note of Dragon's age :-(  It was well
over 1000 for sure, leaving Night Crawler as our only remaining 1000+ 
contender.

FlyPaper 3.0 fell off at 590, succumbing to a rash of scanner onslaughts.
Not deterred, J. Layland tightened up a few sprockets and successfully
launched FlyPaper 3.1.

W. Sheppard's cmp-scanner Iron Gate 1.01, a spl-jmp bombing cmp-scanner,
fell off at 399.  Iron Gate was one of the first cmp-scanners to react
to the imp barrage with the endgame gating that has become such a standard.

Then leprechaun 1b, A. Ivner's fast-booting bscanning bomber, was pushed off
at 224.  leprechaun and Herem are worth studying for ideas on how stone
can deal with paper.

QuickFreeze was pushed off at the nice round age of 100.  Although deadly
to imps and other slow-starting programs, QuickFreeze was helpless against
fast scanners.  (QuickFreeze's anti-imp paper has been resurrected, however :-)

Beholder's Eye v2 was also a casualty.  After M. Hasting's highly successful
'B-Scanners Live in Vain' was driven off by the imps last fall, W. Mintardjo
succeeded in resurrecting it with a nifty gate retro-fit.  One of those
'teeny-tinies' you've heard so many good things about :-)

So, with all these programs falling off KotH, who's filling the gaps?

Let's start with Dragon Spear II.  Without having seen any source version,
but judging by its performance against several known programs, I would guess
it is a carpet-bombing cmp-scanner with a fast boot and at least one
reflection against another scanner on the Hill.  Based on its current
ranking, Dragon looks like it might be up for a long time.

Then there's Vagabond, my own stone-imp combination, modelled after
Smooth Noodle Map.  See write-up in Hints.

J. Layland's mysterious 'test' program is also in the top 10 today.
With a score similar to Vagabond, and his proclivity to paper, I'm guessing
its a stone-paper combination, or possibly an advanced version of
FlyPaper.

Just in time for Halloween, the vampire has returned.  Twilight Pits 8
must be whipping somebody (else :-) on KotH, with a respectable 10th
place ranking.

Then theres M. Nonemacher's Red Baron ][.  Red was all over the Hill
in recent days, from high to low.  Red appears to be a fast stone
with an anti-paper strategy of spl-zero carpeting followed by a standard
core-clear.  Got a gate in there too?

On another topic, the old ah-ha! light went on yesterday.  I've been
puzzled by the fact that a zero-length, or single-line DAT #0 program
could show 2% wins on KotH.  Of course!  When it plays itself the first
one to die loses and the other gets credit for the win.  50 wins out of 
2000 battles is 2.5%, rounded to 2%.  Hope you are all as relieved as 
I was to have this explained.

-------------------------------------------------------------------------------
 IV.  The Outlook:

 1  45/ 43/ 12           Dragon Spear II             c w blue     148       1
 2  35/ 26/ 39                   FlyTest            J.Layland     144       1
 2  38/ 23/ 39             FlyPaper 3.09            J.Layland     153       1
 3  42/ 45/ 13           Twilight Pits 8         W. Mintardjo     139       1
 4  42/ 44/ 14                      test      Mike Nonemacher     139       1
 4  31/ 27/ 42                  Vagabond              P.Kline     136       1
 5  42/ 45/ 13               Dagger v2.2     Michael Constant     139       1
 6  44/ 45/ 11              sub-type-cmp             c w blue     143       1
 9  27/ 19/ 54         Silver Paper v1.5         W. Mintardjo     134       1
 9  32/ 28/ 41       Deck of Many Things             c w blue     135       1
 9  42/ 46/ 12               Iron Cannon       Wayne Sheppard     139       1
10  39/ 41/ 20               Match Stick             c w blue     137       1
10  41/ 44/ 15           Red Baron ][ v2      Mike Nonemacher     137       1

-------------------------------------------------------------------------------
  V.  The Quick Look:

16  31/ 30/ 39                      test        James Layland     132       1
18  40/ 51/  9           Paratroops v3.0         W. Mintardjo     129       1
18  41/ 48/ 11    All That Glitters v5.4      Mike Nonemacher     134       1
19  27/ 37/ 36                    Test 1     Brant D. Thomsen     118       1
19  29/ 27/ 44                 Tar Paper              P.Kline     131       1
19  38/ 47/ 15                       B+C         Anders Ivner     129       1
19  40/ 57/  3                       NTA       wayne sheppard     123       1
20   0/ 46/ 54             Primitive imp         Mintardjo W.      54       1
20  21/ 41/ 38        Warrior's Gate 0.3         J Kyle Kelso     100       1
20  22/ 47/ 31        Incrimination v3.0     Brant D. Thomsen      98       1
20  28/ 57/ 15           Crystal Vampyre             c w blue      98       1
20  29/ 44/ 27                      Test               R Ford     113       1
20  36/ 52/ 11                Irony v4.0     Brant D. Thomsen     120       1
20  40/ 50/ 10                   Cleaver       Wayne Sheppard     129       1
21   1/ 38/ 61                   Implets          J.C.Vazquez      63       0
21   2/ 43/ 55                  Imp Test      Stephen Linhart      60       0
21   2/ 80/ 18                     ring2              Unknown      23       0
21   3/ 96/  1                    nexus5    Fredrik Appelberg      11       0
21   6/ 54/ 41                  Nice Try         J.C. Vazquez      57       0
21   8/ 74/ 17               Punch Drunk          Chris Clark      42       0
21  10/ 63/ 27              Pitcher 0.09         J Kyle Kelso      57       0
21  11/ 49/ 40            Combinatoris 1         J Kyle Kelso      74       0
21  13/ 75/ 12                       B52         Bryan Kilian      51       0
21  13/ 81/  6                AntiFreeze      Stephen Linhart      44       0
21  14/ 62/ 24               pitcher 0.1         J Kyle Kelso      67       0
21  14/ 68/ 18                     Shrew      Stephen Linhart      59       0
21  15/ 74/ 11              Minelets[04]          J.C.Vazquez      56       0
21  15/ 74/ 11        Dwarf Spitter v0.5       Daniel Parnell      56       0
21  17/ 63/ 21             The Chain 1.1         J Kyle Kelso      71       0
21  19/ 73/  8                    Nova 1              Jay Han      65       0
21  20/ 41/ 39          Warrior's Gate 4         J Kyle Kelso      99       0
21  20/ 47/ 33                 new paper             c w blue      93       0
21  20/ 61/ 19          Tiers of Stone 1         J Kyle Kelso      78       0
21  23/ 28/ 49                     Hydra      Stephen Linhart     117       0
21  23/ 38/ 39               Bloody Mary                Bryan     108       0
21  23/ 54/ 24               Eye Stone 1         J Kyle Kelso      91       0
21  23/ 60/ 17                     ttest         J Kyle Kelso      86       0
21  26/ 33/ 41              bordel v 1.0          P.E.M & E.C     120       0
21  26/ 37/ 37               FireFighter                Bryan     115       0
21  26/ 57/ 17                      Test      Stephen Linhart      95       0
21  27/ 28/ 45                   Balo v1          P.E.M & E.C     126       0
21  28/ 57/ 14                Morannon 1         J Kyle Kelso      99       0
21  28/ 59/ 13              Morannon 3.1         J Kyle Kelso      96       0
21  29/ 42/ 29               clown v 1.0          P.E.M & E.C     116       0
21  29/ 44/ 26            Fast Food v1.0     Brant D. Thomsen     114       0
21  29/ 48/ 23                  clown v8          P.E.M & E.C     110       0
21  29/ 52/ 20                   bozo v1          P.E.M & E.C     106       0
21  29/ 55/ 17           Glass House 3.0            J.Layland     103       0
21  30/ 61/  9                 Samson IV         Bryan Kilian     100       0
21  31/ 41/ 27                  Clown v1          P.E.M & E.C     121       0
21  31/ 53/ 16                     death       Steven Morrell     109       0
21  33/ 56/ 11                  Taser }{           StarWriter     110       0
21  35/ 49/ 16               sub-type-os             c w blue     120       0

-------------------------------------------------------------------------------
 VI.  The Hint:

Inquiring minds want to know how to create a winning program.  Here's the
process used in building Vagabond.  Better warm up your coffee before
starting :-)

First, look at the mix of programs on KotH.  You have to beat a sufficient
number of them to get a decent score.  If you only beat stones you
won't make it.  Or Paper.  Or imps.  Or scanners.  So the goal is a program
that is strong enough to beat or tie a variety of opponents.

Second, look at what you like and understand.  Right now I am playing
with anti-imp replicators.  C. Blue believes paper is the only useful
strategy against imps, and I agree to an extent.  The paper in QuickFreeze
beats some of the imps on the Hill over 50% of the time.  So that
is where we start.

Strip everything out except the paper and run it against KotH.  Who
do you beat, and who beats you?  This paper beats some of the imps
and ties the others (except Impact), clobbers stones and RotLD/Hydra
types, and loses marvelously to scanners and vampires.

Note that the largest point loss is against scanners.  What beats scanners?
Bombers are the best.  Small bscanners can be good, vampires probably
go even-steven.  Also a small dat-bombing cmp-scanner like FlyPaper
does well.  Just to see, I set up a FlyPaper like program (Tar Paper)
and submitted that.  Hmm.  Not much luck.  The wins against cmp-scanners
were in the 30% range, still losing 50%.  Make a note for later 
that I can take a line off FlyPaper's scanner, but losing that many
against cmp-scanners just encourages more of them.

Since stones have the best win/loss ratio against scanners, how can
we bring them in?  Successful past strategies were used in FlashPaper,
Gamma Paper, and Smooth Noodle Map.  FlashPaper starts both the stone
and the paper at the beginning, and realizes a small number of wins against
scanners, about like Tar Paper.  Gamma Paper bombs for a long time before
starting its paper colony.  Probably if it were to boot the stone away
from the colony it would have better success.  Smooth Noodle Map
boots a stone and two mice-style replicators away from the startup, bombs
for a while, then starts both replicators and continues bombing.  I decided
to try the Smooth Noodle Map strategy.

Then ask why Smooth Noodle Map doesn't work today?  Well the reason is
imps - it just loses or ties them.  But I have paper that works against
imps so success seems like a possibility.  So set up a non-optimized
test version that boots a really simple non-splitting stone and two copies
of the replicator.  The stone bombs for a while, then splits to create the
necessary processes and jumps them to the replicators.  This test is
surprisingly successful on KotH.  The stone is getting 40-50% wins against
the scanners, and the paper is tying or slightly beating the other
stones and the imps.

So now we run a series of tests against single known opponents.
An early version of Night Crawler was published, so run and watch
some battles against that.  Hmm.  Looks like we lose battles because the
stone is not self-splitting.  A single DAT bomb kills Vagabond's stone
rather frequently.  So add a SPL to grow cycles.  Run more tests.
Notice that sometimes NC's stone is crippled, but so are my replicators.
Then my stone is left to face the imps, but since I am growing processes,
I get a tie.  This is much better.

Now run some tests against an early version of the spl-jmp bombing cmp-scanner
Iron Gate.  The stone gets lots of wins, but there are a large number of
ties.  Sometimes IG drops a stunner on one of the replicators, then
gets crippled.  As soon as Vagabond launches the paper the spl-jmp loop takes
over and we get a tie.  Maybe the stone could somehow bomb the replicators
after they've had time to reproduce.  Unfortunately the spl-jmp
could be anywhere in the code, so where do we bomb?  And the two copies are
too far apart for sequental bombing.  Ah!  What if the two papers' descendents
would overwrite one another's original code?  Try setting up their 'child'
distances so the second generation shortly overwrites the original
of the other copy.  In 15 battles this strategy succeeds 3 times.  The
unstunned paper's children kill off the stunned copy and are freed up to
locate and destroy the crippled scanner.

Now run some tests against Keystone, a bomber.  Vagabond's paper gets a
lot of wins, but there are still quite a few ties.  Sometimes V's
paper-launching code is crippled.  Then we see that Vagabond's stone
is really a lightweight and has no core-clear.  Rig up a core-clear
by having it drop its increment code (now MOV STEP,<-STEP) onto the DJN line.
Yes, that works.  Now we've turned some losses and ties into wins.

Impact is a special case.  It's a DAT and SPL bomber (Herem), with
a 3-point spiral.  Ordinarily Vagabond's paper would beat a bomber/spiral
but those SPL bombs are crippling them, and the Impact is getting a lot
of wins by mopping them up with a core-clear.  Impact's SPL's should
not be as dangerous as others' SPL-JMPs, but they are effective.  The 
problem is that my paper has its own JMP - back to the beginning to
make another copy, and doesn't use FlashPaper's trick to clear
single SPL's.  Hmm.  How to clear SPL's, or to make no-loop paper?  Each
copy could make two children and jump to them with no need to go back
to the beginning.  After trying a few variations on this, conclude that
it is worthy of further investigation, but not useful at this time.
All mods to the paper seem to make it just slower enough to get shot
down more.

Agony is another special case.  Agony beats Vagabond about 50/40.  After
watching many battles, give it up as a lost cause.  Too many of
Agony's instructions shrug off the stone's decrements.  Without
an effective decrement, stones are just 33%-of-c bombers.  Cmp-scanners are
66%-of-c.  I can see the decrement lines passing through Agony's code,
but there is no effect.  It might be possible to separate parts of the 
stone and paper-launching code to make me look smaller, but nothing comes to
mind.

Now optimize the stone's step size.  Its a mod-5 step, but that's only
a relic of the program (Emerald) it was cut out of.  Better to use a
mod-1 step so some of the decrements will decoy scanners a little.
Look for a number that finds size-13 opponents rapidly and is small
enough to be used in the core-clear line.

Package everything together, slap on a name test^H^H^H^HIrish^H^H^H^H^HVagabond
and send him up.  Whoa!  4th Place.  Break out the heart medicine!

One variable is the amount of time the stone runs before launching
the paper, which is controlled by a DJN STONE,#XXX.  A large XXX makes
me look more like a stone, a small XXX makes me look more like paper.
Changing XXX affects the success against individual opponents, but the
overall score doesn't change that much.

Items noted for future research:
   adding an imp-gate to the stone
   anti-vamp code
   paper that kills 1143-imps
   paper that overcomes single SPL's
   reducing size of the stone & paper-launch code
   reducing size of boot code
   try bscanner instead of stone
   
-------------------------------------------------------------------------------
VII.  The End:

Paul Kline
pk6811s@acad.drake.edu