- Core War
- Strategy
- Paper/Stone
- Ziggy
Ziggy is a paper/stone which entered the KOTH.org 94nop hill on 11th January 2016 and survived 186 challenges before being pushed off on 10th May 2018. Ziggy also entered the 94 hill where it has survived 70+ challenges.
;redcode-94nop quiet
;name Ziggy
;author Roy van Rijn
;assert 1
sAway equ 2079
pAway equ 1008
zero equ qbomb
qtab3 equ qbomb
qbomb dat >qoff , >qc2
wGo mov hBomb , wGo+sAway+hOff
spl }2 , }qb1
qtab2 spl 1 , }qb2
spl 0 , }qb3
mov {dGo , {dBoo
dBoo spl wGo+sAway+6 , }1933
mov <pPtr , {pBoo
spl *dBoo , }4788
pBoo djn.f wGo+pAway+6 , }2803
for 7
dat 0 , 0
rof
dat zero-1 , qa1
qtab1 dat zero-1 , qa2
dat 0 , 0
hStep equ 3039
hTime equ 3360
hDjn equ 4326
hOff equ 28
dGo spl #6 , <4
mov dGo+hOff , @hPtr
hHit add #hStep*2 , hPtr
hPtr mov dGo+hOff , }hHit-hStep*hTime
djn.f -3 , {hDjn
dat 0 , 0
dat 0 , 0
dat 0 , 0
dat 0 , 0
pStep1 equ 3157;1406
bStep1 equ 5778;7099
pGo mov.i #pBmb+1 , {bStep1
mov.i {pGo , <pCopy
pCopy spl @0 , }pStep1
mov.i pBmb , <pCopy
jmn.b pGo , }pGo
pBmb dat <5334 , <2667
for 29
dat 0 , 0
rof
hBomb dat }hStep , >1
qc2 equ ((1+(qtab3-qptr)*qy)%CORESIZE)
qb1 equ ((1+(qtab2-1-qptr)*qy)%CORESIZE)
qb2 equ ((1+(qtab2-qptr)*qy)%CORESIZE)
qb3 equ ((1+(qtab2+1-qptr)*qy)%CORESIZE)
qa1 equ ((1+(qtab1-1-qptr)*qy)%CORESIZE)
qa2 equ ((1+(qtab1-qptr)*qy)%CORESIZE)
qy equ 5931
qz equ 3972
;q0 mutation
qgo
sne qptr+qz*qa1 , qptr+qz*qa1+qb2
seq <(qtab1-1) , qptr+qz*(qa1-1)+qb2
djn.a q0 , {q0
sne qptr+qz*qc2 , qptr+qz*qc2+qb2
seq <qtab3 , qptr+qz*(qc2-1)+qb2
jmp q0 , }q0
sne qptr+qz*qa2 , qptr+qz*qa2+qb2
seq <qtab1 , qptr+qz*(qa2-1)+qb2
jmp q0 , {q0
;q1 mutation
sne qptr+qz*qb3 , qptr+qz*qb3+qb3
seq <(qtab2+1) , qptr+qz*(qb3-1)+(qb3-1)
jmp q0 , }q1
sne qptr+qz*qb1 , qptr+qz*qb1+qb1
seq <(qtab2-1) , qptr+qz*(qb1-1)+(qb1-1)
jmp q0 , {q1
sne qptr+qz*qb2 , qptr+qz*qb2+qb2
seq <qtab2 , qptr+qz*(qb2-1)+(qb2-1)
djn.f q0 , <6907
;qz mutation
seq >qptr , qptr+qz+(qb2-1)
jmp q2 , <qptr
;q0 mutation
seq qptr+(qz+1)*(qc2-1),qptr+(qz+1)*(qc2-1)+(qb2-1)
jmp q0 , }q0
seq qptr+(qz+1)*(qa2-1),qptr+(qz+1)*(qa2-1)+(qb2-1)
jmp q0 , {q0
seq qptr+(qz+1)*(qa1-1),qptr+(qz+1)*(qa1-1)+(qb2-1)
djn.a q0 , {q0
jmz.f wGo , qptr+(qz+1)*(qb2-1)+(qb2-1)
qoff equ -87
qstep equ -7
qtime equ 19
q0 mul.b *2 , qptr
q2 sne {qtab1 , @qptr
q1 add.b qtab2 , qptr
mov qtab3 , @qptr
qptr mov qbomb , }qz
sub #qstep , qptr
djn -3 , #qtime
pPtr jmp wGo , pBmb+1
end qgo