;redcode-CSEC2005 ;name Fluffy John ;author Chip Wendell ;strategy 2-component P^3 switcher ;strategy One: four stones and 7-pt imp ;strategy Two: 6-process silk ;strategy For the final round of CSEC2005 ;assert 1 ;-------imp constants------------------------ iStep equ 1143 ;-------stone constants---------------------- sStep equ 1230 sHop equ 46 sGate equ (sIncr-2) sHit equ (sLoop-sStep-sHop) ;-------boot constants----------------------- ioff equ (top - 1015) iSep equ (top + 7080) s1Away equ (top - 800) s2Away equ (top + 1200) m1Away equ (top - 1500) m2Away equ (top + 1900) top for 150 dat 1,-150 rof ;Two-component, 6-state P^3 switcher PSTATE equ 30 think ldp.a #0, in ldp.a #PSTATE, table mod.ba *in, table stp.b *table, #PSTATE table jmp }0, 57 ;initial state dat S, 92 dat S, 148 dat P, 110 dat P, 117 dat P, 208 dat S, 57 ;unreachable in dat 0, 5 ; must have non-zero b-field in the previous cell spl 1, 7 spl 1, 6 S equ iBoot P equ pBoot ;S equ d1 ;P equ d2 d1 dat 1 d2 dat 2 iBoot mov.i iImp, ioff s1Boot spl 1, s1Away s2Boot spl 1, s2Away mov.i {iBoot, Vect, >s2Boot ;boot second stone mov.i >Vect, >s2Boot ;boot second stone mov.i 0, Vect ;split processes to launch vector Vect jmp @iBoot, sBomb+1 m1Boot jmp m1Away, m1+4 m2Boot jmp m2Away, m2+4 dat 0,0 for 4 dat 0, 0 rof sIncr spl #sStep, <-sStep mov.i {sStep-4400, sGate djn.f -1, >sGate sBomb dat iImp+2*iStep-1 iImp mov.i #iStep, *0 for 6 dat 0,0 rof pAway1 equ 1237 pAway2 equ 473 bStep1 equ 829 bStep2 equ 1491 pBoot spl 2 ; spl 1 ; spl 1 ;generate 6 parallel processes silk1 spl.a @0, pAway1 ;split mov.i }silk1, >silk1 ;copy ---> front-end silk mov.i #1, {1 mov.i {bStep1, pAway2 ;jump ---> back-end silk for 165 dat 1,165 rof end think