Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Baby hill

8 views
Skip to first unread message

Anders Rosendal

unread,
Sep 19, 1999, 3:00:00 AM9/19/99
to
Hello Alle!

After seeing that my warrior fell off the hill(Damn it stayed there for a long
time), I decided that I would make a comeback. Spendt 3-4 hours making a new
warrior.

I tested it against
TIME.RED, NOBODY.RED, PAPERONE.RED, MARCIA13.RED, TORNADO.RED, RAVE.RED
PSWING.RED, THERMITE.RED, FSTORM.RED, CANNON.RED, BLUEFUNK.RED, IRONGATE.RED

And got a 4. place.

But on the beginner hill I'm currently on a 19'th place. I have not looking if
there is room for a scanner -> coreclear, but the beginner hill is not for
beginners.

I'm not a baby - my warriers belong on the beginner hill, so the babyhill
is not for me but for people who write their first warrior.

Are there too many hills?

--
"The box said 'Windows 95 or better', so I installed Linux"
Make software, not war.


Paul-V Khuong

unread,
Sep 20, 1999, 3:00:00 AM9/20/99
to
Anders Rosendal <qu...@trustme.dk> wrote:
[snip]

> And got a 4. place.
> But on the beginner hill I'm currently on a 19'th
> place. I have not looking if
> there is room for a scanner -> coreclear, but the
> beginner hill is not for
> beginners.
well, i've something that's 25th on the b hill and another one that's
4th...
Oh, and the one that's 25 got first for a while on the b-hill not so
long ago...
So, can we say that the hill changes??
Well, let's see if there's place for a oneshot on the b-hill;look at
all my warriors that are named firemaster.... they're all one-shots...
i've also got a pspacer with a one-shot and a stone... da mutant is a
weird one-shot...
my only non-one-shot warrior on the b-hill is arsonic c ...

> I'm not a baby - my warriers belong on the beginner
> hill, so the babyhill
> is not for me but for people who write their first
> warrior.
Whoa!!! wait! what are you thinking??? the baby hill == for newbies???
it's called baby only bc it's small, iirc...
===
Vive le Québec libre... dé souverainistes!!!

__________________________________________________
Do You Yahoo!?
Bid and sell for free at http://auctions.yahoo.com

John Metcalf

unread,
Sep 20, 1999, 3:00:00 AM9/20/99
to
Greetings...

> I tested it against
> TIME.RED, NOBODY.RED, PAPERONE.RED, MARCIA13.RED, etc.

These are quite old warriors. Try testing against some more
modern warriors. Some of the warriors currently on the '94b
hill are published - e.g. Da Mutant and Neverland II.

> I'm not a baby - my warriers belong on the beginner hill, so the babyhill
> is not for me but for people who write their first warrior.

The baby hill is a hill with a Coresize of 800 rather than 8000. It is
not a newbies hill, but I have seen many beginners' do well on it with
their oneshots. Oneshots also perform well on the multi-warrior hill.

> Are there too many hills?

No, not enough :-(

Regards,

John

Philip Kendall

unread,
Sep 20, 1999, 3:00:00 AM9/20/99
to
In article <StarGate.1999091...@image.dk>, Anders Rosendal
<qu...@trustme.dk> wrote

>
>After seeing that my warrior fell off the hill(Damn it stayed there for a long
>time), I decided that I would make a comeback. Spendt 3-4 hours making a new
>warrior.
>
>I tested it against

>TIME.RED, NOBODY.RED, PAPERONE.RED, MARCIA13.RED, TORNADO.RED, RAVE.RED
>PSWING.RED, THERMITE.RED, FSTORM.RED, CANNON.RED, BLUEFUNK.RED, IRONGATE.RED
>
>And got a 4. place.

Personally I'd think that that set of warriors (Wilkies) is now just too
out of date to be worth testing against. The most obvious omission is p-
space, but in many ways more important is the fact that the warriors
basically aren't booted. A decent one-shot will walk all over the
Wilkies benchmark.

>I'm not a baby - my warriers belong on the beginner hill, so the babyhill
>is not for me but for people who write their first warrior.

At least IMHO, that isn't what the Baby Hill was designed for, as it's
very different from the other main hills as it's only 800 locations in
size. I certainly wouldn't recommend that new players start by playing
on the Baby Hill. (Although keeping your warrior under 20 instructions
is probably a very good idea :-) )

>Are there too many hills?

In the sense that most of them get de facto no traffic, yes.

However, it isn't the case that we have a reasonably large set of
players spread thinly across a large number of Hills; some Hills ('94,
Beginners, No PSpace) get traffic, whilst the rest get none (eg the last
successful challenge to the LP Hill was on 12 June). Therefore removing
all those Hills wouldn't actually improve things, so we may as well
leave them around.

Basically, there just aren't enough players with enough free time :-(

Aside: to whoever posted the 'newbie' question (and anyone else in the
same situation): *Please* keep learning, playing and asking questions
here -- we certainly do want you around!

Phil

--
/ Philip Kendall (pa...@cam.ac.uk pa...@kendalls.demon.co.uk) \
\ http://www.kendalls.demon.co.uk/pak21/corewar/index.html /

Anders Rosendal

unread,
Sep 20, 1999, 3:00:00 AM9/20/99
to
Hello Paul-V!
Monday September 20 1999 10:51, Paul-V Khuong wrote to All:

>> I'm not a baby - my warriers belong on the beginner
>> hill, so the babyhill
>> is not for me but for people who write their first
>> warrior.

> Whoa!!! wait! what are you thinking???

My thinking is fine, my knowledge is not.

> the baby hill == for newbies???
> it's called baby only bc it's small, iirc...

I didn't know of that hill. I propose a really, really baby-beginner-hill.

--
Vær opmærksom på at jeg ikke er i stand til at læse/svare på breve hvis emne
starter med "Sv:"

Robert Macrae

unread,
Sep 20, 1999, 3:00:00 AM9/20/99
to
> I tested it against
> TIME.RED, NOBODY.RED, PAPERONE.RED, MARCIA13.RED, TORNADO.RED,
RAVE.RED
> PSWING.RED, THERMITE.RED, FSTORM.RED, CANNON.RED, BLUEFUNK.RED,
IRONGATE.RED
>
> And got a 4. place.
>
> But on the beginner hill I'm currently on a 19'th place

Any suite of test warriors can give you some ideas. These warriors
were all strong in their time and they cover the obvious types... but
it is deceptively easy to optimise against any given group. Look at
the tournament rounds in which competitors wrote specialists to take
on lists of warriors like this, and you will see scorelines with 70%
or more wins. Oneshots, with the right step sizes, are particularly
good at beating prescribed grey warriors. However, to do well on any
hill you have to do more than just beat a list of known targets. You
have to write a warrior with the robustness and unkillability to
survive against 20 unkown, strong warriors, and, if you aim for the
top, 200 that have not yet been written!

Try testing your warrior against a selection of warriors from the top
of one of the perpetual hills -- Olympus on Koenigstuhl. Seeing how
your warrior performs against opponents you did not use in its design
can be a real education. Use cdb to find out *why* bomber x trashes
you (have you met DAT 1,1 bombs before? Or is it that decoy? Or maybe
it seems immune to your SPL bombs?) when bomber y doesn't, and you
will be able to write a better warrior...

I've tried this many times. Usually I just end up copying bomber x,
but I keep hoping :-)

Robert Macrae


Anders Rosendal

unread,
Sep 21, 1999, 3:00:00 AM9/21/99
to
Hello Philip!
Monday September 20 1999 00:25, Philip Kendall wrote to Anders Rosendal:

>> making a new warrior. I tested it against TIME.RED, NOBODY.RED,


>> PAPERONE.RED, MARCIA13.RED, TORNADO.RED, RAVE.RED PSWING.RED,
>> THERMITE.RED, FSTORM.RED, CANNON.RED, BLUEFUNK.RED, IRONGATE.RED And got a
>> 4. place.

> Personally I'd think that that set of warriors (Wilkies) is now just too
> out of date to be worth testing against.

Have someone put together a new set?

If not: Will the "pro"'s here discuss which warriors should be in it?
(Trying to get some flow :-)

John Metcalf

unread,
Sep 21, 1999, 3:00:00 AM9/21/99
to
Greetings...

> > Personally I'd think that that set of warriors (Wilkies) is now just too
> > out of date to be worth testing against.
> Have someone put together a new set?

There are the Wilbez and Wilmoo sets. The most recent (Wilmoo) has a
page on WWW.KOTH.ORG

> If not: Will the "pro"'s here discuss which warriors should be in it?
> (Trying to get some flow :-)

A new benchmark would be nice. I seem to recall someone posting a
suggested selection of warriors a while back - this would make a good
starting point for discussion. How about a benchmark that is revised
every so often?

Regards,

John


Paul Kline

unread,
Sep 22, 1999, 3:00:00 AM9/22/99
to
John Metcalf wrote:

>A new benchmark would be nice. I seem to recall someone posting a
>suggested selection of warriors a while back - this would make a good
>starting point for discussion. How about a benchmark that is revised
>every so often?

How about everyone just publish the source of their on-hill warriors?

Paul Kline
pk6...@acad.drake.edu

David Matthew Moore

unread,
Sep 22, 1999, 3:00:00 AM9/22/99
to
Paul Kline <pk6...@acad.drake.edu> wrote:

: How about everyone just publish the source of their on-hill warriors?

: Paul Kline
: pk6...@acad.drake.edu


Well ok.

Return of the Fugitive (RotF) is based on an imp-launcher
that I had considered for an '88 version of The Fugitive:

spl 2668, 0
mov -1, 2667
mov 0, 2667

In silk form, this becomes:

spl @0, 2668
mov }-1, >-1
mov.i #0, 2667

Then I added some retin-A bombing and quickscan. The qscan bombs with
a brainwashing pit trap:

stp.ab #xxx, #yyy
djn.f -1, -1

The result is effectively a random brainwash. RotF has a hard time killing
the thing that got trapped in the pit; therefore, a DAT bomb is placed
after the pit. When an imp overwrites the pit, the enemy program
will run into the DAT.

RotF needs to be optimized so that the silk will always kill the pit.
Currently, I have no idea how many of the possible traps are deadly.

I wasn't going to publish RotF until I could optimize the paper
and quickscan. I guess I'll postpone that job. Without further delay,
here is the code:


;redcode-94
;name Return of the Fugitive
;author David Moore
;strategy qscan, silk, imps
;assert 1

factor equ 5020
qA equ 213
qB equ 2792
qC equ 3742
qD equ 6321
qE equ 900
qF equ 2317

;-----------
; quick bomb
;-----------

decode mul.b *2, dest
decide sne {table1, @dest
add.b table2, dest
mov wash, >dest
mov jbomb, >dest
add.ba dest, dest
mov dbomb, *dest
mov dbomb, @dest
dest mov 24, @factor
sub qsub, dest
djn -4, #5
djn.f boot, #0

wash stp.ab #qF+117, #qF
jbomb djn.f -1, -1
dbomb dat {-1, <11

;-----------
; quick scan
;-----------

qscan seq dest+factor, dest+factor+qD
qsub jmp decide, 23 ; jmp -15, 23

sne dest+factor*qE, dest+factor*qE+qE
seq <table2+1, dest+factor*(qE-1)+(qE-1)
jmp decode, }decode+2

sne dest+factor*qF, dest+factor*qF+qD
seq <wash, dest+factor*(qF-1)+qD
jmp decode, }decode

sne dest+factor*qA, dest+factor*qA+qD
seq <table1-1, dest+factor*(qA-1)+qD
djn.a decode, {decode

sne dest+factor*qB, dest+factor*qB+qD
seq <table1, dest+factor*(qB-1)+qD
jmp decode, {decode

sne dest+factor*qC, dest+factor*qC+qC
seq <table2-1, dest+factor*(qC-1)+(qC-1)
jmp decode, {decode+2

seq dest+factor*(qC-2), dest+factor*(qC-2)+(qC-2)
djn decode, {decode+2

sne dest+factor*qD, dest+factor*qD+qD
seq <table2, dest+factor*(qD-1)+(qD-1)
jmp decode, qA

table1 djn.f boot, #qB

for MAXLENGTH-CURLINE-13
dat 0,0
rof

;---------------
; Silk with Imps
;---------------

impy equ 2667
aaa equ 1880
bbb equ 2050
ccc equ 240

boot spl 1, >qC
table2 spl 1, >qD
spl 1, >qE
mov <1, {1
spl ccc+paper+8, paper+8

paper spl @0, >aaa
mov }-1, >-1
spl @0, >bbb
mov }-1, >-1
spl @0, <2668
mov }-1, >-1
mov.i #2*aaa, }-aaa
mov.i #bbb, impy

end qscan

Paul-V Khuong

unread,
Sep 22, 1999, 3:00:00 AM9/22/99
to
Paul Kline <pk6...@acad.drake.edu> wrote:
> How about everyone just publish the source of their
> on-hill warriors?
well, do you mean those on the pro hills???
i've only one warrior that's not published, and it's
on the b hill... it's wild-fire... well, actually,
John Metcalf pasted two of my warriors(well they
originallky were mine 8) and a switch on loss
pspacer... a thing i wouldn't ever dare to do...
;redcode-b
;name Wild-Fire
;author P_.V_.K./John Metcalf
;assert CORESIZE==8000
org s

; -----------------------
; Ulti-Bomber Stone/Clear
; -----------------------

sStep equ 2376
ptr dat 0, 200

for 7
dat 0, 0
rof

stone mov >sStep, 1-sStep
add st, stone
jmz.a stone, >ptr
st spl #sStep, <-sStep
clr mov wipe, >ptr
djn.f clr, >ptr
wipe dat >5335, 1-ptr

for 5+12*2
dat 0, 0
rof

; -------------------
; Fire-Master Oneshot
; -------------------

oStep equ 12
sc dat.f sb, 3+12*5
db dat.f sb-sc, >11
loop add.ab #oStep, sc
fire jmz.f loop , @sc
sb spl #db-sc, >11
clear mov.i *sc, >sc
djn.b clear, <-20

for 4+12*3
dat 0, 0
rof

; --------------
; Switch on Loss
; --------------

str equ 311
s ldp #0, r
ldp #str, s
r sne #0, #0
add #1, s
mod #2, s
stp s, #str
jmn stone, s
jmp fire
end


=====

Ben Ford

unread,
Sep 23, 1999, 3:00:00 AM9/23/99
to
In article <7sar41$q...@ng1.icn.state.ia.us>,

Paul Kline <pk6...@acad.drake.edu> wrote:
> John Metcalf wrote:
> >A new benchmark would be nice. I seem to recall someone posting a
> >suggested selection of warriors a while back - this would make a good
> >starting point for discussion. How about a benchmark that is revised
> >every so often?
>
> How about everyone just publish the source of their on-hill warriors?
>
> Paul Kline
> pk6...@acad.drake.edu

Here is the code for Jade. Its mostly an improved version of the
Stormbringer. I grabbed the improved imp launcher from Baseline Plus
and tweaked the dat bomb to make it slightly stronger (at least it seems
that way), it does help a little bit in that the dat-decrement remains
aligned with the djn-pointer. It also contains my version of q^4. My
version appearently takes up more space than others. I only used a
fraction of the potential scans but if they were all used, the constants
would have to be messed with to avoid collisions. It did benefit from
the switch to b-field imps with the emmergence of nPaper. I figured
someone was going to take advantage of all the a-imps on the hill sooner
or later. There is probably one or two others tweaks in the code that I
don't remember now.

-Ben

;redcode-94 test
;name Jade
;author Ben Ford
;strategy q^4 -> stone/imp
;assert (CORESIZE==8000)

iHOP equ (2667)
iINC equ (-iHOP-1)
iORG equ (spin+630)
iOFF equ (iORG+iINC)

spin spl.b # 0, >pump
sub.f #iINC, jump
pump mov.i impy, iORG-1
jump djn.f iOFF, <-100
dat $ 0, $ 0
impy mov.i # 0, iHOP

for 42
dat $ 0, $ 0
rof

qf equ qptr
qs1 equ 100
qs2 equ 200
qd equ 4000
qi equ 7
qr equ 11
qo equ (qi*qr-10)

dat # 15, # 10 ; A, D
qtab dat # 7, # 4 ; B, E
dat # 13, # 11 ; C, F
qbmb dat < 1, < qo
qinc dat # qd, # qd

qfas mul.f qtab, qptr ; decode
qfnd sne *qptr, @qptr
add qinc, qptr
sne >3456, @qptr
mov.x qptr, qptr
qloo mov qbmb, @qptr ; .5c negative bomber
qptr mov < qs2, @ qs1
sub.x # qi, qptr
djn qloo, # qr
jmp boot, >1234

qscan sne qf+ 1*qs2, qf+ 1*qs1
seq qf+ 1*qs2+qd, qf+ 1*qs1+qd ; 1, 1
jmp qfnd, {qf+ 1*qs2+qd+qi
sne qf+ 8*qs2, qf+ 4*qs1
seq qf+ 8*qs2+qd, qf+ 4*qs1+qd ; B+1, E
jmp qfas, }qtab
sne qf+ 7*qs2, qf+ 5*qs1
seq qf+ 7*qs2+qd, qf+ 5*qs1+qd ; B, E+1
jmp qfas, >qtab
sne qf+ 6*qs2, qf+ 3*qs1
seq qf+ 6*qs2+qd, qf+ 3*qs1+qd ; B-1, E-1
djn.f qfas, qtab
sne qf+13*qs2, qf+11*qs1
seq qf+13*qs2+qd, qf+11*qs1+qd ; C, F
jmp qfas, }qfas
sne qf+15*qs2, qf+10*qs1
seq qf+15*qs2+qd, qf+10*qs1+qd ; A, D
jmp qfas, {qfas
sne qf+14*qs2, qf+ 9*qs1
seq qf+14*qs2+qd, qf+ 9*qs1+qd ; A-1, D-1
djn.f qfas, {qfas

away equ (spin+4846+6)

boot spl spin, #away+rinc-3
mov *rock, @boot
mov {rock, <bptr
mov {rock, <bptr
mov {rock, <bptr
mov {rock, <bptr
mov {rock, <bptr
spl @bptr, <4000
spl @bptr, <4000
bptr djn.f @bptr, #away

rinc equ ( 197)
rclk equ (3500)
roff equ (rdjn-1151)
rorg equ (radd-rinc*rclk)

rock spl # 5, $ 0
spl # 0, <roff
rmov mov rinc, rorg
radd add.ab { 0, } 0
rdjn djn.f rmov, <roff
rbmb dat > -1, } 1
;rbmb dat } 1, > -1

end qscan


Sent via Deja.com http://www.deja.com/
Share what you know. Learn what you don't.

Ben Ford

unread,
Sep 23, 1999, 3:00:00 AM9/23/99
to
In article <7sar41$q...@ng1.icn.state.ia.us>,
Paul Kline <pk6...@acad.drake.edu> wrote:
> How about everyone just publish the source of their on-hill warriors?
>
> Paul Kline
> pk6...@acad.drake.edu

Here is Self-Modifying Code. As the strategy lines indicate, the
components are heavily based on those from Recycled Bits. I did fix a
bug in the scanner which caused it to start with STEP-1 instead of STEP
which causes it to not scan a lot of the core. The scanner also saves
a cycle by using a jmz instead of a nop in the first line. I also
switched to a djn-paper which seemed to score slightly better in tests.
The switching table stayed mostly the same, I think the only change is
to make the paper stay on win.
The biggest change from RB is the brain itself. I meshed the brains
from RB with the brains from P^3. Combined with making all the boot
distances the same, I saved 15 instructions and 1 cycle. SMC only takes
up 75 lines so there is room to go up to 7 components within 100 lines
or pad the current components to stronger stuff with 10 or 11 lines.
The brains shouldn't be too hard to figure out for those fimiliar with
RB and P^3.

-Ben

;redcode-94
;name Self-Modifying Code
;author Ben Ford
;assert (CORESIZE==8000)
;strategy p^3++: silk, rock, scan, burn, wipe
;strategy heavily based on Recycled Bits by David Moore
;strategy improved the brain with ideas from the P^3 switcher
;strategy saved 15 instructions and 1 cycle in brains + tables
;strategy
;strategy v0.1 still tweaking the components

; ----- p^3++ table ----- ; ## L-13 W-14 T-15 type
; -- ---- ---- ---- ----
vect spl # w0, #1106 ; 0 1 0 11 silk
spl # w1, #1486 ; 1 4 2 1 rock
spl # w1, #1067 ; 2 1 3 2 rock
spl # w1, #1263 ; 3 2 3 3 rock
spl # w2, #1489 ; 4 7 5 4 scan
spl # w2, #1070 ; 5 4 6 5 scan
spl # w2, #1266 ; 6 5 6 6 scan
spl # w3, #1170 ; 7 0 8 0 burn
spl # w3, #1073 ; 8 7 9 8 burn
spl # w3, #1074 ; 9 8 10 9 burn
spl # w3, #1270 ; 10 9 10 10 burn
spl # w4, # 446 ; 11 4 12 11 wipe
spl # w4, #1077 ; 12 11 13 12 wipe
spl # w4, #1273 ; 13 12 13 13 wipe
spl # w0, # 911 ; xx 1 1 11
unreachable
pmod spl # 0, # 13 ; lose, need non-0 b-field in prev cell
spl # 0, # 14 ; win
spl # 0, # 15 ; tie

boot equ 1430 ; boot distance
w0 equ (silk-silk)
w1 equ (rock-silk)
w2 equ (scan-silk)
w3 equ (burn-silk)
w4 equ (wipe-silk)

for 8


dat $ 0, $ 0
rof

; ----- silk -----

d1 equ 4496 ; 4496 771 2333 4195
d2 equ 1283 ; 1283 748 1737 6234

silk spl 2, <-1500
spl 1, <-1608
spl 1, <-1716

slk0 spl @ 0, < d1
mov }slk0, >slk0
mov sdat, }3307
mov {slk0, <slk1
slk1 djn.f @ 0, < d2
sdat dat $ 1, $ 1

dat $ 0, $ 0
dat $ 0, $ 0
dat $ 0, $ 0
dat $ 0, $ 0
dat $ 0, $ 0
dat $ 0, $ 0
dat $ 0, $ 0
dat $ 0, $ 0
dat $ 0, $ 0

; ----- wipe -----
; fight 3 point imps and stones which bomb with core

wtop equ (wipe-3) ; hope for dat 0,0 here

wipe spl # -1, wend-wtop
mov *wend, >wtop
mov *wend, >wtop
djn.f -1, {wtop
jmp -2, <wtop-2667

dat # 0, wend-wtop-1
dat <5334, <2667 ; 2nd pass
spl # -2, wend-wtop ; 1st pass bomb
wend spl #wipe, wend-wtop

dat $ 0, $ 0

; ----- burn -----

binc equ 2394 ; 2394 7629 7036
bhop equ 7953 ; 7953 7965 7969
bclk equ 1378 ; 1378 1427 1323
bptr equ 3 ; 3 4 3
borg equ (2-binc*bclk)

burn spl # 1, bhop ; spl half of the incendiary
add #binc, 1
mov bmov, >borg
mov burn, @ -1
jmz -3, # 0 ; bombed with spl to start clear
mov bdat, >burn-bptr
djn.f -1, >burn-bptr
bdat dat <2667, 2+bptr-burn
bmov mov -bhop, >-bhop ; mov half of the incendiary

; ----- scan -----

sinc equ 5393 ; 5397 5393
slen equ (sbmb-scan+3)

scan jmz.f sjmp, 5000
smov mov sbmb, >scan
sadd add #sinc, #sinc
sjmp jmz.f smov, @sadd
slt.b sadd, #slen
mov.b sadd, scan
jmn smov, sadd
jmp smov, }smov
sbmb spl # 0, { 0

; ----- rock -----

rinc equ 81
rhop equ 5277+1
rclk equ 1677
rorg equ rinc*rclk+1

rock spl # 0, <rhop+1
rptr mov rbmb, <rorg
mov rbmb, @rptr
sub #rinc, rptr
djn.f rptr, <rhop-3


dat $ 0, $ 0
dat $ 0, $ 0
dat $ 0, $ 0

rbmb dat < 1, <rhop

dat $ 0, $ 0
dat $ 0, $ 0
dat $ 0, $ 0
dat $ 0, $ 0

; ----- p^3++ brain -----

PKEY equ 1 ; not really
SIZE equ 9

main ldp.a # 0, pmod
ldp.a #PKEY, vect
mod.ba *pmod, vect
stp.b *vect, #PKEY
add.ab *vect, last

for SIZE
mov <last, {last
rof

last djn.f boot, #silk+SIZE

end main

Ben Ford

unread,
Sep 23, 1999, 3:00:00 AM9/23/99
to
In article <7sar41$q...@ng1.icn.state.ia.us>,
Paul Kline <pk6...@acad.drake.edu> wrote:
> How about everyone just publish the source of their on-hill warriors?
>
> Paul Kline
> pk6...@acad.drake.edu

Here is Draken Fire. Nothing really special about it, it looks like it
is going to be falling off the hill soon anyways. The incendiary is
based off of Stranger by John Metcalf.

;redcode-94 test
;name draken
;author Ben Ford
;strategy q^3 -> incendiary bomber
;assert CORESIZE==8000

bdst equ (ib+4000+10)

boot mov <bptr, {bptr
mov <bptr, {bptr
mov <bptr, {bptr
mov <bptr, {bptr
mov <bptr, {bptr
mov <bptr, {bptr
mov <bptr, {bptr
mov <bptr, {bptr
mov <bptr, {bptr
bptr djn.f bdst, #bom+1

step equ 4104
dist equ 3773
gate equ (ib-4)

ib spl #1000, 1-dist
loop mov ib, @gunk+step-dist
mov ia, @loop
add #step, loop
gunk jmp loop, >ia+dist
clr mov bom, >gate
djn.f clr, >gate
ia mov dist, >dist
bom dat >2667, >13

for 24


dat $ 0, $ 0
rof

qf equ qptr
qs equ 100
qd equ (4000-1)


qi equ 7
qr equ 11

dat < 15, < 10 ; A,D
qtab dat < 7, < 4 ; B,E
dat < 13, < 11 ; C,F
qbmb dat { 1, {qi*qr-10

; -+)>] 0/1 cycles [(<+-

qscan seq qd+qf+qs, qf+qs ; 1
jmp qSki, {qd+qf+qs+qi
seq qd+qf+7*qs, qf+7*qs ; B
jmp qfast, {qd+qf+7*qs+qi
seq qd+qf+15*qs, qf+15*qs ; A
jmp qfast, {qfast
seq qd+qf+14*qs, qf+14*qs ; A-1
djn.a qfast, {qfast
seq qd+qf+6*qs, qf+6*qs ; B-1
jmp qfast, {qtab
seq qd+qf+13*qs, qf+13*qs ; C
jmp qfast, }qfast
seq qd+qf+8*qs, qf+8*qs ; B+1
jmp qfast, }qtab

; -+>)] 2 cycles [(<+-

seq qd+qf+9*qs, qf+9*qs ; D-1
djn.b >qfast, {qslow
seq qd+qf+18*qs, qf+18*qs ; (B-1)*(E-1)
djn.f qslow, qtab
seq qd+qf+52*qs, qf+52*qs ; C*E
jmp qslow, }qfast
seq qd+qf+66*qs, qf+66*qs ; (B-1)*F
djn.a qslow, }qslow
seq qd+qf+10*qs, qf+10*qs ; D
jmp >qfast, {qslow
seq qd+qf+32*qs, qf+32*qs ; (B+1)*E
jmp qslow, }qtab
seq qd+qf+11*qs, qf+11*qs ; F
jmp >qfast, }qslow
seq qd+qf+21*qs, qf+21*qs ; B*(E-1)
jmp qslow, <qtab
seq qd+qf+60*qs, qf+60*qs ; A*E
jmp qslow, {qfast
seq qd+qf+35*qs, qf+35*qs ; B*(E+1)
jmp qslow, >qtab
seq qd+qf+24*qs, qf+24*qs ; (B-1)*E
jmp qslow, {qtab
seq qd+qf+39*qs, qf+39*qs ; C*(E-1)
djn.b qslow, }qfast
seq qd+qf+56*qs, qf+56*qs ; (A-1)*E
djn.a qslow, {qfast
seq qd+qf+3*qs, qf+3*qs ; E-1
jmp >qfast, <qtab
; seq qd+qf+63*qs, qf+63*qs ; B*(D-1)
; djn.b qslow, {qslow
; seq qd+qf+5*qs, qf+5*qs ; E+1
; jmp >qfast, >qtab
; seq qd+qf+70*qs, qf+70*qs ; B*D
; jmp qslow, {qslow
; seq qd+qf+77*qs, qf+77*qs ; B*F
; jmp qslow, }qslow
; seq qd+qf+4*qs, qf+4*qs ; E
; jmp >qfast, {qd+qf+4*qs+qi
sne qd+qf+28*qs, qf+28*qs ; B*E
qend jmz boot, qd+qf+28*qs-10

qslow mul.b qtab, qptr ; decode
qfast mul.ab qtab, @qslow
qSki sne >3456, @qptr
add #qd, qptr
qloop mov qbmb, @qptr ; .5c negative bomber
qptr mov qbmb, @qs
sub #qi, qptr
djn qloop, #qr
jmp *qend, <1234

end qscan

0 new messages