From pak21@kendalls.demon.co.uk Thu Apr 16 02:06:27 1998 Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by tobago.inria.fr (8.6.10/8.6.6) with ESMTP id CAA25627 for ; Thu, 16 Apr 1998 02:06:27 +0200 Received: from post.mail.demon.net (post-30.mail.demon.net [194.217.242.40]) by nez-perce.inria.fr (8.8.7/8.8.5) with SMTP id CAA15433 for ; Thu, 16 Apr 1998 02:06:23 +0200 (MET DST) Received: from (kendalls.demon.co.uk) [194.222.25.137] by post.mail.demon.net with smtp (Exim 1.82 #2) id 0yP97H-0002AG-00; Tue, 14 Apr 1998 18:03:28 +0100 Message-ID: Date: Mon, 13 Apr 1998 21:50:31 +0100 To: Damien Doligez From: Philip Kendall Subject: Some warriors MIME-Version: 1.0 X-Mailer: Turnpike (32) Version 3.05 Status: R Planar, Three warriors: first of all qDeath 2.1, the intermediate version of qDeath as mentioned in CW 66, with a one-pass dat clear instead of a d- clear, and Big Brother and Bigger Brother, a couple of my p-spacers which never did that well :-( Phil ;redcode-b test ;name qDeath 2.1 ;author Ryan Coleman/Philip Kendall ;strategy QScan -> Scissor ;strategy Testing some ideas for CW 66 ;assert CORESIZE==8000 ORG start CDIST equ 12 IVAL equ 42 FIRST equ scan+OFFSET+IVAL OFFSET equ (2*IVAL) DJNOFF equ -431 BOMBLEN equ CDIST+2 scan sub.f incr,comp comp cmp.i FIRST,FIRST-CDIST slt.a #incr-comp+BOMBLEN,comp djn.f scan,comp count djn.b split,#0 sub.ab #BOMBLEN,comp jmn.a scan,scan bomb spl.a #0,0 mov.i incr,tab seq.i QB+QS*28,QB+QS*28+QD jmp tab,>tab 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 seq.i QB+QS*8,QB+QS*8+QD jmp one shot/stone ;assert CORESIZE==8000 ;planar boot,scan,clear,gate,stone,pspace dat.f }1,>1 ; scanned-lo oBdist equ 1111 oStart i for 12 mov.i (oDbomb+i-1),>oBptr rof oBptr spl.a (oScan+oBdist),(oDbomb+oBdist) div.f oBptr,oBptr dat.f }1,>1 ; scanned-hi oStep equ 30 oSep equ 15 oStream equ -1507 oScan1 equ (oCptr+22) oPtr equ (oDbomb-3) oCstart equ (oCptr+2-oPtr) oDbomb dat.f -20,>oCstart oSbomb spl.a #0,>oCstart oLoop sub.f oInc,oScan oScan sne.i oScan1,oScan1+oSep sub.f oInc,oScan sne.i *oScan,@oScan jmz.b oLoop,#0 mov.ab oScan,oPtr oInc spl.a #-oStep,>-oStep oClear mov.i @oCptr,>oPtr mov.i @oCptr,>oPtr oCptr djn.b oClear,{oSbomb spl.a #1,1 spl.b #1,1 spl.ab #1,1 ; scanned-lo pBdist equ -2138 pOffset equ 15 pBoot mov.i pLast ,@pBptr mov.i pHit ,-1,>1 spl.ba #1,1 spl.f #1,1 spl.x #1,1 spl.ab #1,1 ; scanned-hi pstate equ 666 ; pspace location containing current state num equ 6 ; maximum number of states 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 #num,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 for 4 dat.f 1,1 rof spl.a #1,}1 ; scanned-lo c1 equ pBoot c2 equ oStart loss_table dat 1,c1 dat 2,c1 dat 3,c2 dat 4,c2 dat 5,c2 dat 0,c1 win_table tie_table init_state dat 0,c1 dat 0,c1 dat 0,c1 dat 3,c2 dat 3,c2 dat 3,c2 for (MAXLENGTH-CURLINE)/3 spl.a #1,<1 spl.a #(CURLINE*13),>(CURLINE*17) for (CURLINE!=90) spl.a #1,}1 rof for (CURLINE==90) dat.f 0,0 rof rof end think ---cut here--- ;redcode-94 ;name Bigger Brother ;author Philip Kendall ;strategy P^2 -> one shot/stone/paper ;assert CORESIZE==8000 ;planar boot,scan,clear,gate,stone,pspace,paper dat.f }1,>1 ; scanned-lo oBdist equ 1111 oStart i for 12 mov.i (oDbomb+i-1),>oBptr rof oBptr spl.a (oScan+oBdist),(oDbomb+oBdist) div.f oBptr,oBptr dat.f }1,>1 ; scanned-hi oStep equ 30 oSep equ 15 oStream equ -1507 oScan1 equ (oCptr+22) oPtr equ (oDbomb-3) oCstart equ (oCptr+2-oPtr) oDbomb dat.f -20,>oCstart oSbomb spl.a #0,>oCstart oLoop sub.f oInc,oScan oScan sne.i oScan1,oScan1+oSep sub.f oInc,oScan sne.i *oScan,@oScan jmz.b oLoop,#0 mov.ab oScan,oPtr oInc spl.a #-oStep,>-oStep oClear mov.i @oCptr,>oPtr mov.i @oCptr,>oPtr oCptr djn.b oClear,{oSbomb dat.a #1,1 dat.b #1,1 dat.ab #1,1 ; scanned-lo pBdist equ -2138 pOffset equ 15 pBoot mov.i pLast ,@pBptr mov.i pHit ,-1,>1 dat.ba #1,1 dat.f #1,1 dat.x #1,1 dat.ab #1,1 ; scanned-hi pstate equ 237 ; pspace location containing current state num equ 7 ; maximum number of states dat 0,init_state-state in dat 0,loss_table-state dat 0,win_table-state dat 0,tie_table-state c1 equ pBoot c2 equ oStart c3 equ cStart think ldp.a #0,in ; get input value load ldp.a #pstate,state ; load old state mod.a #num,state ; brainwash protection add.ba *in,state ; select correct state table store stp.a *state,load ; store new state win_table init_state state jmp @0,c1 dat 0,c1 dat 0,c1 dat 3,c2 dat 3,c2 dat 5,c3 ; scanned-lo dat 5,c3 loss_table dat 1,c1 dat 2,c1 dat 3,c2 dat 4,c2 dat 5,c3 dat 6,c3 dat 0,c1 for 6 dat.f 1,1 rof dat.f 5,16 ; scanned-hi cStart spl.a 1,<-3000 mov.i -1,0 mov.i -1,0 mov.i -1,0 cDist1 equ 3039 cDist2 equ 2365 cDist3 equ 777 cLen equ 9 cGate equ -10 cPaper1 spl @0,>cDist1 mov }cPaper1,>cPaper1 cPaper2 spl @0,>cDist2 mov }cPaper2,>cPaper2 cPaper3 spl @0,>cDist3 cPtr mov }cPaper3,>cPaper3 cAttack mov cBomb,2667,>(2667*2) dat.f 1,1 dat.f 0,0 ; scanned-lo tie_table dat.f 0,c1 dat.f 0,c1 dat.f 0,c1 dat.f 3,c2 dat.f 3,c2 dat.f 3,c2 dat.f 5,c3 end think