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 58                                                     14 April, 1997
______________________________________________________________________________
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: (Please note new Stormking's address)
http://www.koth.org/                            ;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.ncs.infi.net/~wtnewton/corewar/
Planar ftp site--ftp://ftp.inria.fr/INRIA/Projects/para/doligez/cw/pmars
Fechter ftp site--ftp://members.aol.com/ofechner/corewar

A collection of Bezzi's hints in the first issues is available at:
ftp://ftp.volftp.vol.it/pub/pc/msdos/games/solutions/bbhints.zip

Beppe Bezzi web page - http://www.aspide.it/freeweb/Bezzi
______________________________________________________________________________
Greetings.

A lot of experimental warriors were tried this week. Interest seems to be
increasing... perhaps we will see some good new warriors soon.

--Anton Marsden
______________________________________________________________________________
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

Last challenge: Fri Mar 21 06:54:21 PST 1997
 #   %W /  %L /  %T                       Name               Author Score  Age
 1  45.6/ 37.1/ 17.3             Electric Head        Anton Marsden 154.0    7
 2  39.7/ 28.3/ 31.9                      Newt          Ian Oversby 151.2    3
 3  38.2/ 28.5/ 33.2              Head or Tail    Christian Schmidt 148.0   40
 4  31.9/ 17.8/ 50.3      Return Of The Jedimp             John K W 146.1  252
 5  37.2/ 30.0/ 32.8            Nine Seven Six           M R Bremer 144.5  116
 6  34.0/ 25.6/ 40.3                    RetroQ              P.Kline 142.4   52
 7  37.9/ 35.2/ 26.8              First Strike                Nimon 140.6   13
 8  34.3/ 28.0/ 37.7                    Gigolo   Core Warrior staff 140.6  306
 9  40.9/ 42.6/ 16.5                 myVamp5.4             Paulsson 139.2    2
10  41.4/ 44.0/ 14.6                       C^2    Christian Schmidt 138.7    2
11  41.1/ 43.6/ 15.2            The Bloodhound           Ian Sutton 138.6   24
12  39.3/ 40.8/ 19.9              Solomon v0.8          Ian Oversby 137.8   98
13  29.3/ 21.4/ 49.3               Impish v0.2          Ian Oversby 137.2  291
14  30.1/ 23.2/ 46.7                 Trident^2             John K W 137.1  182
15  38.3/ 40.4/ 21.3       Damage Incorporated        Anton Marsden 136.2  293
16  38.4/ 42.4/ 19.3               The Machine        Anton Marsden 134.4  158
17  39.6/ 45.6/ 14.8                 Undecided                Nimon 133.7   12
18  33.3/ 33.5/ 33.2         Fast Fast Fast v6                Franz 133.1    0
19  37.3/ 43.3/ 19.4              Scanitator 5    Christian Schmidt 131.4   17
20  36.3/ 41.5/ 22.2                  Brainium          James Black 131.1    7
21  41.4/ 51.9/  6.8                  Obsidian                Nimon 130.8   12
22  36.2/ 42.3/ 21.5                NCC-1701-A       Philip Kendall 130.1   55
23  35.3/ 41.1/ 23.5                Tides v0.1          Ian Oversby 129.5   36
24  29.3/ 29.2/ 41.5                     test.                kafka 129.4    9
25  37.5/ 45.7/ 16.8                     Blain                Nimon 129.4   18

Monthly age: 14 this issue ( 12 last issue, 13 the issue before )
New warriors: 10  Turnover/age rate 71%
Average age: 80 ( 88 last issue, 93 the issue before )
Average score: 138 ( 141 last issue, 135 the issue before )
The top 25 warriors are represented by 14 independent authors: Oversby and
Nimon with 4;  Schmidt and Marsden with 3; JKW with 2. All others with one
warrior each.
______________________________________________________________________________
94 - What's New

 #   %W /  %L /  %T                       Name               Author Score  Age
 6  37.9/ 34.0/ 28.2              First Strike                Nimon 141.7    1
 9  43.7/ 48.8/  7.5                  Obsidian                Nimon 138.6    1
11  40.8/ 43.9/ 15.3                 Undecided                Nimon 137.8    1
23  28.3/ 26.1/ 45.6                     test.                kafka 130.4    1
 1  48.5/ 35.7/ 15.8             Electric Head        Anton Marsden 161.2    1
24  35.5/ 41.4/ 23.1                  Brainium          James Black 129.6    1
 2  38.4/ 29.8/ 31.8                      Newt          Ian Oversby 147.0    1
 6  42.8/ 43.2/ 14.0                       C^2    Christian Schmidt 142.4    1
 9  41.4/ 42.9/ 15.8                 myVamp5.4             Paulsson 139.8    1
18  33.3/ 33.5/ 33.2         Fast Fast Fast v6                Franz 133.1    0

Electric Head and Newt do well to get into the top five. There are also
several other good entries.
______________________________________________________________________________
94 - What's No More

 #   %W /  %L /  %T                       Name               Author Score  Age
26  29.3/ 36.5/ 34.2              Instant Ogre                Edgar 122.0   22
26  24.7/ 23.3/ 52.0           blue spark 0.04       bjoern guenzel 126.1   21
26  34.5/ 43.8/ 21.6         One Man Army v1.0           Ian Sutton 125.2    7
26  30.0/ 36.7/ 33.3         Fast Fast Fast v2                Franz 123.4   58
26  34.8/ 44.3/ 20.9           Ace of Spades 2    Christian Schmidt 125.3   11
26  39.2/ 50.7/ 10.1                   Twisted          James Black 127.8    4
26  28.0/ 28.5/ 43.5           unrequited love                kafka 127.4  346
26  31.6/ 45.3/ 23.1                 Yogi Bear              P.Kline 118.0    1
26  34.8/ 44.5/ 20.7                    Ranger          James Black 125.1    3
26  33.3/ 43.5/ 23.2              Stonebreaker    Christian Schmidt 123.0    3
26  39.2/ 54.0/  6.8            He Scans Alone              P.Kline 124.5    6

Unrequited love finally falls.
______________________________________________________________________________
94 - What's Old

 #   %W /  %L /  %T                       Name               Author Score  Age
 8  34.3/ 28.0/ 37.7                    Gigolo   Core Warrior staff 140.6  306
15  38.3/ 40.4/ 21.3       Damage Incorporated        Anton Marsden 136.2  293
13  29.3/ 21.4/ 49.3               Impish v0.2          Ian Oversby 137.2  291
 4  31.9/ 17.8/ 50.3      Return Of The Jedimp             John K W 146.1  252

No new entries, but these warriors are still doing reasonably well.
______________________________________________________________________________
OLD HALL OF FAME
* means the warrior is still active.

Pos    Name                  Author          Age     Strategy
 1  Thermite II            Robert Macrae     2262    Qscan -> bomber
 2  Impfinity v4g1         Planar            1993    Stone/ imp
 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     1437    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  Hazy Shade II          John Wilkinson    1102    P-warrior
13  Stepping Stone         Kurt Franke       1049    Qscan -> Vampire
14  Rosebud                Beppe Bezzi        993    Stone/ imp
15  Iron Gate 1.5          Wayne Sheppard     926    CMP scanner
16  T.N.T. pro             Maurizio Vittuari  925    Bomber
17  Agony II               Stefan Strack      912    CMP scanner
18  Barrage                Anton Marsden      876    Qscan -> replicator
19  Blue Funk              Steven Morrell     869    Stone/ imp
20  Flurry                 Anton Marsden      835    Qscan -> pwarrior
21  Thermite 1.0           Robert Macrae      802    Qscan -> bomber
22  Blue Funk 3            Steven Morrell     766    Stone/ imp
23  Night Train            Karl Lewin         755    Replicator
24  Mirage 1.5             Anton Marsden      736    Scanner/ bomber
25  Blizzard               Anton Marsden      713    Qscan -> replicator
______________________________________________________________________________
NEW HALL OF FAME
* means the warrior is still active.

Pos    Name                  Author          Age     Strategy
 1  Probe                  Anton Marsden      403    Q^2 -> Bomber
 2  Blur 2                 Anton Marsden      396    Scanner
 3  unrequited love        kafka              346    Q^2 -> Paper
 4  Gigolo                 Core Warrior staff 306 *  Q^2 -> Stone/imp
 5  Damage Incorporated    Anton Marsden      293 *  Q^2 -> Bomber
 6  Impish v0.2            Ian Oversby        291 *  Stone/imp
 7  Falcon v0.3            Ian Oversby        275    P-warrior
 8  Return Of The Jedimp   John K W           252 *  Q^2 -> Stone/imp
 9  Rosebud                Beppe              218    Stone/imp
10  Q^2 Miro               Anders Ivner       214    Q^2 -> Scanner/bomber
11  Instant Wolf 3.4       Edgar              205    P-warrior
12  Goldfinch              P.Kline            201    P-warrior
13  Simple v0.4b           Ian Oversby        197    QScan -> Stone/imp
14  ompega                 Steven Morrell     189    Stone/imp
15  Trident^2              John K W           182 *  Q^2 -> Stone/imp
16  Frogz                  Franz              172    Q^2 -> Paper
17  The Machine            Anton Marsden      158 *  Scanner
18  Memories               Beppe              152    Scanner
19  Tiberius 3.1           Franz              130    Q^2 -> Paper
20  Nine Seven Six         M R Bremer         116 *  Q^2 -> Stone/imp
21  CC Paper 3.3           Franz              107    Q^2 -> Paper
22  mrb-test               m r bremer         106    ?
23  T.N.T. pro             Maurizio Vittuari  105    Bomber
24  Jack in the box II     Beppe Bezzi        100    P-warrior

Unrequited love grabs 3rd place.
______________________________________________________________________________
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

Last challenge: Tue Apr  1 11:45:33 PST 1997
 #   %W /  %L /  %T                       Name               Author Score  Age
 1  50.1/ 38.4/ 11.4             Pentagram 2.a            J.A.Denny 161.8   40
 2  49.2/ 41.4/  9.4            Scankiller 0.1    Christian Schmidt 157.1   50
 3  45.8/ 34.7/ 19.5                  Hexagram            J.A.Denny 156.9   38
 4  39.3/ 27.4/ 33.3            Scanitator 3.0    Christian Schmidt 151.1   45
 5  41.4/ 32.0/ 26.6               Flimsy v0.6          Ian Oversby 150.7   39
 6  45.2/ 41.2/ 13.5            Flamberge 13.4        Matt Lewinski 149.2   88
 7  36.3/ 24.7/ 39.1                  Dust 7.0           Justin Kao 147.8   18
 8  44.5/ 42.0/ 13.5      Mostly Harmless v1.1           Justin Kao 147.0   69
 9  45.2/ 43.4/ 11.4   The Stainless Steel Rat    Christian Schmidt 147.0   61
10  42.0/ 37.8/ 20.2       Vivid Radiation 2.0        Matt Lewinski 146.1   87
11  39.7/ 33.5/ 26.7           Versatility 1.7   Ross Morgan-Linial 145.9   66
12  42.9/ 42.0/ 15.1             Short Sword 4            JS Pulido 143.7   20
13  36.7/ 30.5/ 32.8                    Zorm-B            Anonymous 142.9   23
14  44.8/ 46.9/  8.3             qDeath v .069         Ryan Coleman 142.6    3
15  29.2/ 17.9/ 52.9                DemonSpawn            J.A.Denny 140.5   48
16  35.9/ 32.7/ 31.5                Apocalypse        Matt Lewinski 139.1   96
17  40.8/ 44.3/ 14.9             Dwa Michaly b    Waldemar Bartolik 137.2   26
18  30.2/ 23.3/ 46.5                   Quantum    Christian Schmidt 137.1   42
19  32.6/ 29.8/ 37.6                 Heartworm                Edgar 135.3   36
20  28.1/ 31.3/ 40.5          Kohonenian Dream     Robert J. Street 124.9   12
21  31.9/ 39.5/ 28.6 Five-Finger Discount From         Ryan Coleman 124.3    2
22  29.0/ 35.2/ 35.8          Kohonenian Dream     Robert J. Street 122.8   11
23  31.9/ 41.8/ 26.3              Time Lag 1c3       Ilmari Karonen 122.1   22
24  31.5/ 46.1/ 22.4 Five-Finger Discount From         Ryan Coleman 117.0    8
25  33.8/ 52.4/ 13.8 Five-Finger Discount From         Ryan Coleman 115.1    1

Top 25 Averages:
    38.3/ 36.4/ 25.3                                                140.2   38
______________________________________________________________________________
Current Status of the Internet Pizza Server Limited Process Hill:

Hill Specs:
         coresize: 8000
   max. processes: 8
         duration: after 80,000 cycles, a tie is declared.
max. entry length: 200
 minimum distance: 200
    rounds fought: 200
  instruction set: ICWS '94 Draft

Last challenge: Sat Apr 12 21:45:03 PDT 1997
 #   %W /  %L /  %T                       Name               Author Score  Age
 1  58.8/ 30.3/ 10.9     Limb Rending Incisors           Ian Sutton 187.3   13
 2  52.5/ 35.7/ 11.9           Solomon LP v0.1          Ian Oversby 169.2   10
 3  49.6/ 34.1/ 16.3                Simplicity        Anton Marsden 165.0    3
 4  48.2/ 33.6/ 18.2                     Flips           Zul Nadzri 162.7   14
 5  43.0/ 26.6/ 30.4           Indecisive v0.1          Ian Oversby 159.5   19
 6  42.2/ 30.3/ 27.5             Paper 'LP' II       Philip Kendall 154.0   40
 7  41.7/ 29.4/ 28.9             Benchmark 1.0           Zul Nadzri 154.0   38
 8  42.2/ 31.2/ 26.6                Twin Flame          Ian Oversby 153.3   44
 9  43.0/ 33.2/ 23.8              Bolder v0.01          Ian Oversby 152.8   18
10  45.8/ 39.5/ 14.7           Romulan Warbird       Philip Kendall 152.0   23
11  39.9/ 36.6/ 23.5                red marble       bjoern guenzel 143.2   33
12  42.6/ 43.5/ 13.9             qDeath v .069         Ryan Coleman 141.7    2
13  39.7/ 38.9/ 21.4             Bag of Tricks        Anton Marsden 140.5   28
14  38.3/ 37.6/ 24.1                 Romantica           Zul Nadzri 139.1   11
15  39.8/ 42.0/ 18.2                   red eye       bjoern guenzel 137.7   34
16  37.1/ 37.2/ 25.7               Inferno 1.8       Philip Kendall 137.1   60
17  35.2/ 34.9/ 29.9                Iocane 0.0             John K W 135.6   27
18  31.5/ 28.5/ 40.1                Paper 'LP'       Philip Kendall 134.5   61
19  35.0/ 42.6/ 22.4                  oldtimer       bjoern guenzel 127.5   46
20  35.2/ 44.0/ 20.8               Dr. Gate v4                Franz 126.4   48
21  36.4/ 49.2/ 14.4 Hopefully Indestructible            Ian Sutton 123.7   32
22  31.9/ 43.0/ 25.1                rimmer 2.0                  jkw 120.7   52
23  35.9/ 52.6/ 11.5      Roots Radical v .069         Ryan Coleman 119.1    1
24  31.5/ 45.4/ 23.1                  Dr. Gate                Franz 117.7   50
25  33.8/ 52.9/ 13.3                Juggernaut        Anton Marsden 114.7   37

Top 25 Averages:
    40.4/ 38.1/ 21.5                                                142.8   29
______________________________________________________________________________
The Hint
P-Warriors by Anton Marsden

In the last issue of CW, Kendall presented various switching routines with
reasonably good response times. The disadvantage of his routines (and most
routines up until now) is that they are not very flexible. A switching
strategy that works well for one component may work poorly with another. Any
attempt to rectify this usually means using a large, slow switching routine.

To solve this I wrote a general purpose switching routine (P^2) that was
fast no matter what strategy the 'programmer' wanted to use.

P^2 is based on discrete finite acceptors (DFAs) which I learnt about in a
Computer Science course. To demonstrate the steps clearly, I will design a
switch-on-3-consecutive-losses routine containing 2 components.

1. Draw a state transition diagram showing all possible states.  Each state
should have three outward arrows for win, loss, and tie inputs. Each arrow
should identify a component to be run and point to the next state.  Note that
'components' and 'states' are not equated in this logic as they are in many
previous switchers. State numbers should start from 0.

Key:
  {n}=state n
  W=win
  L=loss
  T=tie
  c1=component 1
  c2=component 2

The following diagram is a bit messy but you should get the idea.

                +-------------------------------------------+
                |                           T,W (c1)        |
                |   +-------------------+                   |
                |   |      T,W (c1)     |                   |
                |   v                   |                   |
                +->{0}---------------->{1}---------------->{2}----->{3}
                   | ^       L (c1)               L (c1)        L (c2)
                   | |
                   +-+
                   T,W (c1)

                +-------------------------------------------+
                |                           T,W (c2)        |
                |   +-------------------+                   |
                |   |      T,W (c2)     |                   |
                |   v                   |                   |
                +->{3}---------------->{4}---------------->{5}----->{0}
                   | ^       L (c2)               L (c2)        L (c1)
                   | |
                   +-+
                   T,W (c2)

2. Pick an initial state transition, eg. {2} -> {0} using c1.

3. Put all loss transitions into a data table where entry n-1 contains the
state transition information for state n-1:

loss_table
  dat 1,c1 ; State 0 goes to state 1 on a loss using component 1.
  dat 2,c1 ; State 1 goes to state 2 on a loss using component 1.
  dat 3,c2 ; State 2 goes to state 3 on a loss using component 2.
  dat 4,c2 ; State 3 goes to state 4 on a loss using component 2.
  dat 5,c2 ; State 4 goes to state 5 on a loss using component 2.
  dat 0,c1 ; State 5 goes to state 0 on a loss using component 1.

4. Do the same for wins and ties.

win_table
  dat 0,c1 ; State 0 goes to state 0 on a win using component 1.
  dat 0,c1 ; State 1 goes to state 0 on a win using component 1.
  dat 0,c1 ; State 2 goes to state 0 on a win using component 1.
  dat 3,c2 ; State 3 goes to state 3 on a win using component 2.
  dat 3,c2 ; State 4 goes to state 3 on a win using component 2.
  dat 3,c2 ; State 5 goes to state 3 on a win using component 2.

tie_table
  dat 0,c1 ; State 0 goes to state 0 on a tie using component 1.
  dat 0,c1 ; State 1 goes to state 0 on a tie using component 1.
  dat 0,c1 ; State 2 goes to state 0 on a tie using component 1.
  dat 3,c2 ; State 3 goes to state 3 on a tie using component 2.
  dat 3,c2 ; State 4 goes to state 3 on a tie using component 2.
  dat 3,c2 ; State 5 goes to state 3 on a tie using component 2.

5. Set up the initial state.

init_state EQU (tie_table+2) ; {2} -> {0} using c1.

6. Put the tables and components into P^2. Remember to set STATES to the
correct value (6 in this case).

7. Optimise the code - this is left as an exercise for the reader.

Many thanks to Bezzi, Bremer and Kline who reviewed this article (and P^2)
and suggested improvements.
______________________________________________________________________________
Extra Extra
P^2 by Anton Marsden

P^2 is a fast table-based switcher which can manage any conceivable strategy
or combination of strategies using 6 cycles. However, the tables are
potentially large and for this reason it may not be the best switcher to use
in some cases, especially if you want to use a Q^2 scan in your P-Warrior.

How it works: the result of the last fight is loaded as well as the state used
for the last fight. From this information the next state is determined using
the tables that were constructed from the state transition diagram. Then the
component associated with the transition is executed.

;redcode-94
;name P^2
;author Anton Marsden
;assert CORESIZE==8000

PSTATE    EQU 666 ; pspace location containing current state
STATES EQU 6      ; maximum number of states (for brainwash protection)

;NOTE: state values go from 0 to STATES-1

      dat    0,init_state-state
in    dat    0,loss_table-state
      dat    0,win_table-state
      dat    0,tie_table-state

think ldp.a  #0,in              ; get input value
load  ldp.a  #PSTATE,state      ; load old state
      mod.a  #STATES,state      ; brainwash protection
      add.ba *in,state          ; select correct state table
store stp.a  *state,load        ; store new state
state jmp    @0                 ; jump to warrior code

      ; You could also delete the #PSTATE value
      ; if you wish (or the stp.a instruction).

c1 EQU stone_boot
c2 EQU paper_boot

loss_table
  dat 1,c1
  dat 2,c1
  dat 3,c2
  dat 4,c2
  dat 5,c2
  dat 0,c1

win_table
  dat 0,c1
  dat 0,c1
  dat 0,c1
  dat 3,c2
  dat 3,c2
  dat 3,c2

tie_table
  dat 0,c1
  dat 0,c1
init_state dat 0,c1
  dat 3,c2
  dat 3,c2
  dat 3,c2

END think
______________________________________________________________________________
Extra Extra
Simplicity by Anton Marsden

Simplicity is a limited process warrior based on B-scanners live in vain by
Matt Hastings (an '88 warrior). It is currently doing quite well on the LP
Hill.

;redcode-lp
;name Simplicity
;author Anton Marsden
;assert CORESIZE==8000
;kill Simplicity

step EQU 26

b2    mov    step,{b1+8*step
a     add.ab {0,}0
start jmz.f  a,@b2
b1    mov    grave,@b2
      jmn    @b1,*0
      spl    #0,0
      mov    5,}b2
grave jmp    {0,}0

FOR b2+step
      dat    0,0
ROF

bomb  spl    #1,#1

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>
or Anton Marsden <amarsden@mcs.vuw.ac.nz>
© 2002-2005 corewar.info. Logo © C. Schmidt