1;redcode-94 quiet 2;name Uninvited 3;author John Metcalf 4;strategy Mini-Q^3 -> Stone / Delayed Imp 5;assert CORESIZE==8000 6 7 org qGo 8 9 sBoot equ (uPtr+2093) 10 iBoot equ (sBoot+uStp) 11 12pGo: spl 2, >-200 ; 6 processes 13 spl 1, >-350 14 spl 1, {-500 15 mov <uBmb, {iPos ; launch imp 16 mov {sPtr, {sPos ; launch stone 17sPos:djn sBoot+6, #6 ; 5 processes for the stone 18iPos:jmp iBoot+6, >-650 ; and 1 process for the imp 19 20 uStp equ 703 21 uTim equ 1183 22 23 spl #0, #0 24uLp: mov uBmb, @uPtr 25uHit:sub.x #uStp*2, @uLp 26uPtr:mov {3582, }uHit+2*uStp*uTim 27 djn.f @uHit, }uPtr 28uBmb:dat <uStp, >1+6 29 30 iStep equ 2667 ; 3-point imps 31 32sPtr:djn #0, #5 ; wait a while 33iPmp:spl #iImp, >-20 34 sub.f #-iStep-1, iJmp 35 mov iImp, }iPmp 36iJmp:jmp iImp-2*(iStep+1),>iImp+2*iStep-1 37iImp:mov.i #iStep/2, iStep 38 39 for 39 40 dat 0,0 41 rof 42 43 qf equ qKil 44 qs equ 222 45 qd equ 322 46 qi equ 7 47 qr equ 11 48 49; -+)>] 0/1 cycles [(<+- 50 51qGo: seq qd+qf+qs, qf+qs ; 1 52 djn.f qSki, {qd+qf+qs+qi 53 seq qd+qf+6*qs, qf+6*qs ; B 54 djn.f qFas, {qd+qf+6*qs+qi 55 seq qd+qf+5*qs, qf+5*qs ; B-1 56 jmp qFas, <qBmb 57 seq qd+qf+7*qs, qf+7*qs ; B+1 58 jmp qFas, >qBmb 59 seq qd+qf+9*qs, qf+9*qs ; A-1 60 djn qFas, {qFas 61 seq qd+qf+10*qs, qf+10*qs ; A 62 jmp qFas, {qFas 63 64; -+>)] 2 cycles [(<+- 65 66 seq qd+qf+3*qs, qf+3*qs ; C 67 djn.f >qFas, {qd+qf+3*qs+qi 68 seq qd+qf+2*qs, qf+2*qs ; C-1 69 jmp >qFas, {qSlo 70 seq qd+qf+4*qs, qf+4*qs ; C+1 71 jmp >qFas, }qSlo 72 seq qd+qf+12*qs, qf+12*qs ; B*C-B 73 jmp qSlo, {qSlo 74 seq qd+qf+15*qs, qf+15*qs ; B*C-C 75 jmp qSlo, <qBmb 76 seq qd+qf+21*qs, qf+21*qs ; B*C+C 77 jmp qSlo, >qBmb 78 seq qd+qf+24*qs, qf+24*qs ; B*C+B 79 jmp qSlo, }qSlo 80 seq qd+qf+27*qs, qf+27*qs ; A*C-C 81 djn qSlo, {qFas 82 seq qd+qf+30*qs, qf+30*qs ; A*C 83 jmp qSlo, {qFas 84 sne qd+qf+18*qs, qf+18*qs ; B*C 85 jmz.f pGo, qd+qf+18*qs-10 86 87qSlo:mul #3, qKil ; C=3 88qFas:mul.b qBmb, @qSlo 89qSki:sne >qf+23*qs, >qKil 90 add #qd, qKil 91qLoo:mov *qKil, <qKil 92qKil:mov qBmb, }qs 93 sub #qi-1, @qLoo 94 djn qLoo, #qr 95 djn.f pGo, #10 ; A=10 96qBmb:dat {qi*qr-10, {6 ; B=6 97 end 98 99