From news-rocq.inria.fr!jussieu.fr!math.ohio-state.edu!howland.erols.net!cam-news-hub1.bbnplanet.com!cpk-news-hub1.bbnplanet.com!news.bbnplanet.com!dispatch.news.demon.net!demon!kendalls.demon.co.uk!kendalls.demon.co.uk!pak21 Thu Apr 3 10:59:35 1997 Article: 7422 of rec.games.corewar Path: news-rocq.inria.fr!jussieu.fr!math.ohio-state.edu!howland.erols.net!cam-news-hub1.bbnplanet.com!cpk-news-hub1.bbnplanet.com!news.bbnplanet.com!dispatch.news.demon.net!demon!kendalls.demon.co.uk!kendalls.demon.co.uk!pak21 From: Philip Kendall Newsgroups: rec.games.corewar Subject: Some warriors (long-ish) Date: Wed, 2 Apr 1997 00:57:34 +0100 Organization: Private Distribution: world Message-ID: <+AVx7FAuDaQzEwzU@kendalls.demon.co.uk> NNTP-Posting-Host: kendalls.demon.co.uk X-NNTP-Posting-Host: kendalls.demon.co.uk MIME-Version: 1.0 X-Newsreader: Turnpike Version 3.04 beta 2 Lines: 516 Well, Core Warrior 57 has hopefully wound its happy little way towards you by now, so you all know what NCC-1701-A looks like, and I can publish some other bits: First of all, One Shot, the Photon Torpedoes component from the Enterprise - basically, all the comments in Core Warrior apply here - this is a one shot scanner (surprise) tuned to work against stone/imps. It lurked in the lower reaches of the hill for a bit (highest of around 14th), and then dropped off after about 20 challenges. ;redcode-94 ;name One Shot ;author Philip Kendall ;strategy one shot -> spl/spl/anti-imp dat ;assert CORESIZE==8000 ;show source ;show off ;warrior has been changed since the following ;combinations tried: 12/ 6/(ptr-409): 142.1667 ; 24/12/(ptr-403): 151.5833 ; 24/ 6/(ptr-409): 147.9167 ; 30/15/(ptr-411): 154.0833/156.0000 step equ 30 sep equ 15 stream equ (ptr-412) ;show on scan1 equ (inc+step) imp equ 2667 cstart equ (last+2-ptr) ptr dat.f bomb1,#0 ; scanned-low bomb3 dat.f >imp,>(2*imp) inc dat.f step,step bomb2 spl.a #(bomb3-ptr),cstart loop add.f inc,scan scan sne.i scan1,scan1+sep djn.f loop,ptr mov.i *ptr,>ptr last djn.f clear,bptr rof spl.a *bptr,>-1000 div.f bptr,bptr bptr dat.f (scan+bdist),(ptr+bdist) ; scanned-low spl.a #1,1 spl.b #1,1 spl.ab #1,1 spl.ba #1,1 spl.f #1,1 spl.x #1,1 spl.i #1,1 spl.a 1,#1 spl.b 1,#1 spl.ab 1,#1 spl.ba 1,#1 spl.f 1,#1 spl.x 1,#1 spl.i 1,#1 dat.f 1,1 ; scanned-hi i for 3 spl.a #1,*1 spl.b #1,*1 spl.ab #1,*1 spl.ba #1,*1 spl.f #1,*1 spl.x #1,*1 spl.i #1,*1 spl.a *1,#1 spl.b *1,#1 spl.ab *1,#1 spl.ba *1,#1 spl.f *1,#1 spl.x *1,#1 spl.i *1,#1 for (i<3) spl.a #1,#1 ; scanned rof for (i==3) dat.f 0,0 ; scanned-low rof rof for (MAXLENGTH-CURLINE) spl.a #1,1 rof end boot Next up, One Shot 'T' from the Tiny hill - currently second :-) - again, nothing special here; perhaps the most interesting point is that it is booted, which gives it a 2:1 wins ratio against some other one shots, such as Brian Haskin's Musket Loader ;redcode-94x ;name One Shot 'T' ;author Philip Kendall ;strategy Boot -> one shot ;assert CORESIZE==800 || CORESIZE==8000 ;planar boot, scan, clear, gate for CORESIZE==800 step equ 24 sep equ 12 bdist equ 108 stream equ -150 scan1 equ (cptr+22) rof for CORESIZE==8000 step equ 30 sep equ 15 bdist equ 1083 stream equ -1500 scan1 equ (cptr+22) rof ptr equ (dbomb-3) cstart equ (cptr+2-ptr) start spl.a 1,>-100 for 5 mov.i >sptr,>dptr rof sptr mod.a #1,#dbomb dptr spl.a (scan+bdist),(dbomb+bdist) div.f dptr,dptr dat.f 0,0 dbomb dat.f -20,>cstart sbomb spl.a #0,>cstart loop sub.f inc,scan scan sne.i scan1,scan1+sep djn.f loop,-step clear mov.i @cptr,>ptr mov.i @cptr,>ptr cptr djn.b clear,{sbomb end start Right, now some Low Process warriors - first, Paper 'LP', the oldest warrior on the hill ;redcode-lp ;name Paper 'LP' ;author Philip Kendall ;strategy A djn paper for the low process environment ;strategy 1 process, 7 lines per copy ;assert CORESIZE==8000 ;planar paper ;show source length equ (data&i-pap&i+1) space equ 1231 dist01 equ 883 dist02 equ 1257 dist03 equ -573 dist04 equ 3139 dist05 equ -2047 dist06 equ 2155 dist07 equ 3803 dist08 equ -921 bomb01 equ -2667 ; lots of imp numbers bomb02 equ -1143 ; well, why not? bomb03 equ -889 bomb04 equ -5091 bomb05 equ -3077 bomb06 equ -2353 bomb07 equ -7579 bomb08 equ -381 start i for 7 spl.a copy&i,>(i*1000) rof jmp.a copy08,>-500 dat.a 1,1 dat.b 1,1 dat.ab 1,1 dat.ba 1,1 for MAXLENGTH>=200 ; more decoy if we've got room dat.f 1,1 dat.x 1,1 dat.i 1,1 dat.a 1,#1 rof i for 8 ; 8 processes => 8 copies pap&i mov.a #1,data&i mov.ab #length,rep&i copy&i mov.i {data&i,bomb&i data&i dat.f 1,dist&i dat.a 1,1 dat.b 1,1 dat.ab 1,1 dat.ba 1,1 for MAXLENGTH>=200 dat.f 1,1 dat.x 1,1 dat.i 1,1 dat.a #1,1 dat.b #1,1 dat.ab #1,1 dat.ba #1,1 dat.f #1,1 dat.x #1,1 dat.i #1,1 dat.a 1,#1 dat.b 1,#1 rof rof end start Next, it's younger brother, Paper 'LP' II - just a couple of changes here, designed to prevent the opponent from successfully 'jumping into' the paper and tying - worked pretty well, this little thing topped the LP hill for quite a while ;redcode-lp ;name Paper 'LP' II ;author Philip Kendall ;strategy A djn paper for the low process environment ;strategy 1 process, 7 lines per copy ;strategy More wins, more losses ;assert CORESIZE==8000 ;planar paper ;show source length equ (data&i-pap&i+1) space equ 1231 dist01 equ 883 dist02 equ 1257 dist03 equ -573 dist04 equ 3139 dist05 equ -2047 dist06 equ 2155 dist07 equ 3803 dist08 equ -921 bomb01 equ -2667 ; lots of imp numbers bomb02 equ -1143 ; well, why not? bomb03 equ -889 bomb04 equ -5091 bomb05 equ -3077 bomb06 equ -2353 bomb07 equ -7579 bomb08 equ -381 start i for 7 spl.a copy&i,>(i*1000) rof jmp.a copy08,>-500 dat.a 1,1 dat.b 1,1 dat.ab 1,1 dat.ba 1,1 for MAXLENGTH>=200 ; more decoy if we've got room dat.f 1,1 dat.x 1,1 dat.i 1,1 dat.a 1,#1 rof i for 8 ; 8 processes => 8 copies pap&i mov.a #1,data&i mov.ab #length,rep&i copy&i mov.i {data&i,bomb&i jmz.b @data&i,rep&i data&i dat.f 1,dist&i dat.a 1,1 dat.b 1,1 dat.ab 1,1 dat.ba 1,1 for MAXLENGTH>=200 dat.f 1,1 dat.x 1,1 dat.i 1,1 dat.a #1,1 dat.b #1,1 dat.ab #1,1 dat.ba #1,1 dat.f #1,1 dat.x #1,1 dat.i #1,1 dat.a 1,#1 dat.b 1,#1 rof rof end start Next, Inferno 1.8 - very simple, just a Tornado engine which bombs with mov.i step,1 and jmp.a #1,1 -> dclear. No boot, no decoy, no nothing - Inferno 1.9 was just the same, but booted off a full decoy, and didn't do quite as well, but with the scanners now appearing on the hill, may do better. ;redcode-lp ;name Inferno 1.8 ;author Philip Kendall ;strategy Tornado-based dat bomber -> d-clear ;strategy 1.8: now with stun power ;assert CORESIZE == 8000 step equ 3205 bomb1 equ (hit+step) trigger equ (hit-step) ptr equ (cbomb-1) cstart equ (safety+3-ptr) cbomb dat.f >5335,cstart mbomb mov.i step,1 dbomb jmp.a #1,1 loop mov.i dbomb,*stone x mov.i mbomb,@stone stone mov.i bomb1,*bomb1+step add.f inc,@x hit jmz.f loop,trigger inc spl.a #(step*3),>(step*3) clear mov.i cbomb,>ptr djn.f clear,>ptr safety jmp.a inc,>ptr end loop Next up, another paper, Tribbles - basically a rehash of Ian Sutton's Completely Indestructible, but with a couple of lines chopped out and with all 8 copies ready to go from the start - never did as well as the other two papers, and so got killed very quickly. Is the binary launch used for the papers here better than that used in Paper 'LP' I & II? Don't know, never did any tests... Is this the smallest one-process paper? (I don't count mov.i 0,1, BTW) ;redcode-lp ;name Tribbles ;author Philip Kendall ;strategy Another low process paper ;strategy This time only 5 lines long! Loosely based on ;strategy Ian Sutton's Completely Indestructible ;strategy The smallest one-process paper? ;assert CORESIZE==8000 ;planar paper length equ 5 dist01 equ 1024 dist02 equ 3158 dist03 equ 6733 dist04 equ 2632 dist05 equ 7525 dist06 equ 5013 dist07 equ 3816 dist08 equ 6111 dat.a 1,*1 dat.b 1,*1 dat.ab 1,*1 dat.ba 1,*1 dat.f 1,*1 for (MAXLENGTH>=200) dat.x 1,*1 dat.i 1,*1 dat.a *1,1 dat.b *1,1 dat.ab *1,1 dat.ba *1,1 dat.f *1,1 dat.x *1,1 dat.i *1,1 dat.a *1,*1 dat.b *1,*1 dat.ab *1,*1 rof launch spl.a 8,>1000 ; binary launch the 8 papers spl.a 4,>2000 spl.a 2,>4000 jmp.a copy01,}500 jmp.a copy02,}1500 spl.a 2,>5000 jmp.a copy03,}2500 jmp.a copy04,}3500 spl.a 4,>3000 spl.a 2,>6000 jmp.a copy05,}4500 jmp.a copy06,}5500 spl.a 2,>7000 jmp.a copy07,}6500 jmp.a copy08,}7500 i for 8 paper&i mov.ab #length,#length copy&i mov.i =200) dat.x 1,1 dat.i 1,1 dat.a #1,1 dat.b #1,1 dat.ab #1,1 dat.ba #1,1 dat.f #1,1 dat.x #1,1 dat.i #1,1 dat.a 1,#1 dat.b 1,#1 rof rof end launch And the last for now, Romulan Warbird (yes, another Star Trek reference!), a scanner which is based very heavily on Iron Gate, and at one stage had a 20 point lead at the top of the hill, which I was quite pleased with! ;redcode-lp ;name Romulan Warbird ;author Philip Kendall ;strategy spl-jmp bombing scanner - Irongate inspired ;strategy Let's do something about those papers :-) ;assert CORESIZE==8000 ;planar scan,stun,clear,gate step equ 98 protect equ (adjust-scan) stream equ -1308 scan1 equ (loop+step) ptr equ (inc-2) cstart equ (adjust+2-ptr) inc dat.f (step*2),(step*2) loop add.f inc,@x scan cmp.i scan1+step,scan1 slt.ab #protect,@x djn.f loop,ptr jbomb jmp.a -1,}ptr dbomb dat.f >2667,>cstart adjust dat.f step,(step+1) end scan Hope that lot didn't take too long to get down to your machines, and hope people don't have spam kill files which catch this :-) If anybody wants the source code to any of my other warriors, give me an e-mail and I'll post it here, or something - IMHO, none of the others are really worth publishing, but you may think differently. Of course, any comments/suggestions on all the above welcome. Phil -- Philip Kendall (pak21@cam.ac.uk pak21@kendalls.demon.co.uk)