From bezzi@nemo.it Tue Jun 11 19:25:44 1996 Received: by couchey.inria.fr (5.57/Ultrix3.0-C) id AA15321; Tue, 11 Jun 96 19:25:44 +0200 Received: from nemont.nemo.it (nemont.nemo.it [194.184.149.2]) by nez-perce.inria.fr (8.7.1/8.7.1) with SMTP id TAA10923 for ; Tue, 11 Jun 1996 19:25:08 +0200 (MET DST) Received: from mail.nemo.it (194.184.149.102) by nemont.nemo.it (EMWAC SMTPRS 0.80) with SMTP id ; Tue, 11 Jun 1996 19:25:19 +0200 Message-Id: X-Sender: bezzi@mail.nemo.it X-Mailer: Windows Eudora Light Version 1.5.2 Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Date: Tue, 11 Jun 1996 19:20:13 +0200 To: corewar-l@stormking.com, "Myer R. Bremer" , Damien.Doligez@inria.fr (Damien Doligez), k.tonn@ic.ac.uk (Karsten Tonn), pan0178@comune.bologna.it (MV), guenzel@extern.lrz-muenchen.de From: Beppe Bezzi Subject: Core Warrior 33 Status: R .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 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, 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,2001,>3002 ;boot strategy 2: blue candle (0.75c stone + spiral) strategy2 spl stlaunch,>2001 ;start here for 8 mov.i 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, clptr djn.f -1,{clptr bomb dat #-1,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, or Myer Bremer