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 > The '94 Warrior > Issue #7

May 4, 1994                                                           Issue #7
______________________________________________________________________________

This newletter covers the current status of the ICWS '94 Draft hills,
and also attempts to keep up with the latest ideas in how the new standard
will affect corewars in general.  I hope you enjoy it!

If you are unfamiliar with the '94 draft standard, you can learn more about
it by reading the FAQ for this newsgroup.  In addition, the program pMARS
includes a highly recommended tutorial on the new standard.  Feel free
to send me e-mail if you have any difficulty finding either of them, if you
need to have a corewar item mailed to you, or if you have any other questions.

The FAQ is available through anonymous FTP to rtfm.mit.edu, as
/pub/usenet/news.answers/games/corewar-faq.Z
______________________________________________________________________________

CHANGES and CORRECTIONS:

Excitment is thick in the air after the first two rounds of Stefan Strack's
corewar tournament.  It's still too early to tell what will happen, and if the
fierce competition on the '94 hills is any indication of what's to come, it
will not get any easier to predict later on.  (Still, I know who I want to
win!)  Good luck to all the remaining participants!  (... and condolences
to Michael Constant and Nandor Sieben, the first two participants to be
eliminated.)

If you are working on warriors for a large size core on an IBM computer with
Super-VGA graphics, you will definitely want to grab the latest version of
pMARS off of "soda.berkeley.edu".  It is now possible to watch your large
warriors in action!  Thanks to the pMARS team for a great effort!

Other helps now available include a faster verion of Optima (by Michael
Constant) and a step-size help file for 8000 size cores by Paul Kline that is
readable.  Both are tools no redcode developer should be without.
______________________________________________________________________________

The ICWS '94 Draft Hill:

       Core size:	8000 instrucitons
   Max processes:	8000 per program
        Duration:	After 80,000 cycles, a tie is declared.
Max entry length:	100 instructions

The current ICWS '94 Draft hill on "Pizza":
 #  %W/ %L/ %T                      Name               Author   Score     Age
 1  44/ 36/ 20              Pyramid v1.0     Michael Constant     151       1
 2  38/ 25/ 38 Der Zweite Blitzkrieg - 9      Mike Nonemacher     151     112
 3  39/ 28/ 33                     Torch              P.Kline     150       2
 4  43/ 36/ 21               Sauron v5.0     Michael Constant     150      12
 5  32/ 16/ 52                 Blue Funk       Steven Morrell     148     129
 6  32/ 17/ 51                 Cannonade              P.Kline     147       4
 7  44/ 43/ 14             Iron Gate 1.5       Wayne Sheppard     145     106
 8  33/ 23/ 44                   Lucky 3        Stefan Strack     144     122
 9  32/ 21/ 47         Twimpede+/Small-X              Jay Han     143       5
10  40/ 38/ 21              Request v2.0     Brant D. Thomsen     143     160
11  32/ 22/ 46                     NC 94       Wayne Sheppard     142     142
12  43/ 48/  8                  Rave 4.1        Stefan Strack     138      94
13  41/ 45/ 14              Dragon Spear             c w blue     137     162
14  29/ 21/ 50                        ^C       Steven Morrell     137      21
15  36/ 36/ 28               Christopher       Steven Morrell     135      50
16  30/ 25/ 45                    Splash              Jay Han     134     100
17  29/ 25/ 46         Imperfection v3.4     Michael Constant     133      25
18  35/ 37/ 28          Yop La Boum v2.1         P.E.M & E.C.     133      92
19  38/ 44/ 18                      SJ-4            J.Layland     133      36
20  40/ 48/ 12            Iron Gate 1.2b       Wayne Sheppard     131       3

21   2/ 98/  0                   Looking     Brant D. Thomsen       7       0

Since the last issue of the Warrior, exactly 99 programs have made it onto
the '94 standard hill.  "Der Zweite Blitzkrieg - 9", "Pyramid v1.0",
"Sauron v5.0", and "Torch" are all been fighting for the top slot on the
hill, and all of them deserve it.  It looks like the "pizza" hill is well
represented by every type of program but "paper".  (Anders Ivner's "Killer
Instinct" was in third place on the hill last month.  However, it is still
doing well on the "stormking" hill.)  Perhaps "paper" is the one warrior
type that doesn't benefit from the newer standard.  (Opinions, anyone?)

I am also including the results of the "stormking" hills in this, and future,
issues of _The_'94_Warrior_.  I had planned to cover the "pizza" hill
exclusively, but later decided that the "stormking" hills have enough traffic
to warrant their coverage as well.  In addition, they also tend to have a much
different "flavor" resulting from the quite different programs on the hill.
If you have a program that can't quite get onto a hill on one server, I'd
recommend trying it on the other one -- it may do quite well!

The current ICWS '94 Draft hill on "Stormking":
 #  %W/ %L/ %T                      Name               Author   Score     Age
 1  45/ 29/ 26               Sauron v3.6     Michael Constant     160       1
 2  41/ 27/ 32           Killer instinct         Anders Ivner     155      24
 3  36/ 21/ 43         Twimpede+/8000-d1              Jay Han     150      14
 4  44/ 38/ 17               Ntttgtstitd         Simon Hovell     150      25
 5  43/ 38/ 19              Request v2.0     Brant D. Thomsen     148      17
 6  34/ 21/ 44                   Lucky 3        Stefan Strack     147      12
 7  35/ 23/ 42                     NC II       Wayne Sheppard     147      79
 8  35/ 25/ 40               Sphinx v5.1         W. Mintardjo     145      82
 9  43/ 41/ 17            Sylvester v1.0     Brant D. Thomsen     144      61
10  29/ 19/ 53                      ttti        nandor sieben     139      35
11  32/ 26/ 42        JustTakingALookSee            J.Layland     138      78
12  31/ 24/ 45                     Snake       Wayne Sheppard     138      34
13  43/ 47/ 10                  Rave 4.1        Stefan Strack     138       7
14  39/ 40/ 21                      tiny            J.Layland     138      59
15  29/ 20/ 51                    ttti94        nandor sieben     137      30
16  39/ 42/ 19       Beholder's Eye v1.7         W. Mintardjo     137      91
17  38/ 42/ 19               Christopher       Steven Morrell     135      23
18  39/ 43/ 18                      SJ-4            J.Layland     134      28
19  37/ 43/ 20            Fast Food v2.1     Brant D. Thomsen     131      37
20  35/ 40/ 26                    pepper              P.Kline     129       6

The "stormking" hill appears to be even more diverse than the "pizza" hill.
This hill will be a fun one to watch as it developes.  Many of the programs
on it are '88 standard programs, and several other programs have been
converted from the '88 to the '94 standard.  The "pizza" hill, on the other
hand, has many warriors that are highly '94 dependent.
______________________________________________________________________________

The ICWS '94 Draft Experimental Hill:

       Core size:	55,440 instructions
   Max processes:	10,000 per program
        Duration:	After 500,000 cycles, a tie is declared.
Max entry length:	200 instructions

The current ICWS '94 Experimental (Big) hill on "Pizza":
 #  %W/ %L/ %T                      Name               Author   Score     Age
 1  51/ 32/ 18              Demand-55440 M. Constant & B. Tho     170       9
 2  39/ 21/ 40             Variation G-1              Jay Han     157      44
 3  44/ 35/ 20             Request-55440     Brant D. Thomsen     153      80
 4  35/ 22/ 43                  Splash 1              Jay Han     149      45
 5  45/ 43/ 12                    Squint      Mike Nonemacher     148      18
 6  37/ 27/ 36                  Lucky 13        Stefan Strack     148      86
 7  41/ 37/ 22                Vanity IIx        Stefan Strack     146      35
 8  33/ 24/ 44                   BigImps        James Layland     142      15
 9  43/ 45/ 12                     Virus              Jay Han     141       3
10  43/ 46/ 11                 Rave B4.1        Stefan Strack     141      41
11  41/ 42/ 17                    Raiden Richard van der Brug     139      14
12  39/ 40/ 21                White Fang       Steven Morrell     139       5
13  32/ 25/ 42 Der Zweite Blitzkrieg - 9      Mike Nonemacher     139      42
14  28/ 18/ 54         Imperfection v2.4     Michael Constant     138      51
15  43/ 49/  8                Scanalyzer              Jay Han     138       4
16  38/ 38/ 24               Sauron v3.4     Michael Constant     137      23
17  38/ 38/ 24                      Lump            J.Layland     137      25
18  34/ 32/ 34                     Sissy              Jay Han     137      40
19  37/ 45/ 18                  testing2            J.Layland     129       1
20   5/  0/  0                   Big J-1              Jay Han      14       2

Although many new programs have made it onto the hill, the hill hasn't changed
all that much.  Scanners, imp-spirals, and vampires all seem to be well
represented.  Perhaps the largest change is the addition of "Demand-55440", 
which currently has a stronghold on the top position.  "Demand" appears to
be good proof of something I've heard repeated many times in the newsgroup by
prominent redcode authors:  the best warriors tend to be those that have a
combination of strategies or types.

The current ICWS '94 Experimental (Big) hill on "Stormking":
 #  %W/ %L/ %T                      Name               Author   Score     Age
 1  53/ 31/ 15                    Raiden Richard van der Brug     175       1
 2  44/ 21/ 35                  Lucky 13        Stefan Strack     168      18
 3  46/ 30/ 25             Request-55440     Brant D. Thomsen     161      52
 4  39/ 19/ 42              Bakers Dozen       Wayne Sheppard     159      11
 5  43/ 28/ 29               Sauron v2.4     Michael Constant     158       3
 6  41/ 28/ 30             Variation D-1              Jay Han     155      13
 7  45/ 36/ 20                Vanity IIx        Stefan Strack     154       6
 8  33/ 17/ 50         Imperfection v2.3     Michael Constant     149      46
 9  44/ 46/ 10                 Rave B4.1        Stefan Strack     141       7
10  30/ 23/ 47                   BigImps        James Layland     138     112
11  41/ 45/ 14               Dagger v7.0     Michael Constant     136      12
12  41/ 46/ 13                  bigproba        nandor sieben     136      10
13  30/ 24/ 47                    BigImp        Alex MacAulay     135      93
14  34/ 34/ 32               Industrious        Stefan Strack     134       2
15  41/ 47/ 12                 The Count              Jay Han     134      42
16  34/ 38/ 27                      Test        Stefan Strack     131       4
17  34/ 38/ 27                 Open Arms        Stefan Strack     130       5
18  31/ 34/ 35                Veeble Jr.         T. H. Davies     129      14
19  35/ 45/ 19               IceCube 1.4 Richard van der Brug     125       8
20  37/ 51/ 11              Kill Imps!!!       Steven Morrell     123      39
______________________________________________________________________________

HINTS and HELPS:

I wanted to come up with some good use for the MUL and DIV instructions for
this issue's hint.  There has been a large amount of '94 code posted recently,
but I don't recall any of it that used either of these instructions.

The two things that I was able to imagine that MUL and DIV would be
useful for is a binary bomber (where the programs bombs over successively
smaller intervals), and programs that must be able to run in many different
possible coresizes.  So, along this line, I came up with a program which will
launch an imp-spiral with the minimum number of points for any size core
(given a know size limit).

At first, I tried to do this without using any constants, but the "mod"
mathematical limitations became too much.  Recall that for an "P" point
imp-spiral to be possible in a size "C" core, then for any step-size "S" where
S * P = N * C + 1 (and N is any possible integer in the range 1 <= N < P),
then we have a stepsize to create an imp-spiral with that many points.  The
problem is, of course, that N * C + 1 becomes 1 in the core no matter what
integer value N is assigned.  This can make finding the possible imp-steps for
large values of N quite difficult to do during run-time.

So, instead, I took a compromise.  I take the CORESIZE value supplied by pMARS,
and use it to determine all the possible imp-spiral step sizes I want to try.
Then I use a simple loop to determine whether or not each possible imp-spiral
step size will work.  To do this, I take the value I want to test and
multiply it by the number of points I am considering for the imp-spiral.  If
the result is 1 larger than the coresize, I have a successful number.  The
corewars interpreter automatically takes care of the modular arithmetic,
making the loop surprisingly short and simple.

You may want to pay special attention to the main loop in the code, as I do 
some things in it that are heavily '94 dependent.  Each of the modifiers in
this loop had to be chosen carefully for the program to work correctly.

The DAT statements on the end of the program will find an imp-spiral for
any coresize that is not divisible by 30030.  (Notice that 30030 is the
product of all the primes no greater than 13.)  I have also added the first
two 17 point imp-spiral sizes needed to handle 30030 and 60060.  If you add
all of the DAT statements for the 17-point imp-spiral steps, then you will be
able to handle any coresize that is not divisible by 510510.
(B.T.W.:  510510 = 17 * 30030)  This should be adequate for most
programmers. ;-)

Since a randomly sized core will be divisible by 2 half the time, the average
number of cycles needed to find the wanted imp-spiral step size should be
small.  Most of your cycles will be taken up in generating the processes for
the imp-spiral and launching it.  (In reality, you would probably want less
processes than I have here.)  Perhaps some of you corewar experts out there
could even figure out a way to have the number of processes sent to the imp-
spiral vary dymanically based on the number of points it will have.


;redcode-94
;name Imp-Spiral Finder
;author Brant Thomsen
;strategy Launch the smallest possible imp-spiral for any coresize < 90090
;macro

boot	equ	150


imp	mov.I	#0, 0		; Will copy value here later.

find	mov.B	<d2, #0		; Get the value to test.
	mul.AB	@d2, find	; See what the result would be.
	djn.B	find, find	; If result != 1, then try next value.

launch	mov.B	@d2, imp	; Put the value in the imp.
	mov.I	imp, imp+boot	; Move the initial imp-spiral instruction.

	; Begin to generate processes.

	spl.F	2
for 5
	spl.F	1
rof

	; Should have 48 processes here.

	spl.F	2		; Launch an imp-spiral using JMP/ADD method.
	jmp.F	@0, imp+boot	; Nice since don't need step size in advance.
	add.F	imp, -1


	; These are the test values to use.
	; Notice that only prime numbers are used.

	dat.F	17, (d17 * CORESIZE + 1) / 17	; Needed for size 30030
	dat.F	17, (d17 * CORESIZE + 1) / 17	; Needed for size 60060
d17
for 12
	dat.F	13, (d13 * CORESIZE + 1) / 13
rof
d13
for 10
	dat.F	11, (d11 * CORESIZE + 1) / 11
rof
d11
for 6
	dat.F	7, (d7 * CORESIZE + 1) / 7
rof
d7
for 4
	dat.F	5, (d5 * CORESIZE + 1) / 5
rof
d5
for 2
	dat.F	3, (d3 * CORESIZE + 1) / 3
rof
d3	dat.F	2, (d2 * CORESIZE + 1) / 2

d2	end	find		; This instruction is a DAT.F 0, 0
				; It is used at the pointer to the
				;  current test value.
______________________________________________________________________________

Looking to the Future:

It looks as if the '94 standard is becoming widely accepted.  There are more
programs being sent to the '94 draft hill than to the '88 standard hill on
"pizza", and the disproportion appears to be growing.  I have a feeling
that it won't be long before the '94 draft hill will be the _standard_ hill.

If you have any comments or questions about the '94 hills or the '94 draft
standard that you think might be of general interest, please let me know.

Good luck, and happy computing!
______________________________________________________________________________

Brant D. Thomsen, Editor	   Snail mail:	1197 East 6290 South
(bdthomse@peruvian.cs.utah.edu)			Salt Lake City, UT  84121
University of Utah				U.S.A.
-- 
Brant D. Thomsen                  Man will occasionally stumble over the truth,
(bdthomse@peruvian.cs.utah.edu)   but most times he will pick himself up
University of Utah                and carry on.             - Winston Churchill
2002-2005 corewar.info. Logo C. Schmidt