.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 69 20 august, 1998 _______________________________________________________________________________ Core Warrior is a 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 from: ftp://rtfm.mit.edu/pub/usenet/news.answers/games/corewar-faq.Z http://www.koth.org/corewar-faq.html FTP site is: ftp://ftp.csua.berkeley.edu/pub/corewar Mirrored at: ftp://ftp.inria.fr/INRIA/Projects/para/doligez/cw/mirror and: ftp://www.koth.org/corewar pMARS itself is also available from: Stormking web pages--http://www.koth.org/pmars.html Terry's web page--http://www.ncs.infi.net/~wtnewton/corewar/ Fechter ftp site--ftp://members.aol.com/ofechner/corewar Web pages are at: 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! 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 _______________________________________________________________________________ Welcome back. You can find in this issue three hints written by John Metcalf and Ian Oversby. So enjoy and happy programming. -- Christian Schmidt _______________________________________________________________________________ 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 44.2/ 35.6/ 20.3 Recycled Bits David Moore 152.7 7 2 35.7/ 25.5/ 38.8 Vain Ian Oversby 145.9 93 3 36.4/ 28.2/ 35.4 Vigor Ken Espiritu 144.6 81 4 39.4/ 34.5/ 26.1 Defender Ian Oversby 144.3 1 5 36.4/ 28.7/ 35.0 Fixed Ken Espiritu 144.1 77 6 35.3/ 26.6/ 38.1 Shadow Christian Schmidt 144.0 0 7 33.5/ 23.5/ 43.0 Newt Ian Oversby 143.4 171 8 27.8/ 14.0/ 58.2 Fugitive David Moore 141.5 47 9 33.5/ 25.5/ 41.0 Tuesday Afternoon John K W 141.5 21 10 40.4/ 40.1/ 19.6 Diamonds and Rust v2 Christian Schmidt 140.7 12 11 36.9/ 33.6/ 29.5 Shape Christian Schmidt 140.2 18 12 31.9/ 25.1/ 43.0 Ultraviolet-B Ken Espiritu 138.6 103 13 27.7/ 16.9/ 55.4 Return Of Return Of The J John K W 138.6 43 14 35.5/ 32.4/ 32.1 Fire and Ice David Moore 138.6 66 15 33.4/ 29.1/ 37.5 Alien Christian Schmidt 137.6 26 16 36.7/ 36.2/ 27.1 Digitalis 4 Christian Schmidt 137.3 65 17 37.2/ 37.2/ 25.5 The Body Guard Ian Oversby 137.3 20 18 39.0/ 42.5/ 18.5 Blurstone M. J. Pihlaja 135.6 17 19 33.0/ 31.0/ 36.0 Nine Seven Six M R bremer 135.0 2 20 38.4/ 42.3/ 19.3 Electric Head 2 Anton Marsden 134.4 21 21 30.0/ 26.1/ 43.9 Gigolo Core Warrior staff 133.9 3 22 34.9/ 36.5/ 28.6 Tornado 4 Beppe Bezzi 133.3 4 23 36.1/ 41.7/ 22.1 Eraser Ken Espiritu 130.6 18 24 32.6/ 34.9/ 32.5 Falcon v0.5 Ian Oversby 130.3 0 25 31.7/ 35.7/ 32.6 C I A Anders Ivner 127.6 7 Age since last issue: 13 ( 7 last issue, 34 the issue before ) New warriors: 9 Turnover/age rate 69% Average age: 36 ( 34 last issue, 32 the issue before ) Average score: 138 ( 134 last issue, 133 the issue before ) The top 25 warriors are represented by just 9 independent authors: Schmidt and Oversby with 5, Espiritu with 4, Moore with 3, Wilkinson with 2, and the rest with one each. David Moore's Recycled Bits dominates with a big gap the hill. _______________________________________________________________________________ 94 - What's New # %W / %L / %T Name Author Score Age 2 38.5/ 35.9/ 25.6 Defender Ian Oversby 141.1 0 21 29.4/ 28.6/ 42.0 Faces 0.1 Csaba Biro 130.1 1 1 41.7/ 37.3/ 21.0 Diamonds and Rust v2 Christian Schmidt 146.0 0 3 41.9/ 43.9/ 14.3 Red Carpet David Moore 139.9 1 1 45.6/ 34.5/ 19.8 Recycled Bits David Moore 156.7 0 18 32.8/ 35.8/ 31.4 C I A Anders Ivner 129.8 0 23 30.6/ 36.3/ 33.1 Falcon v0.5 Ian Oversby 124.9 0 4 33.4/ 27.8/ 38.8 Shadow Christian Schmidt 138.9 0 ?? ? / ? / ? Nine Seven Six M R bremer ? 1 ?? ? / ? / ? Gigolo Core Warrior staff ? 1 ?? ? / ? / ? Tornado 4 Beppe Bezzi ? 1 Diamonds and Rust v2 spots the first place until Moore strikes back with his new version of Recycled Bits. _______________________________________________________________________________ 94 - What's No More # %W / %L / %T Name Author Score Age 26 29.4/ 33.3/ 37.3 obvious to those who know Robert Macrae 125.4 117 26 1.9/ 2.0/ 0.1 Red Carpet David Moore 5.8 3 26 32.5/ 41.9/ 25.6 He Scans a Little Crooked P.Kline 123.0 7 26 1.2/ 1.6/ 1.2 Shadow Christian Schmidt 4.8 17 The only significant loss here is Macrae's obviouse to those... _______________________________________________________________________________ 94 - What's Old # %W / %L / %T Name Author Score Age 7 33.5/ 23.5/ 43.0 Newt Ian Oversby 143.4 171 12 31.9/ 25.1/ 43.0 Ultraviolet-B Ken Espiritu 138.6 103 2 35.7/ 25.5/ 38.8 Vain Ian Oversby 145.9 93 Newt keeps on going followed by Ultraviolet-B and Ian's next stone/imp Vain. _______________________________________________________________________________ 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 193 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 Damage Incorporated Anton Marsden 373 Q^2 -> Bomber 4 Return Of The Jedimp John K W 357 Q^2 -> Stone/imp 5 unrequited love kafka 346 Q^2 -> Paper 6 Impish v0.2 Ian Oversby 345 Stone/imp 7 Gigolo Core Warrior staff 332 Q^2 -> Stone/imp 8 Falcon v0.3 Ian Oversby 275 P-warrior 9 Nine Seven Six M R Bremer 232 Q^2 -> Stone/imp 10 Rosebud Beppe 218 Stone/imp 11 Q^2 Miro Anders Ivner 214 Q^2 -> Scanner/bomber 12 Instant Wolf 3.4 Edgar 205 P-warrior 13 Goldfinch P.Kline 201 P-warrior 14 Simple v0.4b Ian Oversby 197 QScan -> Stone/imp 15 Trident^2 John K W 195 Q^2 -> Stone/imp 16 ompega Steven Morrell 189 Stone/imp 17 Frogz Franz 172 Q^2 -> Paper 18 Newt Ian Oversby 171 * Q^2 -> Stone/imp 19 The Machine Anton Marsden 164 Scanner 20 Memories Beppe 152 Scanner 21 Head or Tail Christian Schmidt 142 Q^2 -> Paper 22 Electric Head Anton Marsden 140 P-warrior 23 Tiberius 3.1 Franz 130 Q^2 -> Paper 24 obvious to those who k Robert Macrae 117 Q^2 -> Paper 25 Solomon v0.8 Ian Oversby 116 Stone and scanner Obviouse stops at 24th, while Newt climbs another place to 18th. _______________________________________________________________________________ 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: Mon Aug 17 15:15:29 PDT 1998 # %W / %L / %T Name Author Score Age 1 60.3/ 26.9/ 12.9 Hostile Takeover Ryan Coleman 193.7 25 2 49.0/ 31.9/ 19.2 Cut 'n Paste Mark Howard 166.0 19 3 48.1/ 39.6/ 12.3 Have Pity John Metcalf 156.6 4 4 46.8/ 39.2/ 14.0 OXY-10 Mark Howard 154.4 17 5 45.9/ 39.8/ 14.2 Snowman v4.2 John Metcalf 152.1 3 6 42.4/ 33.5/ 24.1 Jam Major Zick 3 Ryan Coleman 151.2 31 7 44.7/ 39.1/ 16.2 Look or Drop?? Ryan Coleman 150.3 27 8 37.6/ 30.5/ 32.0 StiZ v0.1 Stajp 144.6 38 9 32.4/ 21.6/ 46.0 SpiImp Sergio Camarena 143.3 54 10 32.4/ 21.6/ 46.0 SpiImp Sergio Camarena 143.2 55 11 36.4/ 30.5/ 33.1 Stranger John Metcalf 142.2 9 12 33.7/ 26.7/ 39.6 Weasel WFB 140.7 18 13 40.8/ 41.8/ 17.5 stargate derivative 1 P._V._K., Beppe Bezz 139.7 21 14 33.2/ 27.0/ 39.8 StiY v0.1 Stajp 139.3 39 15 38.1/ 37.2/ 24.7 Arsonic B P._V._K. 139.1 33 16 32.3/ 25.7/ 42.0 Multiply or Drop?? Ryan Coleman 138.8 32 17 31.8/ 25.4/ 42.8 More Snotty CSnots WFB 138.2 35 18 39.5/ 40.9/ 19.6 Silly Evil Quack Ryan Coleman 138.0 30 19 27.2/ 18.1/ 54.7 Unknown Quantity John Metcalf 136.4 2 20 37.0/ 38.5/ 24.5 Big Guy John Lewis 135.4 64 21 39.7/ 44.0/ 16.3 Neverland John Metcalf 135.4 5 22 30.7/ 26.7/ 42.6 More Snotty Snots WFB 134.7 36 23 35.3/ 42.9/ 21.9 One Step Beyond John Metcalf 127.6 79 24 5.6/ 79.5/ 14.8 Whatisit? John Metcalf 31.7 1 25 7.7/ 0.2/ 0.1 Multipack John Metcalf 23.3 11 Ryan dominates with a very, very big gap the Beginner's Hill. Mmmmhhhh, he gets 100% wins against his own warriors. Mmmhhh, looks like hostile takeover?! _______________________________________________________________________________ The Hint - Code snippets by John Metcalf For warriors which contain a multi-process paper, or a vector launched imp, it is neccessary to create a number of processes running in parallel. The usual method of achieving this is to use a combination of spl 1 and mov -1,0 instructions. So says Beppe Bezzi in Corewarrior #1: : The simpler way to generate an exact number of parallel : processes is converting the number required in binary 3 -> 11, : subtract one -> 10, use a spl 1 for every one and a mov -1,0 : for every zero. E.g. 5 decimal = 101 binary, take away one = 100 binary. This becomes the following code, spl 1 ; mov -1,0 ; Generate 5 processes mov -1,0 ; However, by using these long-overlooked snippets of code I have found, it is possible to do this slightly faster, and perhaps even gain an extra b-field or two into the bargain, which can be used for storing data, or decrementing locations in core. To date, I have managed to find snippets which product 3,5,7 and 9 processes. If required, it is possible to add a number of spl 1,-step,step+1 add diamond,rough djn.f rough,-1 s2 spl @0,<2620 ;original is 2620 mov }-1,>-1 s3 spl @0,{1870 ;original value is 1870 mov }-1,>-1 mov snot,<88 ;88 s4 mov {-3,<1 spl @0,}-639 ;-639 mov 2,<-4 jmp -1,<-13 snot dat <2667,<2667*2 end start This is a switch on loss p-spacer combining a paper and a stone. I can see a few minor modifications that may improve it a little. Firstly, I boot the stone as otherwise we are easily found and destroyed by one-shot scanners. I changed the first spl line to spl #0, #0 for invisibility to f-scans. I notice the number of processes for the paper does not match the number of lines. Maybe removing the final launcher would not matter too much either. At the same time I add another mov line to the first launcher and use the correct number of processes for the number of lines in the paper. The result is: ;redcode-b test ;name Weasel ;author WFB ;strategy P-spacer...combines Diamond in the Rough and ;strategy More Snotty CSnots. ;assert CORESIZE==8000 _RES equ #0 _STR equ #1 ;Not that obviously step equ 3044 start res ldp.ab _RES, #0 str ldp.a _STR, str1 ;load strategy in use sne.ab #0, res ;check result lost add.a #1, str1 ;lost change mod.a #2, str1 ;secure result win stp.ab str1, _STR str1 jmp @0, sboot dat 0, csnots for 40 dat }-2667,<2667 rof sdist equ 2000 sboot mov.i {loc, 200 dstart spl #0, #0 diamond spl #-step,-step,step+1 add diamond,rough djn.f rough,-1 mov }-2,>-2 s2 spl @0,<2620 ;original is 2620 mov }-1,>-1 s3 spl @0,{1870 ;original value is 1870 mov }-1,>-1 mov snot,<88 ;88 mov 2,<-4 jmp -1,<-13 snot dat <2667,<2667*2 end start 15 32.4/ 32.9/ 34.7 Weasel WFB 131.9 1 ... 19 29.0/ 30.3/ 40.7 Weasel WFB 127.7 12 This scores about 4 points better than the original. Time for some analysis. The score against the hill is as follows: Hostile Takeover : 38/34/28 P-Spacer OXY-10 : 32/41/27 Core-clear Multipack : 53/35/12 Scanner/something Cut'n'Paste : 24/44/32 Scanner (Oneshot?) Look or Drop : 63/25/12 Scanner/Stone Jam Major Zick 3 : 33/48/19 Scanner Stranger : 36/29/35 Incendiary Bomber Stranger in town : 44/20/36 ??? StiZ v0.1 : 14/54/32 Paper/Scissors SpiImp : 22/06/72 Something with imps ? SpiImp : 22/06/72 Something with imps ? Arsonic B : 45/37/18 Bomber ? Multiply or Drop : 02/24/74 Paper/Stone Stargate... : 35/41/24 Core-clear Incisor+ : 24/60/16 One-shot StiY v0.1 : 03/17/80 Paper/Scissors Weasel : 18/25/57 Paper/Stone Rusty : 30/51/19 Scanner More Snotty C... : 14/32/54 Paper More Snotty Snots : 30/29/41 Paper One Step Beyond : 55/30/15 Scanner Silly Evil Quack : 59/35/06 Scanner Big Guy : 14/29/57 ??? Scarecrow : 64/24/12 Scanner Sword in the... : 36/46/18 ??? I can see a definite weakness against one-shot scanners and core-clears. We don't score too well against papers either as we have no stunning power. I think we will try to counter the first problem without modifying the warrior too much away from the original idea. To kill scanners, we should run the stone more often but then we are vulnerable to papers. How about adding an imp to the stone. As it has a double spl we aren't slowed too much and now we have resistance to papers and other stones. In addition, maybe the other scanners do not have much imp resistance and we can improve our score against them. I took the imp out of Juliet Storm and tacked it on the end. I also changed the decoy to dat 1,1 to slow djn streams and moved our own djn stream a little further back to decoy the enemy one-shots better. I run the imp/stone twice as often as the paper although subsequent tests showed this was not as much improvement as I expected. The code: ;redcode-b test ;name Weasel ;author WFB ;strategy P-spacer...combines Diamond in the Rough and More Snotty ;strategy CSnots. ;strategy More testing (Ian) ;assert CORESIZE==8000 _RES equ #0 _STR equ #121 ;Not that obviously step equ 3044 start res ldp.ab _RES, #0 str ldp.a _STR, str1 ;load strategy in use sne.ab #0, res ;check result lost add.a #1, str1 ;lost change mod.a #2, str1 ;secure result win stp.ab str1, _STR str1 jmp @0, sboot dat 0, sboot dat 0, csnots for 17 dat.f #1, @1 dat.f #1, *1 dat.f #1, #1 rof dat.f #1, @1 sdist equ 4620 sboot mov.i {loc, 200 dstart spl #0, #0 diamond spl #-step,-step,step+1 add diamond,rough djn.f rough,-1 mov }-2,>-2 s2 spl @0,<2620 ;original is 2620 mov }-1,>-1 s3 spl @0,{1870 ;orginal value is 1870 mov }-1,>-1 mov snot,<88 ;88 mov 2,<-4 jmp -1,<-13 snot dat <2667,<2667*2 imp_sz equ 2667 impboot spl 1 ,<-450 spl 1 ,<-458 spl <0 ,#vector+1 djn.a @vector,#0 imp mov.i #imp_sz, *0 jmp imp+imp_sz*7,imp+imp_sz*6 jmp imp+imp_sz*5,imp+imp_sz*4 jmp imp+imp_sz*3,imp+imp_sz*2 vector jmp imp+imp_sz ,imp end start The result: 2 37.5/ 21.7/ 40.8 Weasel WFB 153.3 1 ... 19 29.0/ 30.3/ 40.7 Weasel WFB 127.7 12 Not bad! We lose very badly against Have Pity and the score is worse than the original against Multipack. Fixing these problems is left as an exercise. _______________________________________________________________________________ The Hint - Longevity, Imp/Stones and Newt by Ian Oversby In Core War, the true value of a fighter is measured by its age. Beppe Bezzi, a veteran redcoder who should know a few things about long-lasting warriors, once pointed out that longevity comes from scoring points not only against the current hill but also the hill of the future. As we do not know how the hill of the future is going to look, how can we do this. The answer is simple - score well against everything that is viable on the hill. So, how is it possible to future-proof your new program? I believe we must look at the problem in the correct light. If we take the traditional analogy of warriors to stone/paper/scissors then we condemn our warrior to death as the hill balance changes. If we wrote a scanner then when many stones enter the hill we will surely die. However, this analogy holds very loosely. For example, it is possible to write a stone that will kill paper or paper that will kill scissors. That attitude that we _can_ beat a warrior type that would usually beat us is very important. It is interesting to note that Vigor, allegedly a paper, suffers its worst defeat at the hands of a stone - Newt. I will use Newt to illustrate the points I wish to discuss. Firstly we will see how the warrior operates and then we will see how he performs against various enemies. The stone itself bombs and decrements in a mod-5 pattern with the decrements offset from the bombs by 2. This gives as good a pattern as I could wish for. When the bombing run is finished the core should look like this: *.X..*.X..*.X..* where * is decrement, X is bomb and . is unbombed. The stone at this point will look like this: spl.b #0, <-step+1 stone spl.b #step, <-step mov.i {0, 2 add.f stone, -1 hit djn.f -2, gate djn.f -1, >gate The mov line executes, decrementing itself and moving the spl at stone over the hit line. This moves the stone into the core-clear phase. The stone is quite big and slow at seven lines and 0.33c. However, a correctly placed bomb is usually fatal to scanner. The decrements are also quite useful, sometimes wounding opponents. The stone scores well against traditional scanners and bombers. He Scans Alone scores around even. I believe this is because of the mod-5 bombing - Tornado scores similarly against HSA. I feel I could have improved this by leaving the spl above stone as a spl #0, #0 making it invisible to HSA. Alternatively, the a-field could be changed to (say) 100 so it doesn't point to the rest of the stone. This may have a small effect against silk a-field bombing. The spl line above the stone can be hit with either spl or dat with no effect to the correct operation. The hit line may also be hit with either spl or dat. A dat will slow the warrior but the clear phase will still be entered. This helps against both stones and bombers. The p-spacers are handled by the Q^2 scan and the resistance to imp/stone enemies clears and one-shots. The pattern of bombing provides this resistance. There are five possibilities against a standard d-clear. spl #0 mov bmb, >gate djn -1, >gate 1. Bomb hits the spl, decrement misses No real harm done 2. Bomb hits the mov, decrement misses Clear disabled 3. Bomb hits the djn, decrement hits spl, Clear 1/3 speed 4. Bomb misses, decrement hits mov. Maybe clear moving dat 0,0 5. Bomb misses, decrement hits djn. Clear slowed In cases 2 and 3 we have an excellent chance to kill with our own d-clear which is entered after around 6000 cycles. In case 4 we should tie as the d-clear stops when the bomb reaches its own gate. In case 5 we have an even chance to win or lose. Case 1 often results in a loss. We may also hit the gate or the bomb with our bomb giving more chances to win or draw. The double spl gives additional protection against d-clear. D-clear often misses adjacent locations with its bombs. The stone part is cleared later in the round and the imps have less time to reach the gate often resulting in a draw. Now, new clears are appearing in p-spacers which perform better against Newt (although not against Vain :-) A more effective clear may look like this: gate dat.f #0, #4000 dat.f #0, last-gate+1 bmb dat.f #0, last-gate+1 spl.b #0, #0 mov.i bmb, >gate mov.i bmb, >gate djn.f -1, >gate Newt is not so effective against this warrior as decrementing the djn and bombing lines no longer really hamper it. Newt scores about 25/50/25 against this new clear. Bombing the djn line or the first line slows the clear. Newt enters its own clear after 6000 cycles and this gives chances to win. This clear is very tuned against Newt with the a-field decrement. We could improve Newt against this new clear in a few ways. 1. Shorter bombing run entering clear earlier 2. Heavier imp so our imps do not reach the gate 3. A-field increment to more readily disable the clear. I tried the last of these which was fairly effective. stone spl.b #step, <-step # swapped the two spl lines spl.b #0, <-step-1 mov.i }step-1, hit-step # changed to point at -1 add.f stone, -1 hit djn.f -2, gate djn.f -2, >gate # changed to -2 The clear could also optimize against this new form of Newt but I don't really think it is worth beating just one warrior badly. Besides, we can't expect to beat everything. I feel these changes weaken Newt against stones as now both top spls are vulnerable. A spl striking the hit line will no longer cause Newt to enter the perfect d-clear until part way through the bombing run. I think the a-field decrement is more effective against paper too. Consider: spl @-1, >x mov }-1, >-1 spl @1, >x mov }-1, >-1 spl @0, >x mov }-2, >-1 spl @0, >x mov }0, >-1 It is just a vague feeling and an untested exercise for the reader. Specialised p-spacer components such as p-clear can give Newt some problems. The solution is simple. Be the _best_ imp/stone on the hill. This way, when the other imp/stones drop off the hill and the specialists lose their prey, they also drop off the hill and Newt recovers. This just leaves papers and other imp/stones to worry about. When I wrote Newt, the hill contained seven papers and five imp/stones. As I write this, the hill has six imp/stones and seven papers (of sorts). It is important to do well against both of these classes. Newt has a similar size/speed ratio to other imp/stones. It has imp-killing power with the d-clear and resistance to other d-clears and spl/dat bombs and decrements. The result is reasonable scores against other imp/stones, particularly those with no gate of their own. I think the d-clear bomb should have been <2667 as this works better against the medium 3 point imps found in many imp stones. Papers are a real problem for imp/stones such as Newt. The main difficulty is the size of the warrior for the enemy Qscan. The stone and stone boot alone is 18 instructions. Add this to 12 lines to boot the imp-launch and that makes 30 lines on top of the QScan. Compare this to a typical paper that is about 11 lines long or 13 if a boot is included. This 15+ line difference means that the imp/stone does not score so well in the QScan shootout. Slimming the launch can reduce this problem a little. I re-ordered the QScan for the hill version and computer-optimized it against the Gigolo QScan and Probe QScan. I believe this may have given some good scores against papers on the hill as they tend to have a very similar QScan order to these early Q^2 scans. Using a published QScan order in particular can be very dangerous. Generally, the two ways for an imp/stone to beat a paper enemy are a long period of intense bombing like Gigolo or a stone suicide late in heel for a warrior. It is very dangerous to have the same QScan order as a published warrior. While writing this article, I noticed the scores against papers were not so good as I remember. So saying, I present a new version of Newt with some of the ideas from the article. * Imp launch entered earlier for heavier imp * Imp launch unbooted for slimmer launch -> better QScan performance * Imp launch decrement decoy further behind full decoy, better against one-shots * Stone first spl points after end of stone for [minor] paper protection and finally... * QScan scans backwards for hopefully better score on Mt Olympus ;-) ;redcode-94 test ;name Newt v0.2 ;author Ian Oversby ;strategy Q^2 -> Imp/Stone ;assert 1 gate1 equ (init-7-dist) pat equ 3315 sval equ (spin+5220) dist equ 3 impy equ (imp+sep) sep equ 1100 st equ 2667 QB EQU (start-550) QS EQU (QD*2) QD EQU -100 GAP EQU 12 REP EQU 8 REP2 EQU 2 datz EQU (table-3) iboot MOV.I imp, impy spin SPL.B #st+1, >prime prime MOV.I impy, impy ADD.F spin, jump jump JMP.B impy-st-1, <-2200 imp MOV.I #st, *0 for 8 dat 0, 0 rof dat 10*QS, 2*QS ; can get 21 values from this table table: dat 4*QS, 1*QS ; and can also use the initial value dat 23*QS, 3*QS ; of fnd qinc: spl #GAP,-GAP tab: add.a table,table slow: add.a @tab,fnd fast: add.ba *tab,@slow which: sne.i datz,*fnd add.a #QD,fnd mov.i cbomb,*fnd add.ab fnd,fnd fnd: mov.i QB,GAP/2 add.f qinc,fnd mov.i cbomb,*fnd djn.b fnd,#REP jmp boot,}QS*13 start: ; WHICH seq.i QB+QS*0,QB+QS*0+QD jmp which,}QB+QS*0+QD/2 ; FAST seq.i QB+QS*1,QB+QS*1+QD jmp fast,}QB+QS*1+QD/2 seq.i QB+QS*13,QB+QS*13+QD jmp fast,{fast seq.i QB+QS*2,QB+QS*2+QD jmp fast,{tab seq.i QB+QS*3,QB+QS*3+QD jmp fast,}tab ; SLOW seq.i QB+QS*4,QB+QS*4+QD jmp >fast,}QB+QS*4+QD/2 seq.i QB+QS*5,QB+QS*5+QD jmp slow,}QB+QS*5+QD/2 seq.i QB+QS*6,QB+QS*6+QD jmp slow,{tab seq.i QB+QS*7,QB+QS*7+QD jmp slow,}tab seq.i QB+QS*10,QB+QS*10+QD jmp >fast,fast,>tab seq.i QB+QS*24,QB+QS*24+QD jmp slow,>tab seq.i QB+QS*17,QB+QS*17+QD jmp slow,{fast ; TAB seq.i QB+QS*8,QB+QS*8+QD jmp gate1 last DJN.F -1, {gate1 spos DAT.F $0, $0 for 10 DAT.F $0, $0 rof end start Ian Oversby ____________________________________________________________________________ Questions? Concerns? Comments? Complaints? Mail them to people who care. Authors: Beppe Bezzi , Anton Marsden , Christian Schmidt and Philip Kendall