From news-rocq.inria.fr!jussieu.fr!univ-lyon1.fr!in2p3.fr!oleane!tank.news.pipex.net!pipex!usenet.eel.ufl.edu!col.hp.com!sdd.hp.com!swrinde!cssun.mathcs.emory.edu!nntp.msstate.edu!news.memphis.edu!nntp.rhodes.edu!hal.mathcs.rhodes.edu!graham Tue Dec 5 17:16:20 1995 Article: 3226 of rec.games.corewar Path: news-rocq.inria.fr!jussieu.fr!univ-lyon1.fr!in2p3.fr!oleane!tank.news.pipex.net!pipex!usenet.eel.ufl.edu!col.hp.com!sdd.hp.com!swrinde!cssun.mathcs.emory.edu!nntp.msstate.edu!news.memphis.edu!nntp.rhodes.edu!hal.mathcs.rhodes.edu!graham Newsgroups: rec.games.corewar Subject: Slayer Message-ID: <1995Dec5.085040.3089@rhodes> From: graham@hal.mathcs.rhodes.edu (Randy Graham) Date: 5 Dec 95 08:50:39 -0600 Nntp-Posting-Host: hal.mathcs.rhodes.edu X-Newsreader: TIN [version 1.2 PL2] Lines: 298 Well, since we have seen the best of round 7, how about one of the middle-men? Slayer is very simple, and I didn't actually expect him to do well. His compononets are VERY weak, and he only really wins if his scatter routine catches the opponent early. All I did was throw out 50 jmp.a 0,<-x lines, then ran through a loop to change them to jump to a brainwashing, core-clearing pit (did anyone not use this if they vamped?). Randy ----------------------------------------------------------------- ;redcode-94 ;name Slayer ;kill Slayer ;author Randy Graham ;contact graham@mathcs.rhodes.edu ;NSFCWT round 7 ;assert 1 ;strategy use a number of different components and p-space to switch them STRATS equ 3 ;how many strategies I have other than scatter FIRST equ (dummy1+4000) _RSLT equ #0 _STRAT equ #17 _MEMORY1 equ #64 _MEMORY2 equ #73 _LAST equ #155 ;last non-scatter we played mstore1 equ 3 ;what to store in memory 1 mstore2 equ 7 ;what to store in memory 2 mresult equ (mstore1*mstore2) ;result to check memory for brainwash org start dummy1 dat.f #-10, #10 stopper jmp.a 0, <-4 wash stp.ab #0, 0 pit spl.a -1, <-1 spl.a -1, <-14 jmp.a -1, }wash for 38 dat.f <-15, needed1 spl.a 15, <-25 jmp.a 5, 4 mov.i #pit, 14 rof needed1 dat.f 0, 0 ;starts scatter on round1 needed2 dat.f 1, 0 ;forces switching on a loss start ldp.ab _RSLT, #0 ;repeats same strategy ldp.a _STRAT, where_to ;forces switching on a loss jmz.a where_to, -1, }-1 mov.i >-2, }-2 mov.i >-3, }-3 ptr dat.f #20, #swp1 swp3 dat.f <2667, <-15 swp2 mov.i #20, <1 swp1 spl.a #20, 2 dat.f 0, 0 dat.f 0, 0 dat.f 0, 0 well spl.a #0, <-15 mov.i @ptr, }ptr djn.b -1, final for 12 mov.i }final, >final rof final mov.i adder, DUELTO jmp.a DUELTO, #0 moveston mov.i }last, >done mov.i }last, >done mov.i }last, >done last mov.i stone, >done spl.a STONETO+1,>done done mov.i smover, STONETO paperimp jmp.a moveimp, 0 movpapr spl 1, paper1 spl 1 spl 1 mov.i -1, #0 starter spl.a @0, PAPERTO mov.i >movpapr, >starter stopit dat.f <2667, <2667*2 moveimp mov.i imp, IMPTO spl i spl i31 i12 spl imp2 imp1 jmp >0, IMPTO i31 spl imp1 imp3 jmp >0, IMPTO+5334 i spl i12 spl imp3 imp2 jmp >0, IMPTO+2667 imp mov.i #1143, 2667 OPT equ 98 ;mod 2 LEN equ (14) DIFF equ 12 BOMBS equ (DIFF+2) ;how many bombs to lay OFF equ -402 ;djn stream offset for long run ;for OPT 7934 BEST equ -402 ;best I've found so far in length of run ENDAT equ 78164 ;how long BEST runs adder add.f spltrp, cmper ;adjust our compare sites cmper sne.i adder-(OPT*1), adder-(OPT*2) ;see if they differ add.f spltrp, cmper seq.i *cmper, @cmper slt.b cmper, #(-OPT*1) ;different, only bomb if not us djn.b adder, #OFF ;lay djn stream, jump to add line mov.i build, *cmper mov.i spltrp, {cmper sub.i datadd, cmper ;reset compare pointer jmz.i adder, adder-1 ;if we haven't bombed ourself, scan more spltrp spl.a #-(OPT*2), <-(OPT*2) ;trap, and stay alive line sweep mov.i datadd, paper1 getimps mov.i nonimp, >-550 novamp mov.i static, }399 again spl.a paper1, {paper1 nonimp dat.f <2667, <5334 static dat.f <1, <1 ;not used, but just to fil in space STEP equ 73 T_OFF equ 0 gate dat 0,0 for 3 dat 0,0 rof w2 dat -7,cp-gate+3 dat 0,0 wipe dat -7,cp-gate+3 sp spl #-1-STEP,-STEP ; spl half of the incendiary in sub #STEP+STEP,@msp msm mov sm,*tgt+(T_OFF) msp mov sp,@msm ; bomb alternately with spl & mov tgt jmz in,#0 ; bombed with spl to start clear clr mov @cp,>gate cp djn.b clr,{wipe+1 for 2 dat 0,0 rof sm mov STEP+1,>STEP+1 ; mov half of the incendiary for 8 add.f spltrp, cmper seq.i *cmper, @cmper slt.b cmper, #(-OPT*1) ;different, only bomb if not us djn.b adder, #OFF ;lay djn stream, jump to add line mov.i build, *cmper mov.i spltrp, {cmper rof end