Issue 33 June 10, 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
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.infi.net/~wtnewton/corewar/
Planar fpt site--ftp://ftp.inria.fr/INRIA/Projects/para/doligez/cw/pmars
Fechter ftp site--ftp://members.aol.com/ofechner/corewar
______________________________________________________________________________
Greetings.
Another week-end without the hill because of a power outage during the week
end Thos was unaware of. Now the hill is down again for maintenance, we all
hope it will reopen soon. Considering what we pay for it, we have nothing to
complain. :-)
Two new warriors in this issue: the historian by Bjoern Guenzel and
Vittuari's stoninc. Both authors have added some interesting comments.
A few other changes have been suggested; the most interesting is a sort of
priority scheduling in the holding pen, so as who submits many warriors at
once will have the others queued after a single submission of another player
coming later. A good thing, even if one should not submit many warriors at
once, waiting at least for the results of first one
Last minute. A new enhanced version of Mopt is available as part of
ptools11.zip at:
http://www.stormking.com/~koth/pmars.html
Thanks Stefan
--Beppe Bezzi
______________________________________________________________________________
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
# %W/ %L/ %T Name Author Score Age
1 43/ 36/ 22 Twister Beppe Bezzi 149 78
2 42/ 37/ 21 Armory II John K W 147 23
3 35/ 23/ 41 Jack in the box II Beppe Bezzi 147 3
4 36/ 26/ 38 the historian bjoern guenzel 145 97
5 41/ 39/ 20 test John K W 144 10
6 39/ 35/ 25 T.N.T. pro Maurizio Vittuari 144 342
7 43/ 43/ 15 Stepping Stone Kurt Franke 143 776
8 31/ 20/ 49 Atom Smasher Anton Marsden 143 34
9 37/ 32/ 30 test Maurizio 142 22
10 38/ 35/ 27 Thermite II Robert Macrae 142 1963
11 37/ 33/ 29 stoninc Maurizio 142 217
12 43/ 44/ 14 HopScotch 1.6 Robert Macrae 141 91
13 40/ 39/ 21 justice II bjoern guenzel 141 9
14 36/ 34/ 30 Test bb v1.36.boot David van Dam 139 1
15 29/ 20/ 51 Rosebud Beppe 139 297
16 39/ 39/ 22 Blur Anton Marsden 138 370
17 31/ 24/ 45 blue candle bjoern guenzel 138 211
18 35/ 33/ 31 Thalamus mod Edgar 137 25
19 27/ 16/ 57 Hazy Shade II John K W 137 922
20 41/ 45/ 14 Yogi P.Kline 137 49
21 41/ 45/ 14 Scan Man David van Dam 136 383
22 31/ 26/ 43 Scotch Broth 1.0 Robert Macrae 135 87
23 34/ 32/ 34 Manfred v0.1 Ian Oversby 135 24
24 36/ 39/ 25 Chameleon M R Bremer 133 1434
25 25/ 18/ 57 EIF John K W 133 171
Weekly age: 47 ( 42 last week, 127 the week before )
New warriors: 9 Turnover/age rate 19%
Average age: 306 ( 341 last week, 311 the week before )
Average score: 140 ( 136 last week, 140 the week before )
The top 25 warriors are represented by 12 authors: Wilkinson with 4,
guenzel, Bezzi, Vittuari and Macrae with 3, and Marsden and van Dam with 2.
Few challenges also this week because of a power outage during the week end
Thos was unaware of. Everything is normal now.
Twister has been king for near all the week. The only other warriors
reaching the top spot are the old Jack in the box, yes the old one and the
new version of Armory.
Few challenges i said, but a very high turnover, allowing 9 new warriors to
enter the hill, pushing off an age of 1967, the hill is getting younger and
younger every week.
Two ex kings have been pushed off this week: a veteran like Grilled Octopus,
and the king of two weeks ago, d-clear II, that experimented one of the most
abrupt falls in the king's hystory.
New entries include some interesting warriors, the quality has been very
high this week. Worth noting are Marsden Atom Smasher and two new versions
of old veterans: Armory II and Jack in the box II. Considering that verion 2
usually live longer than first, maybe we'll see them for long.
The veterans. Thermite hovered around 10th 15th spot, showing a good health
that should allow it to reach 2000 age. Hazy Shade and Chameleon were near
the bottom for most of the time, the Octopus is out and Stepping Stone is
having a new youth after some hard times.
______________________________________________________________________________
94 - What's New
# %W/ %L/ %T Name Author Score Age
2 42/ 37/ 21 Armory II John K W 147 23
3 35/ 23/ 41 Jack in the box II Beppe Bezzi 147 3
5 41/ 39/ 20 test John K W 144 10
8 31/ 20/ 49 Atom Smasher Anton Marsden 143 34
9 37/ 32/ 30 test Maurizio 142 22
13 40/ 39/ 21 justice II bjoern guenzel 141 9
14 36/ 34/ 30 Test bb v1.36.boot David van Dam 139 1
18 35/ 33/ 31 Thalamus mod Edgar 137 25
20 41/ 45/ 14 Yogi P.Kline 137 49
22 31/ 26/ 43 Scotch Broth 1.0 Robert Macrae 135 87
23 34/ 32/ 34 Manfred v0.1 Ian Oversby 135 24
______________________________________________________________________________
94 - What's No More
# %W/ %L/ %T Name Author Score Age
26 30/ 51/ 19 Test Steven Morrell 108 4
26 20/ 19/ 61 Wicked John K W 122 14
26 36/ 53/ 11 test P P.Kline 120 4
26 36/ 49/ 15 Violent Micro v0.4 basehead 123 199
26 32/ 38/ 31 Grilled Octopus v0.5 David Boeren 125 1154
26 20/ 15/ 65 ompega Steven Morrell 125 203
26 2/ 1/ 1 Osseil John K W 6 103
26 38/ 54/ 7 d-clear II bjoern guenzel 122 41
26 32/ 37/ 31 Bomber Boy David van Dam 127 245
Another 1000 old warrior, Boeren's Grilled Octopus, leave the hill setting
at 11th place in the Hall of Fame.
______________________________________________________________________________
94 - What's Old
# %W/ %L/ %T Name Author Score Age
11 37/ 37/ 25 Thermite II Robert Macrae 137 1963
9 39/ 39/ 22 Chameleon M R Bremer 139 1434
12 27/ 17/ 56 Hazy Shade II John K W 137 922
17 39/ 45/ 16 Stepping Stone Kurt Franke 134 776
13 40/ 43/ 17 Scan Man David van Dam 137 383
2 41/ 38/ 22 Blur Anton Marsden 144 370
6 39/ 35/ 25 T.N.T. pro Maurizio Vittuari 144 342
A new entry, TNT pro, with Rosebud very near. The hall of fame is still very
far.
______________________________________________________________________________
HALL OF FAME
* means the warrior is still active.
Pos Name Author Age Strategy
1 Impfinity v4g1 Planar 1993 Stone/ imp
2 Thermite II Robert Macrae 1963 * Qscan -> bomber
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 1434 * 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 Iron Gate 1.5 Wayne Sheppard 926 CMP scanner
13 Hazy Shade II John Wilkinson 922 * P-warrior
14 Agony II Stefan Strack 912 CMP scanner
15 Barrage Anton Marsden 876 Qscan -> replicator
16 Blue Funk Steven Morrell 869 Stone/ imp
17 Flurry Anton Marsden 835 Qscan -> pwarrior
18 Thermite 1.0 Robert Macrae 802 Qscan -> bomber
19 Stepping Stone Kurt Franke 776 * Qscan -> Vampire
20 Blue Funk 3 Steven Morrell 766 Stone/ imp
21 Night Train Karl Lewin 755 Replicator
22 Mirage 1.5 Anton Marsden 736 Scanner/ bomber
23 Blizzard Anton Marsden 713 Qscan -> replicator
24 HeremScimitar A.Ivner,P.Kline 666 Bomber
25 La Bomba Beppe Bezzi 650 Qscan -> replicator
Thermite II is now very near the top and the 2000 milestone. Chameleon
surpasses Frontwards, Grilled Octopus settles in 11th spot, Hazy Shade II
and Stepping Stone moves up a little.
______________________________________________________________________________
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
# %W/ %L/ %T Name Author Score Age
1 57/ 26/ 17 Mace Edgar 189 49
2 59/ 32/ 9 Thalamus Edgar 187 29
3 49/ 20/ 32 Hunter V 0.9 O.Fechner 178 30
4 56/ 36/ 9 Thalamus Edgar 175 5
5 55/ 36/ 9 Violent Micro v0.4b basehead 175 81
6 50/ 25/ 25 Fork v0.1-13p (i) Christoph C. Birk 175 36
7 48/ 23/ 29 Hunter V 0.8 O.Fechner 172 51
8 51/ 43/ 6 Not Very Pretty 2.0 Ross Morgan-Linial 158 3
9 50/ 44/ 6 Not Very Pretty 2.1 Ross Morgan-Linial 157 2
10 50/ 45/ 5 Snail Edgar 155 27
11 46/ 41/ 13 Yet Another Try 1i Justin Kao 152 1
12 46/ 44/ 10 Yet Another Try 1.0b Justin Kao 149 14
13 47/ 46/ 7 Sapper Andrew Fabbro 148 55
14 43/ 49/ 8 Not Very Pretty Ross Morgan-Linial 138 22
15 40/ 43/ 17 Extremely Prejudiced Scott Manley 137 56
16 44/ 52/ 3 Congo 1.0b Ross Morgan-Linial 136 10
17 43/ 49/ 8 Not Very Pretty 1.3 Ross Morgan-Linial 136 15
18 42/ 53/ 5 Switch Hitter 0.1t Ross Morgan-Linial 132 6
19 37/ 43/ 20 1,000lb weight Ross Morgan-Linial 131 24
20 38/ 45/ 18 Trebuchet Andrew Fabbro 131 62
21 40/ 50/ 10 radar.b John K. Lewis 129 78
22 37/ 46/ 18 1,000lb weight (X version Ross Morgan-Linial 128 21
23 41/ 54/ 5 Micro Centurion (mod) Edgar 128 83
24 38/ 52/ 11 Yet Another Try 1a Justin Kao 124 32
25 35/ 49/ 16 C-Scan 1.0 Ross Morgan-Linial 121 8
30 challenges this week. Basehead's Violent Micro loses the head to Edgar's
Mace and Thalamus
______________________________________________________________________________
The Hint
by M. Vittuari
To boot or not to boot...this is the problem!
During my experiments with bombers, I have seen that a good bombing loop
isn't enough to make a good warrior.
"Static" warriors often have to choose between some common solution as:
- decoy-maker section
- booting section
- qscan section (+boot)
A good qscan means more wins but a little more losses (at the opposite
side we have imps!), booting is useful against "smart" enemies like
(q)scanners, but it pays something against "dumb" ones like stones/bombers,
a decoy-maker may be sometimes a good trade-off.
A decoy-maker is able to trash the core very quickly and also it can
reach and damage the enemy.
I tried lots of different decoy-makers, but the basic thing is to optimize
the costants (step, distance, size, etc.): changing just a value sometimes
produces very unexpected results!
In my tests I have tried to implement both boot and decoy-maker (!), the
result is a warrior maybe too "unbalanced", expecially for the oversized
dimension of the decoy-maker itself (this makes me to fall an easy prey
to some quickscanners).
I should try many more tests, but at the moment pizza is down for
maintenance and in these days I'm a bit busy...
Anyway stoninc is a working (beta) test of this.
For the bomber I have used (without permission! Robert_can_you_forgive_me?;-)
the good Brand 3.3, belonging to R. MacRae, and used also in Thermite II:
it is interesting to see that even if at the moment the difference between
Thermite (who use a qscan) and stoninc is very little, some days ago stoninc
had 6 points more than his older brother.
Another interesting section is the brainwashing pit used to reach the 100
instructions, this makes me gain some additional point (sometimes even
imps like to execute it! ;-)
So here's the code, with my promise to Robert to delete it very soon ;-)
;redcode-94
;name stoninc
;author Maurizio
;assert CORESIZE==8000
;strategy decoy test
DIST equ 4200
decA equ (start+DIST-2500)
dAUX equ 201
decAA equ (start+DIST+750)
; * * * P I T * * *
;any silk-like warrior here is welcome! ;-)
pit spl 16*2, <pit-50
i for 16
stp #0, #(-3*i*i)
spl -2, <-1
rof
jmp -1, <pit-50
i for 15
stp #0, #(-3*i*i+1)
spl -2, <-1
rof
jmp -1, <pit-50
; * * * D E C O Y - M A K E R + B O O T * * *
;the goal is trash A and B field, and try to damage the enemy
decoy1
b for 6
mov <decA+1-dAUX*(decoy1+1),{decA-dAUX*decoy1
rof
decoy2
b for 6
mov <decAA+1-dAUX*(decoy2+1),{decAA-dAUX*decoy2
rof
boot
a for 7
mov {bptr1, <bptr1
rof
mov wipe, {bptr2
mov gate, {bptr2
mov sm, <bptr2
spl @bptr1, <4763
bptr1 div.x #cp+1, #DIST
bptr2 div.x #DIST-9,#DIST+3
; * * * B O M B E R * * *
;Brand 3.3
;by Robert MacRae
STEP1 equ 899
STEP2 equ 902
gate dat -100, 200
wipe dat -2, #cp-gate+2
; 1 DAT
start spl #STEP2, STEP2+1
msm mov sm+3, *(tgt+2*STEP1+STEP2)
msp mov start, @msm
in add #STEP1+STEP2,@msp
tgt djn.f msm, <4502
clr mov wipe-1, >gate-1
cp djn.f clr, {gate-1
; 3 DAT
sm mov -STEP2, >-STEP2
end decoy1
______________________________________________________________________________
Extra Extra
the historian
by Bjoern Guenzel
The historian is my first and so far only successful p-spacer. I have
already posted the components blue candle and self justice, so there
is only the brain left to talk about.
In my first p-spacer, which was a permanent switch on loss, I faced
the problem that often the score I kept was increased by a few wins
in the beginning, and therefore wouldn't fall below the critical
value quickly enough, if suddenly the first component started losing.
To address this problem, in the historian I decided to reset the
score every 9 challenges, that is the brain decides whether to switch
or switch not only every 9 challenges, based on the results of these
9 challenges. I think the idea is not new... It works fine, but I
have not really compared it to other mechanisms. Perhaps a nice idea
is the quick way I update my p-space cells every round, storing two
values in one p-cell (number of rounds and number of losses). That is
for the newbies, I guess the experienced players are using stuff like
this already.
In the beginning I experimented with building scores for the active
component, having different switching conditions for each component.
That was because I thought the imp-stone was more likely to tie than
to win, and I hoped to gain some more wins by doing so. That variant
was exactly as fast as the current used, only a table with the
minimum score for each strategy was needed. I think this should allow
for a very precise tuning of the brain. In my experiments only
counting losses worked best, but I later discovered that while I was
testing the other variant, there had been a small bug in the brain
:-( Perhaps I'll try it again in my next warrior. It would be like
strategy dat min_score_strat1,0 ;load strategy here
dat min_score_strat2,0
...
slt #actual_score,@strategy
switch or not switch...
with giving eg 1 point for ties, 3 for wins (I think it is easy to
understand). I think when I tried this, I had the wrong preconditions
as well, as I thought a win is 2 points, a tie 1 point at the current
scoring system (instead of 3/1), so perhaps I really should give it
another try...
The multi-boot version (about 75 visible instructions) scored a bit better
against Thermite and Scan Man (and perhaps others I don't remember) than with
seperate boots (about 98 instructions), although it takes two more
cycles to boot. Perhaps it is a good compromise between having not
enough decoy and the likelihood of being discovered too early.
I have no brainwash protection, mostly because I am not sure which
component I should switch to. At the moment it is fairly random. A
version that would permanently switch to stone-imp after brainwash
scored worse :-( I tried making p_init a high value, eg 7000, which
means that after brainwashing the brain would probably not switch
anymore. Since I assumed it would most likely be washed with
something != 0, it would then switch permanently to stone-imp (I had
a jmn instead of a jmz then). This really improved my scores against
Flurry really good (I think from something like 50/15 to 20/20, I am
not sure), but against others it scored worse. Surprisingly against
warriors not supposed to be brainwashing, like T.N.T. pro or Scan
Man. I may not speculate more, that is up to Maurizio :-) I only
conclude that for every p-spacer it is very likely to be brainwashed at
least once during 200 battles against any opponent (eg by being hit
with a spl in an early stage), so it better should be not too vulnerable
against that (for example the historian resets it's brain rather
quickly, so occasional brainwashs won't hurt too bad).
BTW, I think brainwashing paper is very unlikely to be met, Flurry
might be about the only way to do it? That is because paper will most
likely come as a p-component, and how would you protect a
brainwashing paper from washing itself? (If anybody has an idea, I'd
be very interested to hear).
Enough talk. I hope the historian has become a dreaded opponent for
the one or other, and that it will remain like that for a while :-)
(Some are already beating it :-( ).
Enjoy Core War, and good luck in climbing the hill (don't be too hard
to the historian, so that I finally can get some time for my studys...:)
Bjoern
P.S.: I changed the p-cell numbers and boot distance, just for safety...
;redcode-94 verbose
;name the historian
;author bjoern guenzel
;strategy p-space l3 s9 inv
;strategy switch stone with stone/spiral
;release 25.5.96
;assert CORESIZE==8000
;kill historian
;constants for self justice
jstep equ 3315
jcptr equ (jsplit-3)
jshift equ stshift ;boot distance
;constants for blue x-torch
stshift equ (-2222) ;boot distance
gate equ hit+5001
clptr equ (steps-3)
sign equ (-1)
step4 equ (3364)
step equ (sign*step4)
magic equ (1000)
;constants for spiral launch
istep equ 2667
spshift equ (ptr+stshift+imagic) ;magic boot distance
imagic equ (4875-1451+11+14)
;constants for brain
samplesize equ 9 ;switch every 9 rounds
critical equ 3 ;if losses > critical
p_track equ 321 ;loss + rounds count
p_strategy equ 456 ;active strategy
p_init equ 0 ;don't know what is better
p_factor equ 20 ;against brainwashing?
; ********* brain *********
;table for track update
dat p_init+samplesize*p_factor+critical+2,0 ;first round
p_table dat p_factor+1,0 ;loss -> add one to loss count
dat p_factor+0,0 ;tie -> only update round count
dat p_factor+0,0 ;win -> only update round count
p_ptr dat #p_strategy,#p_track ;p-space pointers
;make new decision
p_switch sub.ab #p_init+(samplesize)*p_factor,p_set ;make readable
slt.ab #(critical+1),p_set ;if more than 3 losses, switch
jmp p_stay,>3000 ;don't change strategy
seq.ab #0,p_decide ;change strategy
mov.a #0,p_new ;!0 = strategy 1
p_new stp.a #1,p_ptr ;0 = strategy 2
ldp.ab p_ptr,p_decide ;reload strategy
p_stay stp.ab #p_init+1,p_ptr ;reset track
jmp p_erase,>2000
;start here
start ldp.ab #0,p_table ;load results of previous fight
p_set ldp.b p_ptr,#0 ;load track
add.ab @p_table,p_set ;update track
p_decide ldp.ab p_ptr,#0 ;load strategy
slt.b p_set,#p_init+(samplesize)*p_factor ;if 9 rounds, new decision
jmp p_switch,>1000
stp.b p_set,p_ptr
p_erase mov.i #0,p_ptr ;erase p-ptrs
jmz.b strategy2,p_decide
;boot strategy 1: self justice (anti-clear stone)
mov.f #0,bsource ;init boot pointer
mov.a #booptr+stshift-30+jstep,booptr
mov.i jsplit,*booptr ;crucial spl
mov.i {bsource,<booptr
stlaunch z for 8 ;jump here to boot blue torch
mov.i {bsource,<booptr
rof
spl @booptr
mov.i #0,booptr
dat >2001,>3002
;boot strategy 2: blue candle (0.75c stone + spiral)
strategy2 spl stlaunch,>2001 ;start here
for 8
mov.i <bsource,{booptr
rof
spl @booptr,>4003 ;put a second processes into stone!
booptr jmp spshift,stshift ;start spiral
; ************* blue torch ************
steps spl #2*step,>-step ;doubles as bomb
loop add.x steps,ptr
ptr mov.i >ptr+magic*step,@hit+step
mov.i steps,@ptr
hit djn.f loop, <gate ;bombed with spl
mov.i bomb,>clptr
djn.f -1,{clptr
bomb dat #-1,<bomb-clptr+2 ;bomb for clear
; ************ binspiral *************
spl #-1000,>2000 ;bombed after 15 process
spl 4,>-1 ;spiral has been created
spl 2,}j3
j1 jmp imp-1,}0
j2 jmp imp+istep-1,}0
nop }j1,}j2
j3 jmp imp+2*istep-1,}0
imp mov.i #istep,istep
; ********* self justice *********
; 0.5c bomber with anti-clear bombs (inspired by Beppe Bezzi)
; spl must be booted to jhit+jstep
jsplit spl #0,>2660
jptr mov.i jbomb,*jhit+3*jstep
mov.i jbomb,@jptr
jhit add.ab #2*jstep,jptr
djn.f jptr,<-5000
mov.i jcb,>jcptr
djn.f -1,{jcptr
jcb dat #-1,<jcb-jcptr+20
jbomb mov.i jstep,1
bsource dat bomb+1,imp+1 ;bootptr, default boot blue candle
for MAXLENGTH-CURLINE
dat 0,0
rof
end start
______________________________________________________________________________
Questions? Concerns? Comments? Complaints? Mail them to people who care.
authors: Beppe Bezzi <bezzi@nemo.it> or Myer Bremer <bremermr@ecn.purdue.edu>
|