;redcode-qs ;name KafMini-Q^3 AQP ;author John Metcalf ;strategy KafuFFLe's Mini-Q^3 with A Quickscanner's Paper ;strategy 32 (+1) scans with a 42 line qscan ;strategy descended from nPaper II's Mini-Q^3 - minor improvements ;assert CORESIZE == 8000 org qGo pGo EQU boot pStep1 EQU 2341 pStep2 EQU 2421 pStep3 EQU 3241 pAway1 EQU 2000 pAway2 EQU 6000 pEnd EQU (silk3 + 1) boot spl 1 mov.i -1, 0 spl 1 mov.i < pBoot1, { pBoot1 pBoot1 spl pAway1, pEnd mov.i < pBoot2, { pBoot2 pBoot2 jmp pAway2, pEnd silk1 spl @ silk1, < pStep1 mov.i } silk1, > silk1 silk2 spl @ silk2, < pStep2 mov.i } silk2, > silk2 mov.i { silk2, < silk3 silk3 djn.f @ silk3, < pStep3 for 45 dat 0,0 rof qf equ qKil ; Mini-Q^3 qs equ 222 qd equ 322 qi equ 7 qr equ 11 qGo: seq qd+qf+qs, qf+qs ; 1 djn.f qSki, {qd+qf+qs+qi seq qd+qf+6*qs, qf+6*qs ; B djn.f qFas, {qd+qf+6*qs+qi seq qd+qf+5*qs, qf+5*qs ; B-1 jmp qFas, qBmb seq qd+qf+9*qs, qf+9*qs ; A-1 djn qFas, {qFas seq qd+qf+10*qs, qf+10*qs ; A jmn qFas, {qFas seq qd+qf+3*qs, qf+3*qs ; C djn.f >qFas, {qd+qf+3*qs+qi seq qd+qf+2*qs, qf+2*qs ; C-1 jmn >qFas, {qSlo seq qd+qf+4*qs, qf+4*qs ; C+1 jmn >qFas, }qSlo seq qd+qf+12*qs, qf+12*qs ; B*C-B jmn qSlo, {qSlo seq qd+qf+15*qs, qf+15*qs ; B*C-C jmp qSlo, qBmb seq qd+qf+24*qs, qf+24*qs ; B*C+B jmn qSlo, }qSlo seq qd+qf+27*qs, qf+27*qs ; A*C-C djn qSlo, {qFas seq qd+qf+30*qs, qf+30*qs ; A*C jmn qSlo, {qFas sne qd+qf+18*qs, qf+18*qs ; B*C jmz.f pGo, qd+qf+18*qs-10 qSlo:mul #3, qKil ; C=3 qFas:mul.b qBmb, @qSlo qSki:sne >qf+23*qs, >qKil add #qd, qKil qLoo:mov *qKil,