[88] 4 upcycled warriors.
From
Stephen Gunnell@21:1/5 to
All on Fri Dec 24 14:45:23 2021
I maintain a sort of top 200 list for each KotH hill and one of the views is the effectiveness against the published hill warriors. Every so often one of the classic warriors bubbles up into contention and I investigate it. Recently I have been doing
some upcycling where I don't investigate the warrior in any detail but just present it with a new set of constants. Here are:
Agony 4.1 by Stefan Strack
Positive Knife '88 by Ken Espiritu
Sixth Sense by Wayne Sheppard
Tangle Trap 3 by David Moore
I was going to post the warriors as an uuencoded zip file for old times sake but Google Groups throws an error without explaining what the problem is. What a crock!
Merry Christmas people,
Steve
;redcode
;name Agony 4.1 kzkb
;author Stefan Strack
;strategy Small-interval CMP scanner that bombs with a SPL 0 carpet.
;strategy Tweaked and upcycled by Steve G
;assert CORESIZE==8000
CDIST equ 12
IVAL equ 3634
FIRST equ scan+OFFSET+IVAL
OFFSET equ (3634*1585)
DJNOFF equ 6045
load mov #CDIST+(bptr-comp)+1 ,count
scan sub incr ,comp
comp cmp FIRST-CDIST ,FIRST
slt #incr-comp+CDIST+(bptr-comp)+1 ,comp
djn scan ,<FIRST+DJNOFF
mov comp ,bptr
bptr dat #0
split mov bomb ,<bptr
count djn split ,#CDIST+(bptr-comp)+1
jmz load ,load-1
bomb spl 0 ,<1-IVAL
mov incr ,<count
incr dat <0-IVAL ,<0-IVAL
end comp
----------------------------------------------------
;redcode
;name Positive Knife '88 kdyp
;author Ken Espiritu
;strategy q^2 -> stone/imp
;assert CORESIZE==8000
step equ 5557
time equ 6306
doff equ 2101
boff equ 3030
sloc equ 2512
iloc equ 7067
ioff equ 7921
qf equ (qgo+1*qs)
qd equ 82
qs equ (2*qd)
qi equ 5
qr equ 9
spl 0 ,<sloc-iloc+doff
spl sloc-iloc-1 ,ioff+2667*2+1
add #2667 ,-1
djn @-2 ,<sloc-iloc+doff-3
iend mov 0 ,2667
s spl 0 ,<doff
sl mov boff+3 ,hit-step*time
hit add #step ,-1
djn sl ,<doff+s
bomb dat <2667 ,<0
qbomb dat <qi/2-qi*qr ,<qi*qr-qi/2
dat #12*qs ;a
qp1 dat #5*qs ;b
qp2 dat #2*qs ;c
qp3 ; dat #1*qs ;d
qgo cmp qd+qf ,qf ;d
jmp qskip ,<qf+4
cmp qd+qf+qs*5 ,qf+qs*5
jmp qfast ,<qf+qs*5+4
cmp qd+qf+qs*12 ,qf+qs*12
q1 djn qfast ,#qp1
cmp qd+qf+qs*7 ,qf+qs*7
jmp qslow ,<qf+qs*7+4
cmp qd+qf+qs*14 ,qf+qs*14
jmp qslow ,<q1
cmp qd+qf+qs*10 ,qf+qs*10
q2 djn qslow ,#qp2
cmp qd+qf+qs*2 ,qf+qs*2
jmp qslow ,<qfast
cmp qd+qf+qs*8 ,qf+qs*8
jmp qslower ,<qf+qs*8+4
cmp qd+qf+qs*15 ,qf+qs*15
jmp qslower ,<q1
cmp qd+qf+qs*11 ,qf+qs*11
jmp qslower ,<q2
cmp qd+qf+qs*9 ,qf+qs*9
q3 djn qslower ,#qp3
cmp qd+qf+qs*3 ,qf+qs*3
jmp <qfast ,<qf+qs*3+4
cmp qd+qf+qs*6 ,qf+qs*6
jmp <qfast ,<q2
cmp qd+qf+qs*4 ,qf+qs*4
jmp <qfast ,<q3
cmp qd+qf+qs*16 ,qf+qs*16
slt <q3 ,<q1
jmz boot ,qd+qf+qs*8+10
qslower add @q3 ,@q2
qslow add @q2 ,qkil
qfast add @q1 ,@qslow
qskip jmn qloop ,@qkil
add #qd ,qkil
qloop mov qbomb ,@qkil
qkil mov qbomb ,<qf
sub #qi ,@qloop
djn qloop ,#qr+2
boot mov <ssptr ,s+sloc+boff
mov <siptr ,s+iloc+ioff
ssptr spl 1 ,bomb+1
siptr spl 1 ,iend+1
mov <ssptr ,<dsptr
mov <siptr ,<diptr
dsptr spl @0 ,s+sloc
diptr jmp @0 ,s+iloc
end qgo
-------------------------------------------------
;redcode
;name Sixth Sense vjfn
;author Wayne Sheppard
;strategy cmp scanner-SPL/JMP-Gate
;strategy Tweaked and upcycled by Steve G
;assert CORESIZE==8000
dist equ 121
scan equ dist*2
safe equ off-Go+4
Go add off ,@x
loc cmp dist-1 ,-1
slt #safe ,@x
djn -3 ,<5994
mov j ,@loc
x mov s ,<loc
sub new ,@x
jmn loc ,loc-1
s spl 0 ,<1-dist
mov 2 ,<-2
j jmp -1 ,#0
new dat <0-dist ,<0-dist-1
off dat #scan ,#scan
end Go
------------------------------------------------------
;redcode
;name Tangle Trap 3 dlhu
;author David Moore
;strategy .4c pit trapper with error-checking.
;strategy If damaged, then deploy "airbag"
;strategy tweaked and upcycled by Steve G
;assert CORESIZE==8000
; vamp numbers
step equ 6935
skip equ (0-11)
time equ 570
; boot distances
dist equ 4429 ; distance to vamp_A from boot
distCh equ 14 ; distance to check from vamp_A
distT equ 123 ; distance to trap from vamp_A
distCl equ (0-72) ; distance to clear from vamp_A
MARK equ 4405
boot2 mov clBomb ,@pCl
mov fang2 ,@pF
mov fang1 ,<pF
pW mov wimp ,boot+dist+(vamp_C-vamp_A)+skip+step
pT spl pC ,boot+dist+distT+3
pF spl boot+dist+2 ,boot+dist+distCh
pV spl @0 ,boot+dist+6
mov <pV ,pF ; hide boot pointers
dat <pT ,<pW
pC spl boot+dist+3 ,boot+dist+distCl+3
pV2 spl @0 ,boot+dist+1
mov <pV2 ,pC ; hide boot pointers
dat <pV2 ,<boot+dist+5421
boot spl boot2 ,<boot+dist+MARK
spl 2 ,<boot+dist+MARK*2
spl 1 ,<boot+dist+MARK*3
mov <source ,<pV
mov <source ,<pV
mov <source ,<pC
mov <source ,<pT
djn @pV2 ,#3
pCl djn @pV ,#boot+dist+distCl-4
wimp jmp 0 ,<0
clBomb dat <-8 ,#-10
fang1 jmp skip + step ,skip
fang2 jmp distT-(vamp_C-vamp_A)+(step*time)-skip-step ,2
spl 0 ,<2
source spl -1 ,vamp_A + 6
jmn -1 ,#MAXPROCESSES
spl 0 ,<-7
mov -5 ,<-5
djn -1 ,<5359
check equ (vamp_A + distCh)
clear equ (vamp_A + distCl)
vamp_A add vamp_B ,check
vamp_B sub #-step ,2
vamp_C mov <check ,@vamp_D
vamp_D mov <check ,@vamp_C - step * time
vamp_E jmz vamp_A ,check
jmp clear ,0
end boot
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)