.xX$$x. .x$$$$$$$x. d$$$$$$$$$$$ ,$$$$$$$P' `P' , . $$$$$$P' ' .d b $$$$$P b ,$$x ,$$x ,$$x ,$$b $$. Y$$$$' `$. $$$$$$. $$$$$$ $$P~d$. d$$$b d d$$$ `$$$$ ,$$ $$$$$$$b $$$P `$ $$$b.$$b `Y$$$d$d$$$' . . a . a a .aa . a `$$$ ,$$$,$$' `$$$ $$$' ' $$P$XX$' `$$$$$$$$$ .dP' `$'$ `$'$ , $''$ `$'$ `Y$b ,d$$$P `$b,d$P' `$$. `$$. , `$$P $$$' Y $. $ $ $ Y..P $ `$$$$$$$' $$$P' `$$b `$$$P `P `$' `Y'k. $. $. $. $$' $. 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 or Myer Bremer or Anton Marsden