Issue 29 May 13, 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 still out of service, 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
______________________________________________________________________________
Greetings.
This week the discussion in the newsgroup has been about self fights,
most opinions have been against self fights with those arguments:
-self fights disadvantage some warriors unable to kill themselves
-self fight waste machine time
-in a tournament there are no self fights, one fights only his opponents
with those arguments pro:
-removing self fights will unbalance the score, because only with self
fights every warriors fights against the same warriors.
-self fight score has little influence and it's important to keep
rules constant
My opinion is known and I won't express it again here, but it's
important we discuss the topic, not long ago it seemd everybody was
against self fights, in the polite way usual in the newsgroup-
--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 47/ 37/ 16 Scan Man David van Dam 158 79
2 47/ 40/ 12 Wind-up Toy v1.2c Ian Oversby 155 111
3 41/ 35/ 25 Thermite II Robert Macrae 146 1659
4 40/ 35/ 25 T.N.T. pro Maurizio Vittuari 146 38
5 38/ 33/ 29 La Bomba 1.3 Beppe Bezzi 144 230
6 41/ 37/ 22 Blur Anton Marsden 144 66
7 40/ 35/ 25 test Maurizio Vittuari 144 12
8 40/ 36/ 24 Grilled Octopus v0.5 David Boeren 143 875
9 28/ 14/ 58 Hazy Shade II John K W 143 618
10 34/ 25/ 41 Walk Like An Egyptian John K W 143 217
11 40/ 37/ 23 Blanket Party J E Long 142 383
12 38/ 34/ 28 Yogi Bear P.Kline 142 2
13 39/ 37/ 23 Chameleon M R Bremer 142 1130
14 42/ 43/ 15 Stepping Stone Kurt Franke 142 472
15 40/ 38/ 23 The Core Clear V1.3 David van Dam 141 174
16 30/ 18/ 52 test eif JKW 141 56
17 38/ 36/ 26 Flimsy v0.4a Ian Oversby 140 172
18 31/ 22/ 47 Impfinity v4g1 Planar 139 1858
19 38/ 38/ 24 Gem of the Ocean P.Kline 138 528
20 34/ 31/ 35 Flurry Anton Marsden 138 620
21 25/ 12/ 64 EvolCap XI John Wilkinson 137 368
22 41/ 45/ 14 Solomon v0.3 Ian Oversby 137 271
23 36/ 34/ 30 Tornado 3.0 Beppe 137 1460
24 34/ 42/ 25 stone test 11 Beppe 125 1
25 24/ 32/ 43 Torch t19 P.Kline 117 3
Weekly age: 107 ( 78 last week )
New warriors 8 Turnover/age rate 7%
Average age: 456 ( 403 last week, 464 the week before )
Average score: 141 ( 142 last week, 142 the week before )
The top 25 warriors are represented by 13 authors: JKW with 4,
Oversby, Bezzi, and Kline with 3, van Dam, Vittuari and Marsden with 2.
Van dam replaces Snanny boy, see it in extra extra, with his big
brother Scan Man that kees the top from his appearance; Wind up toy
and Thermite held second row positions easily while The Core Clear is
slipped down a little. Vittuari, after some testing, puts his new
version of T.N.T in a good position. La Bomba bounces up, maybe thanks
the stone test, some of which successful, made by his author, Beppe
Bezzi.
Of the over 1000 veterans Thermite is the more healthy, always in the
hilltop; Chameleon has been always seen around tenth position and
Impfinity bouncing a little from 15th to 20th. Tornado seems in
serious troubles, always near the bottom.
The competition is always fierce, we have less than ten points from
the third to the the 23rd, even if the King seems to have a good lead
over the runners up.
The hilltop is kept by different kinds of warriors, scanners,
p-spacers, bombers and replicators are having their share of glory.
Paul submitted his new version of Torch, without a little work it's difficult it will repeat the success of it's former version
______________________________________________________________________________
94 - What's New
# %W/ %L/ %T Name Author Score Age
1 47/ 37/ 16 Scan Man David van Dam 158 79
4 40/ 35/ 25 T.N.T. pro Maurizio Vittuari 146 38
6 41/ 37/ 22 Blur Anton Marsden 144 66
7 40/ 35/ 25 test Maurizio Vittuari 144 12
12 38/ 34/ 28 Yogi Bear P.Kline 142 2
16 30/ 18/ 52 test eif JKW 141 56
24 34/ 42/ 25 stone test 11 Beppe 125 1
25 24/ 32/ 43 Torch t19 P.Kline 117 3
Worth notice are Scan Man, new King of the Hill, and TNT pro
______________________________________________________________________________
94 - What's No More
# %W/ %L/ %T Name Author Score Age
26 2/ 2/ 0 gtest P.Kline 6 7
26 2/ 2/ 1 testb1<< Maurizio Vittuari 5 5
26 1/ 2/ 1 Test Anton Marsden 5 16
26 7/ 7/ 2 testb1> Maurizio Vittuari 22 12
26 1/ 2/ 0 Scanny Boy David van Dam 4 399
26 0/ 0/ 3 test P.Kline 4 35
26 2/ 2/ 0 T.N.T. pro Maurizio Vittuari 5 87
26 34/ 44/ 22 Mirage 2 Anton Marsden 123 411
______________________________________________________________________________
94 - What's Old
# %W/ %L/ %T Name Author Score Age
18 31/ 22/ 47 Impfinity v4g1 Planar 139 1858
3 41/ 35/ 25 Thermite II Robert Macrae 146 1659
23 36/ 34/ 30 Tornado 3.0 Beppe 137 1460
13 39/ 37/ 23 Chameleon M R Bremer 142 1130
8 40/ 36/ 24 Grilled Octopus v0.5 David Boeren 143 875
20 34/ 31/ 35 Flurry Anton Marsden 138 620
9 28/ 14/ 58 Hazy Shade II John K W 143 618
19 38/ 38/ 24 Gem of the Ocean P.Kline 138 528
14 42/ 43/ 15 Stepping Stone Kurt Franke 142 472
11 40/ 37/ 23 Blanket Party J E Long 142 383
21 25/ 12/ 64 EvolCap XI John Wilkinson 137 368
Two new entries in the over 300: Blanket Party and Evol cao XI, and
one loss Mirage 2
______________________________________________________________________________
HALL OF FAME
* means the warrior is still active.
Pos Name Author Age Strategy
1 Impfinity v4g1 Planar 1858 * Stone/ imp
2 Thermite II Robert Macrae 1659 * Qscan -> bomber
3 Jack in the box Beppe Bezzi 1620 P-warrior
4 Torch t18 P.Kline 1539 Bomber
5 Tornado 3.0 Beppe Bezzi 1460 * Bomber
6 Frontwards v2 Steven Morrell 1420 One shot scanner
7 Evol Cap 6.6 John Wilkinson 1299 Imp / stone
8 quiz Schitzo 1262 Scanner/ bomber
9 T.N.T. Maurizio Vittuari 1204 Bomber
10 Chameleon Myer R Bremer 1130 * P-warrior
11 Iron Gate 1.5 Wayne Sheppard 926 CMP scanner
12 Agony II Stefan Strack 912 CMP scanner
13 Barrage Anton Marsden 876 Qscan -> replicator
14 Grilled Octopus v0.5 David Boeren 875 * P-warrior
15 Blue Funk Steven Morrell 869 Stone/ imp
16 Thermite 1.0 Robert Macrae 802 Qscan -> bomber
17 Blue Funk 3 Steven Morrell 766 Stone/ imp
18 Night Train Karl Lewin 755 Replicator
19 Mirage 1.5 Anton Marsden 736 Scanner/ bomber
20 Blizzard Anton Marsden 713 Qscan -> replicator
21 HeremScimitar A.Ivner,P.Kline 666 Bomber
22 La Bomba Beppe Bezzi 650 Qscan -> replicator
23 myVamp v3.7 Paulsson 643 Vampire
24 Blue Funk 5 Steven Morrell 624 Stone/ imp
25 Flurry Anton Marsden 620 * Qscan -> pwarrior
Imfinity is now at reach of 2000, 142 challenges aren't an impossible
task. Thermite II surpasses Jack in second position. None of the
living hall of famers has been stopped.
Flurry enters the hall of fame pushing Hazy Shade of Winter off, next
scheduled is Hazy shade II at 618
______________________________________________________________________________
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 60/ 28/ 12 Violent Micro v0.4 basehead 193 65
2 52/ 35/ 13 Extreme Prejudice Scott Manley 168 42
3 47/ 27/ 26 Reluctance Andy Nevermind 167 98
4 48/ 35/ 17 coal 3.22b bjoern guenzel 161 27
5 50/ 39/ 10 frogskin 4 bjoern guenzel 161 76
6 42/ 25/ 32 So Long Hyakutake Scott Manley 159 44
7 46/ 36/ 18 mini blue x-torch bjoern guenzel 155 2
8 41/ 26/ 33 Fork v0.1-10p Christoph C. Birk 155 45
9 43/ 32/ 25 Toxin IV Edgar 154 23
10 38/ 23/ 40 Toxin Edgar 152 89
11 47/ 41/ 12 x-frog 2 bjoern guenzel 152 92
12 47/ 42/ 12 Bloodhound Andrew Fabbro 152 90
13 46/ 45/ 8 Drill 1.1 Edgar 148 1
14 44/ 43/ 13 8-Ball 2 Iain Hogg 145 17
15 38/ 31/ 32 Szyzyg v1.01 Scott Manley 145 11
16 44/ 45/ 10 Centurion (mod) Edgar 143 15
17 43/ 44/ 13 8-Ball Iain Hogg 143 21
18 43/ 47/ 10 Centurion Edgar 140 16
19 34/ 35/ 32 Szyzyg v1.0 Scott Manley 133 12
20 28/ 27/ 46 invicta John K. Lewis 129 6
21 33/ 40/ 27 test 0.01 Christoph C. Birk 125 38
22 36/ 47/ 17 Blammo Edgar 124 4
23 30/ 42/ 29 C Seagal II v 2.0 Test jShelton 118 97
24 36/ 59/ 6 SideWinder Julian 113 75
25 32/ 57/ 11 yet another test 0.1 Justin Kao 107 14
Not many challenges, but 35, also this week. Violent Micro is still the leader.
______________________________________________________________________________
The Hint
Imps
This time I'm speaking of an argument I don't know too much, all old
88 players and our archiver/imp master Planar surely know much more,
so I'll try to fly low, ready to hide if (when :-) flames will come.
Most part of what I'm saying is also reported in Steven Morell's
manual, if you don't understand something you may check here, and vice
versa :-)
Imps are apparently simple warriors, they are made only of a mov
statement that crawl relentless in the core trying to overwrite the
opponent and, sometimes, kill it. Once launched an imp spiral, let's
suppose an 8 process 3 points mov #0,2667 one, works that way.
loc. X ADG
loc. X+2667 BEH
loc. X+2667*2 CF
process A, is the executing one, copies itself in the location where
process B is going to execute, then queue itself for execution at
location A+1 i.e where process D is queued. Process B does the same,
copy to C and queue at E, and so on, spiraling through the core.
When the spiral hits an opponent it begins to execute the mov and two
thing may happen: if the enemy has less processes than the spiral it
will die, because the spiral is unable to feed it of mov instructions
at the rate it executes them, is it has more processes it's a
tie. Usually 94 warriors, al least when executing their clear, have
many process running, so the attack power of the spiral isn't great,
but the main strenght of the spiral is its thoughness.
Consider the spiral above, only two locations are subject to attack:
the tail, i.e. the lowest address process, and the process going to be
executed, if the spiral is hit in any other location, with any kind of
of bomb, it's unaffected because it copies a fresh mov instruction
just before executing it, a near perfect self repair. The spiral will
die only when its processes are reduced to less than the number of
points
Considering that the spiral is usually coupled with a process building
comrade, usually a stone, only the tail is vulnerable till the partner
is alive.
The speed at which the spiral crawl is a simple function of the number
of points and processes:
c * points / process
So the more processes, the slower it will move and the harder will be
killing it, the drawback is that it will steal more cycles to its
partner.
The tricky part of imps is starting them running, launching it. In
practice placing the wanted number of processess in the right core
locations to make it run. There are three classic methods: binary,
jmp/add and vector launch and two rather new: continual an paper
launch.
Binary launch is the faster. I don't know how to do it, but there is a
c program, makeimp by Jay Han, that does the job very well. Binary
launch has the problem of being very long, an easy prey for qscanners
if we are launching but a 16 processes spiral.
Jump add launch is the smaller and the slower. You make as many
parallel processes as you need, using spl 1 and mov -1,0 exacly the
same way as you do for a replicator, then execute a jmp add sequence
to spread them in the core:
imp mov.i #0, impsize
impboot
mov imp, imp+impdspl
spl 1
spl 1
spl 1
spl 1 ;1-1-1-1 = 15 = 16 parallel process
spl 2
jmp imp+impdspl
add.a #impsize,-1
dat 0 ;mandatory dat
You need the dat because extra processes generated have to die, the
spiral processes have to execute one after the other, recycling them
will weaken the imps
The third classic way is vector launch, nearly as fast as binary but
much smaller: it comes in two main subspecies, the classic and the
smaller one, proposed by Ting Hsu:
We always have to generate as many parallel process as we need.
imp mov.i #impsize,*0
impboot
mov imp, imp+impdspl
spl 1, #0
spl 1 ,#0
spl 1 ,#0
spl 1
;-break
vjmp djn.a @vector-1+btaway,#0
a for impproc
dat 0, imp+impdspl+impsize*(impproc-a)
rof
vector
dat 0 ;or any other thing you want, it's just to have a label
The for rof develops in
dat 0, imp+impdspl+impsize*15
dat 0, imp+impdspl+impsize*14
...
dat 0, imp+impdspl+impsize*0
There is no need to have a dat after vjmp, this line isn't to be
executed, all processes jump away.
vjmp line decrements itself and jump in succession to the addresses in
the table.
Hsu's launch is more compact, using also the a-fields of the vector.
impboot
mov imp, imp+impdspl
spl 1
spl 1
spl 1 ;8 processes till now, they double in next line
vspl spl <0 ,#vector
vjmp djn.a @vector,#0
imp mov.i #0,impsize
jmp imp+impsize*15+impdspl, imp+impsize*14 +impdspl
jmp imp+impsize*13+impdspl, imp+impsize*12+impdspl
jmp imp+impsize*11+impdspl, imp+impsize*10 +impdspl
jmp imp+impsize*9+impdspl, imp+impsize*8+impdspl
jmp imp+impsize*7+impdspl, imp+impsize*6+impdspl
jmp imp+impsize*5+impdspl, imp+impsize*4 +impdspl
jmp imp+impsize*3+impdspl, imp+impsize*2+impdspl
vector jmp imp+impsize+impdspl , imp+impdspl
(Exercise for the reader do a for rof loop for the vector table)
It's a bit more tricky, both vspl than vjmp decrements themselves and
split or jump to the table addresses.
The speed is exactly the same, Hsu's launch is smaller but more
vulnerable because vector table lines are executed so a hit with an
incendiary or a vampire fang in the table can be deadly, while a
similar hit in the other table causes but a misjump and the death of
remaining processes, at worst we lose the spiral but the partner isn't
stunned.
Continual launch has been treated very well by Planar in his corner,
look at first issues of Corewarrior, I have nothing to add.
Paper launch is a mix beetween imps and replicators; if we launch a
paper containing a simple imp launcher, something like
spl 1
mov -1,0
spl 1 ;6 processes
silk spl @0, 1400
mov }-1,>-1 ;spread new spiral
spl @0, impstep
mov }-1,>-1 ;spread new branch of spiral
spl #0 ;wait
mov #0,impstep
We create many spirals filled of processes, that are very difficult to
kill, even if not too much deadly. Those launchers are sometimes used
as safety net in pspacers, should losses exceed a stated limit.
Now what you have to do is adding the imps to your favourite stone;
how? wait for one of next issues :-)
______________________________________________________________________________
Extra extra
Scanny boy
by David van Dam
Here's "Scanny Boy". It's just a one shot scanner. When found something, the
core clear starts right at the spot where something was found.
Just after trying to write some bombers (for a brief moment at the top of the
beginners hill) I became interested in scanners. At the same time the
Wilkies-ratings came up and I was very interested why "Porch Swing" scored so
high. When I studied "Porch Swing" I saw that it went direct in to a core clear
when he found something (later when I looked at Frontwards, I saw it look
alikes, but I use less instructions).
I thought, lets put together a 0.66c Sne search-engine and a core clear. Wow
and that worked very good. Because it goes right to the core clear when found
something it's very effective against papers. Mod 5 bombers are another story,
because Scanny Boy also uses mod 5 and 4 out of 5 times it scans between al the
bombs and find the nasty bomber. Scanny Boy is just 8 instructions, so the
loses against Quick-Scanners are not so great (I think).
I tried to build in some extra attacks, like a gate in the search engine with
the Djn. A ">" in the Spl of the Core Clear, which also acts like a gate.
In the beginning I've tried to make Scanny Boy better, by using other steps,
other distances, other mods (4 & 8), usings a Djn-stream instead of a gate. But
nothing realy worked. So at the end I've given up and just left it at the hill.
It was aging very well at the top.
Some problems of Scanny Boy are:
hit by a Djn-stream and it's dead
the gates of the core clear aren't effective enough
So when Ian came at the top with his P-warrior "Wind-up Toy v1.2c" with a very
big lead, I decided to redesign Scanny Boy. I gave it an anti-bomber style,
a Djn-stream protection and made the gate more effective.
The result was Scan Man, which can compete with "Wind-up Toy v1.2c". The
version of Scan Man without boot, scores about 165.1 Wilkies and 157.7 Wilbez.
And now enjoy Scanny Boy. If there questions, just send a mail. I hope it won't
influence Scan Man to much, but what the heck. Maybe after Scan Man, Scan
Women. Every man has a weak for a women and before you know it, your dead.
Cu at the top
David van Dam (D.vanDam@is.twi.tudelft.nl)
-----------
;redcode-94
;name Scanny Boy
;author David van Dam
;date 4 april 1996
;strategy 0.66c scanner
;strategy spl/spl/dat core clear with djn-stream
;strategy scores 158,0 Wilkies & 151.8 Wilbez (2000 fights)
;assert CORESIZE == 8000
org scanner
disp equ 4
range equ 15
step equ 30
offset equ (scanner+disp-range)
scanner add.f incr , cnt
cnt sne offset , offset+range
djn.f scanner , -step+1 ;Djn used as gate
incr spl.f #-step , >-step ;>-step used as gate
cc mov.i @bombp , }cnt
djn.f cc , <cnt
bombp dat #8 , #1 ;After 2 Spl passes the
spl #7 , #-85 ; Djn-stream will overwrite
; the bombp and the @bombp
; will points to the Dat
for MAXLENGTH-CURLINE
dat 0 , 0
rof
end
____________________________________________________________________________
Questions? Concerns? Comments? Complaints? Mail them to people who care.
authors: Beppe Bezzi <bezzi@nemo.it> or Myer Bremer <bremermr@ecn.purdue.edu>
|