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 11                                                       January 8, 1996
______________________________________________________________________________
Core_Warrior_ is a weekly 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:
http://www.stormking.com/~koth                  ;Stormking
http://www.ecst.csuchico.edu/~pizza/koth        ;Pizza
http://pauillac.inria.fr/~doligez/corewar/      ;Planar

______________________________________________________________________________
Hi, and happy new year.

Back home, after some days at the mountains one of my first thoughts
was checking mail to be sure my old Jack was still here, he is, you
have been kind with him, so I'll give you another issue of Corewarrior
instead of spending the time crying on my bed.:-)

Tuc is working hard to change the scripts of Stormking koth, soon
we'll have new features available, password, detailed status and the
chance to change ;redcode attribute of our warrior from verbose to
quiet, for example. Everyone is invited to submit some sample warrior
to kothtest@valhalla.stormking.com trying any oddity to crash it, this
avoid problems in future; any suggestion for enhancement is also
welcome, mail them to tuc@stormking.com

Stefan is still on vacations so we cannot yet see Steven's, Robert's,
and Paul's, tournament winner and medalists, faces on the web; I'm
sure all corewar girls are waiting.

And now stop rambling, let the dat bombs speak for me.
______________________________________________________________________________
Current Status of the Internet Pizza Server ICWS '94 Draft Hill:

 #  %W/ %L/ %T                      Name               Author   Score     Age
 1  41/ 38/ 20                      quiz              Schitzo     144     341
 2  39/ 36/ 24                   Harmony              P.Kline     142      11
 3  39/ 37/ 24             Frontwards v2       Steven Morrell     140     194
 4  33/ 31/ 36                 Mason 2.0        Robert Macrae     134      77
 5  19/  6/ 74             Evol Cap 6.2a       John Wilkinson     133       8
 6  23/ 13/ 64            Impfinity v4g1               Planar     132     141
 7  25/ 19/ 56              juliet storm           M R Bremer     132      31
 8  26/ 20/ 54                  La Bomba          Beppe Bezzi     132     336
 9  18/  5/ 77              Evol Cap 6.2       John Wilkinson     132      25
10  23/ 14/ 63                  Hector 2          Kurt Franke     131     256
11  28/ 24/ 49           Jack in the box          Beppe Bezzi     131     708
12  24/ 17/ 59          juliet and paper M R Bremer, B. Bezzi     131     337
13  30/ 30/ 40                 Torch t18              P.Kline     130     720
14  37/ 45/ 18               seventyfive         Anders Ivner     130      50
15  27/ 24/ 48                endpoint .           M R Bremer     130      13
16  35/ 41/ 24                Boombastic    Maurizio Vittuari     129      76
17  36/ 44/ 20             Provascan 3.0          Beppe Bezzi     127      91
18  17/  7/ 76               Night Train           Karl Lewin     126     228
19  29/ 32/ 39            Tornado 2.0 h1          Beppe Bezzi     125     181
20  19/ 14/ 67                     myOmy             Paulsson     125       5
21  16/  7/ 77              DoorMat v0.1              K Lewin     125     190
22  18/ 12/ 70                Cheap Hack           M R Bremer     125      28
23  35/ 54/ 11                     itest                   ai     116       4
24  21/ 36/ 43                     test9    Maurizio Vittuari     105       1
25  28/ 55/ 17          John's Zizzor 2g       John Wilkinson     100       7

The hill aged 74 this week with 11 new entries. quiz is always holding
the king position even if less strongly than in the short past; having
given the top position to Frontwards, Impfinity and Harmony for short
periods.

After Aeka we have a new resubmission of an old warrior, juliet storm,
this time by its author, she holds a good 7th position.

Hill scores are much lower, average 128 (136 last week). Average age
is 162 (168 last week)
______________________________________________________________________________
94 - What's New (in order of appearance)

 5  43/ 45/ 12               seventyfive         Anders Ivner     140       1
14  30/ 25/ 45              juliet storm           M R Bremer     134       1
24  21/ 16/ 63                Cheap Hack           M R Bremer     126       1
 9  19/  4/ 77              Evol Cap 6.2       John Wilkinson     134       1
24  29/ 31/ 40                endpoint .           M R Bremer     127       1
 2  40/ 40/ 20                   Harmony              P.Kline     141       1
 5  19/  5/ 77             Evol Cap 6.2a       John Wilkinson     132       1
25  28/ 55/ 17          John's Zizzor 2g       John Wilkinson     100       1
18  19/ 13/ 68                     myOmy             Paulsson     125       1
24  36/ 53/ 11                     itest                   ai     118       1
24  21/ 36/ 43                     test9    Maurizio Vittuari     105       1

Many new entries this week, above all new version of Harmony, after
some dissonant trial, by Paul Kline; other entries worth noting are
the fast bomber seventyfive by Anders Ivner, the two Evol Caps by John
Wilkinson and the evergreen juliet storm by Myer Bremer.
______________________________________________________________________________
94 - What's No More

26   0/  1/  3                    testPW    Maurizio Vittuari       3       9
26   4/  0/  0               Dynamo v.1a    John K. Wilkinson      11       8
26   1/  3/  0            Provascan 2.0d              B.Bezzi       3       4
26   2/  1/  1                   Harmony              P.Kline       7      22
26  35/ 47/ 19                  Qwiksand       Wayne Sheppard     122      99
26  34/ 43/ 22               myVamp v3.7             Paulsson     125     643
26  23/ 21/ 56                      Aeka                T.Hsu     124      75
26  36/ 47/ 18             Porch Swing 2                  JKW     125     226
26  34/ 44/ 22               Persistence          Kurt Franke     125     136
26  32/ 40/ 27                  Derision           M R Bremer     124     351
26  33/ 50/ 17                      crow           Karl Lewin     117     167

The leading trio is broken, myVamp is no more at the venerable age of
643, 9th in the 94 hall of fame.

Other losses include Derision at 351, Porch swing 2 at 226, two
centenaries crow and Persistance, a near centenary, Qwiksand, and a
bunch of warriors killed by their authors. The old Aeka, whose
resubmission caused a few discussions, is no more a problem, at least
in 94 hill.
______________________________________________________________________________
What's Old

13  30/ 30/ 40                 Torch t18              P.Kline     130     720
11  28/ 24/ 49           Jack in the box          Beppe Bezzi     131     708
 1  41/ 38/ 20                      quiz              Schitzo     144     341
12  24/ 17/ 59          juliet and paper M R Bremer, B. Bezzi     131     337
 8  26/ 20/ 54                  La Bomba          Beppe Bezzi     132     336
10  23/ 14/ 63                  Hector 2          Kurt Franke     131     256
18  17/  7/ 76               Night Train           Karl Lewin     126     228

The warrior passing 200 age are still seven, but they are no more the
same. myVamp and Derision are not more, replaced by Hector and Night
Train.

quiz, juliet and paper and La Bomba are all very near entering hall of fame.
_____________________________________________________________________________
HALL OF FAME
* means the warrior is still running.

Pos    Name                  Author          Age     Strategy
 1  Iron Gate 1.5          Wayne Sheppard    926    CMP scanner
 2  Agony II               Stefan Strack     912    CMP scanner
 3  Blue Funk              Steven Morrell    869    Stone/ imp
 4  Thermite 1.0           Robert Macrae     802    Qscan -> bomber
 5  Blue Funk 3            Steven Morrell    766    Stone/ imp
 6  Torch t18              P.Kline           720 *  Bomber
 7  Jack in the box        Beppe Bezzi       708 *  P-warrior
 8  HeremScimitar          A.Ivner,P.Kline   666    Bomber
 9  myVamp v3.7            Paulsson          643    Vampire
10  Armory - A5            Wilkinson         609    P-warrior
11  Phq                    Maurizio Vittuari 589    Qscan -> replicator
12  B-Panama X             Steven Morrell    518    Stone/ replicator
13  NC 94                  Wayne Sheppard    387    Stone/ imp
14  Cannonade              P.Kline           382    Stone/ imp
15  Torch t17              P.Kline           378    Bomber
16  Lucky 3                Stefan Strack     355    Stone/ imp
17  Derision               M R Bremer        351    Scanner
18  Request v2.0           Brant D. Thomsen  347    Qvamp -> vampire
19  Dragon Spear           c w blue          346    CMP scanner
20  Leprechaun on speed    Anders Ivner      344    Qscan -> scanner/bomber

myVamp leave the venerable trio a little before establishing the
Swedish top score, Torch and Jack pass HeremScimitar and 700 in good
health, next target Blue Funk 3.

Bremer's Derision enters the hall in 17th position pushing juliet storm off.

______________________________________________________________________________
Current Status of the Internet Pizza Server Beginner's Hill:

 #  %W/ %L/ %T                      Name               Author   Score     Age
 1  61/ 26/ 12 Koolaid II: The Wrath of          David Boeren     196      11
 2  48/ 14/ 38              Spacehead1.1                Warpi     182      72
 3  45/ 12/ 43                 Spacehead                Warpi     178      83
 4  55/ 31/ 14               Our Vamp v2 R Bartolome & JS Pul     178      60
 5  38/ 14/ 48             Thunder V 1.0       Andy Nevermind     163       7
 6  42/ 31/ 27           Winter Werewolf         W. Mintardjo     153      52
 7  43/ 36/ 21                Paperstone                Warpi     151      87
 8  32/ 17/ 51              Spiral Again           Calvin Loh     147       1
 9  27/ 12/ 62                  GCSpiral              Example     142      53
10  26/ 14/ 59               SpiralTest2           Calvin Loh     139      10
11  36/ 36/ 28           Paperstone v1.2                Warpi     137      84
12  43/ 49/  7               polyphemous                Kafka     137      94
13  36/ 39/ 25                RedPixel.2           John Lewis     134       8
14  33/ 35/ 32 Everybody Must Get Stoned       Nathan Summers     132      96
15  33/ 36/ 30 Everybody Must Get Vamped       Nathan Summers     131      19
16  37/ 43/ 20                 Slime 1.1        Anton Marsden     130      12
17  35/ 45/ 20             Test Stone #1         David Boeren     125      27
18  31/ 38/ 30 EveryoneMustGetStoned 2.5       Nathan Summers     125      18
19  33/ 43/ 24                    test-A       Raul Bartolome     124      34
20  35/ 45/ 20           Czar Master 3.0        Dark Scneider     124      21
21  33/ 43/ 24                    test-b       Raul Bartolome     122      35
22  30/ 38/ 32     Forked Lite Ning 4.02 Ansel Greenwood Serm     121       9
23  29/ 41/ 30     Forked Lite Ning 4.06 Ansel Greenwood Serm     117       3
24  29/ 42/ 30                  Craw IIe                 Bach     116       2
25  25/ 39/ 35     Forked Lite Ning 4.03 Ansel Greenwood Serm     111       5

Aeka and Rave have been retired and now the hill is dominated by
Boren's Koolaid II that, if I'm not wrong, did the 94 hill for a while
too. Go on trying, if you made it once you are not so far.
______________________________________________________________________________
The hint Steps

Bombing and scanning steps are an important choice to make when coding
a warrior; the right choice may be the thing that change your score of
many positions in the hill, and require a bit of wisdom.

Having to bomb, for example, every fourth cell of core (modulo 4) we
can choose any number with 4 as greater common divisor with Coresize,
but results are greatly different if we choose a bad or a good one.

Using four as step against a twelve lines long opponent, makes us bomb
it thrice every time we bomb it once, a sort of overkill that's not
needed in most cases; our oponent instead, using a smarter step and
better spreading its bombs may bomb us but once three times as
often. Result: 75/25 for him :-(

Number theory help us in our choice, even if, as usual in corewar,
there is not a best choice but a sort of tradeoff.

Steven Morrell so speaks in its book:
----
One factor that could mean the difference between a top-rate stone and an
unsuccessful stone is the choice of step size.  The program that manages to
bomb the enemy first has a decided advantage, and some bombing step sizes
are more efficient at scanning for the enemy than others.  So what makes a
good step size?

Ideally, it ought to hit every location in 8000 bombs, every other location
in 8000/2=4000 bombs, every third location in 8000/3=2667 bombs, etc.
Unfortunately, this is impossible, especially with a single step size, but
it suggests a basic strategy -- go for the biggest programs first and then
fill in the gaps.

One way of rating the efficiency of a step size is to find the length of
the largest unbombed section of code after each bomb is dropped.  By adding
up all of these lengths, we get a number that tells us how big an average
gap is.  (Indeed, by dividing this number by the number of bombs dropped,
we get the average gap size.)  If we minimize this number over all step
sizes, we get the "Optima Numbers."  For a coresize of 8000, these optima
numbers are:

    mod-1  3359/3039  under-100 -> 73
    mod-2  3094/2234  under-100 -> 98
    mod-4  3364/3044  under-100 -> 76
    mod-5  3315/2365  under-100 -> 95
    mod-8  2936/2376
    mod-10 2930/2430

Another common rating is how closely to in half the new bomb subdivides the
old gap when it is dropped.  By taking the differences between where the
bombs fall and the middle of each gap and adding these distances up, we get
an alternate method for testing efficiency.

Both of these methods are useful for finding general-purpose step sizes.
But suppose you wanted to find a step size optimized for killing other
stones.  Since stones usually have four or five instructions, you would
want a step size that would bomb every 4th and 5th instruction quickly,
regardless of how it does in general.

Fortunately, there is a program in the public domain that calculates all
of these things quicky:
Corestep by Jay Han can be found as
misc/corestep.c, and calcutates optima numbers and optimal step sizes.
You will need a C compiler to use it, but it is otherwise self-contained.
For more infromation, FTP a copy and read through it.  The classic formula
calculates optima numbers, the alternate formula calculates the sum of the
distances between bombs and midpoints, and find-X calculates optimal step
sizes against a specific program length.

If you don't have access to a C compiler or want this for some other
reason, P. Kline has compiled a list of all 8000 step-sizes with their mod,
find-4, find-5, find-10, and find-13 numbers, along with imp-killing
constants and imp-numbers.  This table is designed for use in spreadsheets
or databases. It is available in the misc/ directory under the name num8000.txt
---

If you look at the steps of published warriors you can notice that the
optima numbers are not always used and smaller steps are usually
preferred; the reason of this is mainly because there is no nedd to
quickly find a 500 lines long target and a small step can be used as a
gate, or as pointer in the clear, saving some space.

How to choose, beetween some good number, the one to use is often a
matter of choice. The modulo has to be chosen according to the size of
our warrior, in such a way as not to bomb ourself; once chosen it we
have to select a target size: tiny (5 lines), small (around 10 lines),
average (around 13/15) and select a number with a good find for our
target, and an average one for the others. In our choice we have to
consider the mod 1 numbers with a good find for our selected
modulo. They have bombing patterns approximating closely the one we
want, and usually end bombing the cell immediately before or after the
one we start with.


_____________________________________________________________________________
Planar's corner

This is Impfinity v4g1, the latest (and first truly successful)
version of my stone/imp.

The general organization is the same as v3i: a pair of stones and a
pair of continuous-launching spirals on top of each other.  The stones
haven't changed either.

What has changed is the pumps: I've implemented the idea of
self-priming pumps that I got while writing for Core Warrior 7.  This
replaces a 3-instruction pump and 4-instruction primer with a
4-instruction pump.

But the most important change is the length of the fuse.  In
Impfinity v3i, I start the imp-launcher, wait for a while, then start
the stones.  The "wait for a while" part is what I call the fuse.  I
experimented with the fuse length.  A shorter fuse will make the
spiral weaker, thus giving up more losses, but it will also make the
bombing more aggressive, thus bringing in more wins.  Against my test
suite, the shorter fuse was always better.

Finally, instead of having the pump start the stone after a while, I
made the boot code start the stone right after the pump, jumping to
the loop body instead of the SPL itself: the closer to the JMP, the
earlier the SPL will start accumulating processes (the shorter the
fuse).  Again, the shortest fuse is the best one.

Anyway, this is Impfinity v4g1, seen as low as 11th and as high as 1st
on the hill.  There was a lot of movement on the hill recently.  Now
that the papers seem to be back, I don't think Impfinity will fare so
well.  This is the exact code that I sent to the hill.  Try and abuse
the boot constants if you dare !

-- Planar


;redcode-94
;name Impfinity v4g1
;author Planar
;strategy boot,imp,stone,clear
;strategy   With self-priming pump and very short fuse.
;assert CORESIZE == 8000 
;kill Impfinity

istep	equ	1143
bstep01	equ	2214
bstep02	equ	3285
magic01	equ	(2)
magic02	equ	(-1)

trash	equ	(Z-285)
impoff	equ	(Z+437)
pmpof01	equ	(impoff+1*istep-577)
pmpof02	equ	(impoff+4*istep-496)
stnof01	equ	(impoff+3*istep-215)
stnof02	equ	(impoff+6*istep-158)

	org	boot
Z
boot	spl	boot02

i FOR 2

boot&i
j FOR 4
	mov.i	<psrc&i, <pdst&i
	mov.i	}psrc&i, }pdst&i
ROF
	mov.i	*psrc&i, *pdst&i
	mov.i	instr&i, impoff+(i-1)*istep
	spl	@pdst&i, >trash-15-i*2
	jmp	*pdst&i, >trash-i*2

psrc&i	dat	bomb&i, pend&i
pdst&i	dat	stnof&i, pmpof&i+pend&i-pump&i

point&i	equ	(pump&i-pmpof&i+impoff+(i-1)*istep)

pump&i	spl	#1, >prime&i
ptr&i	spl	pump&i-pmpof&i+impoff-istep-1, {335+i
	add.f	#istep+1, ptr&i
prime&i	mov.i	point&i, point&i-2
pend&i

instr&i	mov.i	#1, istep

bomb&i	dat	<2667, <5334
stone&i	spl	#stone&i+bstep&i+magic&i, {-650
	mov.i	bomb&i, }stone&i
	add.f	#bstep&i-1, stone&i
j&i	djn.f	stone&i, <i-50
send&i

j FOR i==1
k FOR 17
	mov.i	#1, 1
	mov.i	#1, @1
	spl	#1, 1
ROF
ROF
ROF
	end

______________________________________________________________________________
Questions?  Concerns?  Comments?   Complaints?  Mail them to:
Beppe Bezzi <bezzi@iol.it>, Myer R Bremer <bremermr@ecn.purdue.edu> or
Maurizio Vittuari <pan0178@iperbole.bologna.it>
© 2002-2005 corewar.info. Logo © C. Schmidt