Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 33

Article 1613 of rec.games.

corewar:
Newsgroups: rec.games.corewar
From: adb2y@faraday.clas.Virginia.EDU (Allen David Boozer)
Subject: Newbie questions!
Message-ID: <1993Feb9.210801.22688@murdoch.acc.Virginia.EDU>
Sender: usenet@murdoch.acc.Virginia.EDU
Organization: University of Virginia
Date: Tue, 9 Feb 1993 21:08:01 GMT
Lines: 125

Hi, all! I just started playing with Core Wars a few days ago. I
have a few newbie questions:

1) The best corewars simulator I have found so far is Corewar Pro 3.0.
Is this what you all use?

2) Here the latest verion of my first serious warrior:

---- Cut Here ----


;redcode
;name Split-pit
;author David Boozer
;Strategy Bomb core with JMP's to a "pit", then clear the core. Pit
;Strategy causes opponent to clear core forwards, while clear core
;Strategy routine clears core backwards.

loop: mov ptr, @ptr ; Bomb core with JMP instructions


sub info, ptr
djn loop, #421
mov #421, -1
djn -3, #6
jmp clear ; Clear the core with DAT's
dat #0 ; 0's used to hide from scanners
dat #0
dat #0
dat #0
dat #0
ptr jmp trap, #0 ; JMP instruction used to bomb core
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
info mov #-19, <19 ; Spacing of bombs
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
clear mov dat0, <index ; Clear out the core, moving backwards
jmp clear
dat0 dat #-3 ; Clear routine will overwrite it's own index,
index dat #-3 ; thus preventing it from bombing itself
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
trap spl 0, #0 ; "Pit" in which opponent is trapped
mov dat0, @3 ; Clear out the core, moving forwards
add #1, 2
jmp trap, #0
dat #1
end loop
---- Cut Here ----

This program does pretty well against all the warriors I have, but when
I submitted it to Koth it didn't do so well (overall score = 80). It
seemed to do okay against most of the programs, but it had a particular
weakness for programs which used an "imp spiral" (ie. Impris 5.0, Sphinx
v2.8, and Stormbringer). Also, it did poorly agains three programs which
didn't have ;Strategy lines - It, Night, and Chimera. I am a bit fuzzy on
the concept of an imp spiral - as I understand it, an imp ring distributes
several imps throughout the core, so they "spiral" forwards, and contain
some anti-imp code to keep from wiping themselves out. Is this how they
work? Also, where can I get some code which uses this strategy? I would
like to improve my program so it can perform well agains imp rings, but
it would be much easier if I could actually see the code in action on my
own machine. Any other tips/suggestions for improving my program?

3) One idea I had would be to provide an option on Koth where a programmer


could allow his code to be downloaded by others. This would allow
people to figure out how it works + write a program capable of defeating
it. This would probably encourage a greater variety of code.

4) Where can I find archives of Rec.games.corewars?

Thanks for your help!

David Boozer (adb2y@faraday.clas.virginia.edu)

Article 1615 of rec.games.corewar:


Newsgroups: rec.games.corewar
From: pk6811s@acad.drake.edu
Subject: Charon v8.1
Message-ID: <1993Feb11.095117.1@acad.drake.edu>
Lines: 134
Sender: news@dunix.drake.edu (USENET News System)
Nntp-Posting-Host: acad.drake.edu
Organization: Drake University, Des Moines, Iowa, USA
Date: Thu, 11 Feb 1993 15:51:17 GMT

Sefan and I (and Jules in a posthumous kind of way) would like to present:

;redcode
;name Charon v8.1
;kill Charon
;author Cisek,Strack,Kline
;strategy creation date 4/22/92
;strategy v2.0 4/22/92 total code overhaul
;strategy mod 3 cmp scan with optimal step, new deadly trap (SPL 0, JMP -1)
;strategy v3.0 5/3/92 integrated with Stefan Strack's Echo (much smaller)
;strategy v4.0 5/8/92 [pretty much a failure]
;strategy v5.0 5/12/92 same as 3.0, new clear core routine
;strategy v6.0 6/11/92 finally moved off axis (v5.0 was getting slaughtered
;strategy by programs copied across the axis)
;strategy v7.0 7/6/92 2 instructions smaller, different constants,
;strategy linear decrement triggers clear core.
;strategy [no longer hits itself to start clear core]
;strategy v8.0 12/22/92 now forward-scans for an extended time
;strategy using step-size that kills slow-moving imps
;strategy also protecting 3 lines against decrement
;strategy v8.1 1/25/93 new step-constants
;strategy Charon is the >original< spl/jmp bombing cmp scanner.
;strategy It scans using an off-axis CMP-scan, bombs with the spl/jmp
;strategy combination (thus slowing the enemy down), and eventually
;strategy clears the core with dats.
;strategy Submitted: @date@

STEP equ 68 ;scan constants:


DIST equ 34 ;small, so can be reused in core clear
DJNOFF equ decr-DIST
FIRST equ DJNOFF+149 ;optimal offset to DJN train

attack add switch,@compptr ;switch A- and B-fields


mov jump,@comp
compptr mov split,<comp
scan add incr,@compptr
comp cmp FIRST-DIST,FIRST ;start executing here
slt #incr-attack+DIST+1,@compptr ;don't hit self
decr djn scan,<DJNOFF ;countdown to clear
jmz attack,0 ;enter clear when this is decremented
split spl 0,<2667 ;clear core
switch mov @0-DIST,<1-DIST
jump jmp -1,<2667
incr dat #STEP,#STEP

end comp
********************************************************************

Charon is a spl-jmp bombing cmp-scanner. It is the only scanner


on the Hill that relies completely on scanning/stunning/clearing
to win. * IT DOES NOT USE A GATE *. Version 7 should be very
familiar to anyone who has been playing KotH for any time, it was in
the top 10 Koth warriors through Summer and early Fall, 1992. But
when Anders Ivner resurrected the imp, Charon (and everything else)
was clobbered. The search was on for a way to defeat imps. Gates
provided an early defense, though a non-aggresive one. But adding
a gate to Charon seemed to make it too large to be successful.

After studying many battles between Charon and Imprimis (and others)
I finally realized something useful. Charon was usually able to
stun at least one process in Imprimis to slow it down as desired,
before entering clear mode. But the clear was not fast enough to erase
all three imp-streams and they would refresh each other. If Charon
could only scan all of the streams before they had time to refresh,
they would be destroyed. Since the spacing between the imps is
known (2667) Charon would have to scan N and N+2667 to kill them.
But because Imprimis was slowed down by the spl-jmp bomb, there
could be a lot of time between scanning N and N+2667.

So I began searching for a near-optimal scan step that would scan


N and N+2667 within a few hundred cycles - it turns out there are
quite a few steps that can be used. And all of them kill imps
given enough time - which became the next problem. This approach
requires a very long scan time to insure that all three streams
are covered successfully. The major changes from version 7
to version 8 of Charon were made to enable an extended scanning
time. Charon was changed to forward-scan and now attacks the
cmp's a-field location. This allows the slt check to protect the
djn-pointer which is now located just ahead of 'scan'. Without
this protection, the djn-pointer would be self-attacked and
Charon would never come out of scan mode.

The unfortunate side-effect of forward-scanning was that the jmp


instruction which did double-duty in version 7, had to be split
into two jmp instructions, making Charon v8.0 twelve lines long
instead of eleven.

The code above shows a DIST of 34 which really is an imp-killing


step that is one of the under-100 optimal pattern numbers. However,
because there is a warrior on the Hill with a reflection at 34,
the real Charon is using another value. If you are a scanner-author,
you want to think seriously before revealing your step-size. I
used reflections last Summer against Charon and No Mucking About,
and can assure you that they are deadly. Even having just one or
two opponents on the Hill which are protected against you will cause
you to lose a lot of points. (I am not using reflections against
Charon v8.0 in any of my fighters)

The spl 0 and jmp -1 instructions were enhanced with the <2667 b-field,
to enlist the imps help in destroying one another. Also, three
lines are protected against decrements through the use of '@compptr'.
If you can protect yourself against decrements like this, you will
do better against any warrior using a stone-type bomber - which I
think includes all the imp-warriors as well as some others.

There were some other things I tried, but Stefan convinced me they
were too inelegant (read 'ugly'), so they were dropped :)

I thank Jules and Sefan for allowing me to become a part of Charon's


long and successful history. May Jules soon be restored to the net!

********************************************************************
For anyone who doesn't have a copy of Charon v7.0:

STEP equ 68 ;scan constants:


DIST equ 34 ;small, so can be reused in core clear
FIRST equ comp-(STEP*93) ;determines duration of scan

scan add incr,comp


comp cmp FIRST-DIST,FIRST
slt #incr-comp+DIST+1,comp ;don't hit self (and in shadow)
djn scan,<-5 ;mutagenize/distract/count-down to clear
mov jump,@comp
mov split,<comp
add switch,comp ;switch A- and B-fields
jump jmz @-1,0 ;continue if not decremented, else
split spl 0,0 ;clear core
switch mov @0-DIST,<1-DIST
incr dat #0-STEP,#0-STEP

********************************************************************

Paul Kline
pk6811s@acad.drake.edu

Article 1617 of rec.games.corewar:


Newsgroups: rec.games.corewar
From: stst@vuse.vanderbilt.edu (Stefan Strack)
Subject: Re: Charon v8.1
Message-ID: <C2Atxv.MMM@vuse.vanderbilt.edu>
Sender: news@vuse.vanderbilt.edu
Nntp-Posting-Host: necs
Organization: Vanderbilt University School of Engineering, Nashville, TN, USA
References: <1993Feb11.095117.1@acad.drake.edu>
Date: Thu, 11 Feb 1993 19:25:07 GMT
Lines: 35
Newsgroups: rec.games.corewar
Subject: Re: Charon v8.1
Summary:
Expires:
References: <1993Feb11.095117.1@acad.drake.edu>
Sender:
Followup-To:
Distribution:
Organization: Vanderbilt University School of Engineering, Nashville, TN, USA
Keywords:

In article <1993Feb11.095117.1@acad.drake.edu> pk6811s@acad.drake.edu writes:


>Sefan and I (and Jules in a posthumous kind of way) would like to present:
>
>;redcode
>;name Charon v8.1
>
>Charon is a spl-jmp bombing cmp-scanner. It is the only scanner
>on the Hill that relies completely on scanning/stunning/clearing
>to win. * IT DOES NOT USE A GATE *.

Well, Agony 3.1 uses the same principle and actually goes one step further:
Charon v8.1 needs a <2667 in the B-field of its SPL/JMP bomb to muck up imps,
whereas Agony clobbers them with a straight SPL 0,0 carpet (code soon).

>For anyone who doesn't have a copy of Charon v7.0:


> [..]
> djn scan,<-5 ;mutagenize/distract/count-down to clear

This must be an early test version of Paul's (which doesn't work BTW).
The real Charon v7.0 has
djn scan,<FIRST+189

Cheers, Stefan (stst@vuse.vanderbilt.edu)


^

Article 1616 of rec.games.corewar:


Newsgroups: rec.games.corewar
From: pk6811s@acad.drake.edu
Subject: Pittrappers, Antivamp & Newscan
Message-ID: <1993Feb11.095309.1@acad.drake.edu>
Lines: 68
Sender: news@dunix.drake.edu (USENET News System)
Nntp-Posting-Host: acad.drake.edu
Organization: Drake University, Des Moines, Iowa, USA
Date: Thu, 11 Feb 1993 15:53:09 GMT

Here are a couple of warriors that I don't believe I have published before.
Neither was successful on the Hill, but both illustrate some interesting
principles.

The first is Antivamp, which traces pit-trap snares back to their source.
It is very effective against Sucker 4 and Twilight Pits, but otherwise
a dud. But I have included the technique in Imprimis, Emerald, and Eeek
to get some cheap points against S4 and TP.
The second is Newscan, which is a wacky, cmp-scanning pit-trapper. Newscan
uses a non-fixed distance between the a and b-fields of the cmp and
cannot be defended against by reflections.

Unlike the Charon and Agony-based cmp-scanners, which use 'cmp a,a+dist',
Newscan uses 'cmp a,-a'. It first attacks the b-field location by
moving a template jmp statement (jmp 3,0) and adding the cmp instruction
to it. Then it attacks the a-field location by moving a different
template jmp statement to a safe place, subtracting the cmp instruction
from it, and moving that to wherever it then points. While Sucker 4 attacks
one location every 3 instructions, Newscan searches 2 locations in every 3
and is therefore twice as fast. It also does not leave as many useless
snares in core and can't be tracked back as easily by Antivamp.
Unfortunately, Newscan is so large that it is spotted first by all the
other cmp-scanners, and has a hard time against S4 and TP because of
their very small size.

;redcode quiet
;name Antivamp
;kill Antivamp
;author P.Kline
;strategy traces snares back to pit-trappers
avamp mov -2,<-10
sub @avamp,<avamp
jmp avamp

;redcode quiet
;name Newscan
;kill Newscan
;author P.Kline
;strategy cmp-scanning pit-trapper
step equ 3364
snare2 equ trap+30-6

trap spl 0
clear mov bomb,100
add #2667,clear
loop jmp trap,scan-snare2-6
bomb dat #0

next sub inc,@scanptr


scan cmp loop,loop
slt #20,@scanptr
jmp next

attack mov snare,@scan


scanptr add scan,@scan
mov loop,@snarptr
sub scan,@snarptr
slt #-70,snare2
snarptr mov snare2,@snare2
jmp next
inc dat #0-step,#step
snare jmp 3
end next

Paul Kline
pk6811s@acad.drake.edu
Article 1634 of rec.games.corewar:
Newsgroups: rec.games.corewar
From: estorman@uceng.uc.edu (Ernest Stormann)
Subject: newbie
Message-ID: <C2LwAu.7H1@uceng.uc.edu>
Organization: University of Cincinnati
Distribution: rec.games.corewar
Date: Wed, 17 Feb 1993 18:49:41 GMT
Lines: 11

Hello. Granted....I am a newbie, but I'm having immense trouble getting a


warrior programmed. Is there any other tutorials besides the one on Soda?
I would immensely appreciate any mail or postings. So far, I have a warrior
that sits there....and sits, and sits.....and yes, just plain sits again.

-Randall Flagg-
--

-------------------------------------------------------------------------
| "I'm not dead, I'm metaphysically challenged." estorman@uceng.uc.edu|
| =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= |

Article 1635 of rec.games.corewar:


Newsgroups: rec.games.corewar
From: pk6811s@acad.drake.edu
Subject: Re: core war tutorial WANTED
Message-ID: <1993Feb18.112549.1@acad.drake.edu>
Lines: 152
Sender: news@dunix.drake.edu (USENET News System)
Nntp-Posting-Host: acad.drake.edu
Organization: Drake University, Des Moines, Iowa, USA
References: <1993Feb15.070307.11381@ucc.su.OZ.AU>
Date: Thu, 18 Feb 1993 17:25:49 GMT

In article <..> andy@extro.ucc.su.OZ.AU (Andrew Miehs) writes:


> I'm looking for a good tutorial on core war STRATEGY. I have read plenty
> on how to program Redcode, but it doesn't give any hints as to how to program
> _successfully_. Have any of the big-time players taken the time out to
> write such a document? It'd be quite helpful for us newbies.
>
Gee, success seems to be so transient, how about hearing from
someone who is just having FUN? :)

Writing successful Redcode is a lot like writing successful poetry - you have
to write volumes of stuff before you get anything good. You also have to
read a lot; read and study every warrior you can find including the old
ones. A lot of problems have been addressed and solved in the past, like
imps and imp-gates. Then you have to watch hours of battles, preferably
on an emulator with a core-display where you can see everything that's
happening. Play pairs of warriors against each other dozens of times
until you completely understand why one beats (or can't beat) the other.
Then speculate on what change would be necessary to the losing program
to make it more aggressive, or less vulnerable.

You need to understand the strengths of the basic warrior-forms. Among


these are:
bomber - very fast,very small, kills stationary opponents
cmp-scanner - moderately fast, small, kills replicating opponents
b-scanner - very small, kills replicating opponents and larger scanners
replicator - kills bombers, ties imps
imp - difficult to kill, kills single-process opponents, ties a lot
pit-trapper - very small, kills replicators and others as well

All have their weaknesses also - being slower, larger, less aggressive, etc.
These characterizations are subject to change with new developments,
but seem to have held up over time. Some of the successful programs use
combinations of forms to take advantage of their mutual strengths.

It is very important to understand the power of 'magic' numbers. The most


important of these are the optimal-pattern numbers, which efficiently
bomb/scan the core. The ones published for coresize 8000 (by Nandor?) are:
3359 or 3039 mod 1
3094 or 2234 mod 2
3364 or 3044 mod 4
3315 or 2365 mod 5
2936 or 2376 mod 8
2930 or 2430 mod 10
if you need small numbers use:
73 mod 1
98 mod 2
76 mod 4
95 mod 5

If you want to experiment with other numbers, use a short testing program
to see how well they pattern the core:
start mov @start,start
add inc,start
jmp start
inc dat #76

The size of your program is _very_ important, and here's why. A stone
which bombs at 33% of c can hit every 100'th location in 240 cycles,
and every 12'th in 2000. A cmp-scanner can scan them in half the time.
Even if no one is using mod-100 and mod-12 patterns, they are approaching
that kind of speed. If your program is 12 instructions or longer, you
WILL be covered very fast. If your program is less than 12 instructions
you will (sometimes) be missed a bit longer. Note that 12 is an
example only, but somewhere around there is a break-point. If you
can't make your program smaller, you could break it up into components
and hide them around core. One thing that should not be overlooked is
bombs or pointers that you create close to your active code - they
can be attacked by scanners, and the fallout might affect your program.

A useful approach to KotH is targeting a group of existing warriors. If you


can identify a group with a common weakness, you can take advantage. For
example, you might see a lot of cmp-scanners out there. Knowing that
a fast bomber will beat them, you put one together with an optimal
pattern number and a core clear and whammo! you are 20th on the Hill :)
Then someone submits a paper warrior and off you go. Then you look
at the report showing that you got massacred by all the imps and start
thinking about how you can add a gate to your bomber to get a few more
wins. Run a few dozen tests to get it right, post it, and now you
are #18. Unfortunately adding the gate made you enough larger that
the scanners are winning a few more (each!) so it's a tradeoff.

At this point you make a choice to continue enhancing your bomber, or


try something else. Both will be educational but I recommend the bomber
since you have gained 'expertise' in bombing. Try different constants,
research all the bombers you can find, see how they were used in
combination with paper and imps as in Flash Paper, Smooth Noodle Map,
Gamma Paper, Impression, Imprimis, etc. There will be programs that
beat you 80% of the time - why? And is it one program or several that
do that? Do not assume that a variation has been tried by anyone,
and do not be surprised to find out later that it has.

Testing fighters on your own machine is critical. Run lots of tests


and watch them all the way to completion. When you make a change,
do not assume anything about the effect - rerun your tests. Test
against the best fighters you can get your hands on. If your program
has multiple phases (ex: bombing and clearing) what is the effect
of lengthening the first phase? The second? If you have multiple
components, experiment with the spacing between them.

It is very useful (and fun) to communicate with other participants.


Most are helpful and will give advice. Some may not respond, usually
because they have become otherwise-occupied. Feel free to post questions
on rec.games.corewar, like:
My Blasto program doesn't work on the Hill, how come?"
blasto dat #2365
loop mov blasto,1000
add blasto,loop
jmp loop
Thanks in advance for your helpful advice,
Courteous Newcomer

and you will likely get a response like:


Dear courteous, but naive Corewar participant, your Blasto program
fails to work because you need to start the program at 'loop',
not at 'blasto'. Just add the following line at the end:
end loop
Good luck,
Battle-Scarred Veteran

A few thoughts on communicating over the network. Remember that others


do not get what you are 'thinking', only what appears in cold black-and-
white (or green) on their screen. So be courteous, and try not to
take immediate offense at jokes and the like. Use of the smiley and
frowny faces is recommended [ :-) :-( ] for clarifying your
state of mind.

Sooner or later you will be looking at someone else's Great Warrior program,
and have the idea that you can make it even better. If you put
up a test, be sure to include a credit like:
;strategy testing a variation on Great Warrior

Most of the time your change will be harmful instead of helpful, but
if you do succeed you have an obligation to share it with the author
if he's still around. Then he will tell you whether it's ok to put
it up under your name, your combined names, or "thanks for the suggestion,
I will make the change and credit you", or whatever. This is a sensitive
area and other people's (helpful) comments are welcomed, but the point to
remember is to grant credit where credit is due.

You know, there are lots of 'tricks' out there that need to be catalogued
somewhere. I'm thinking of every sort of 'ah-ha' idea that has made
a program successful. Like Gamma Paper's using a very fast mod-8 bomber
to clear out the scanners before replicating, or using predecremental
dat in an imp-gate, or using a spl-zero to grow cycles in a stone.
Maybe we need some articles like 'One Hundred Tricks with Bombers'.
There's a lot of good stuff been published over the years, but no
summation available anywhere.

Anyway, good luck and _welcome_ to all newbies.

Paul Kline
pk6811s@acad.drake.edu

Article 1636 of rec.games.corewar:


From: wangsawm@prism.CS.ORST.EDU (W. Mintardjo)
Newsgroups: rec.games.corewar
Subject: Re: core war tutorial WANTED
Message-ID: <1m1egvINNrd6@flop.ENGR.ORST.EDU>
Date: 19 Feb 93 01:52:31 GMT
Article-I.D.: flop.1m1egvINNrd6
References: <1993Feb15.070307.11381@ucc.su.OZ.AU>
<1993Feb18.112549.1@acad.drake.edu>
Organization: CS Dept, Oregon State University
Lines: 25
NNTP-Posting-Host: prism.cs.orst.edu

pk6811s@acad.drake.edu in article <1993Feb18.112549.1@acad.drake.edu> writes:


----------
| ...
| cmp-scanner - moderately fast, small, kills replicating opponents
| b-scanner - very small, kills replicating opponents and larger scanners
^^^^^^^^^^^^^^^
Actually, B-scanner and CMP-scanner (assuming the true form of larger scanner)
are almost equal in strength. CMP-scanner scans two locations in three steps
(67% c) while B-scanner scans only one locations in two steps (50% c). Also,
most CMP-scanners use DJN stream as part of their scanning which gives them
additional attack + decoy. Both faster scanning and DJN stream compensate
CMP scanner's size when fighting against B-scanner.

| ...
| pit-trapper - very small, kills replacators and others as well

They are better than bombers against replicators. But still, both Sucker 4
and Twilight Pits lose 75% of the time against Note Paper.

| ...
----------

---
Mintardjo W.

Article 1641 of rec.games.corewar:


From: gt7804b@prism.gatech.EDU (Wayne Edward Sheppard)
Newsgroups: rec.games.corewar
Subject: Nothing new yet
Message-ID: <85740@hydra.gatech.EDU>
Date: 20 Feb 93 07:14:36 GMT
Organization: Georgia Institute of Technology
Lines: 38

I was just wondering if anybody has had any new ideas in the
last ten weeks? All I have seen is a couple new imp spirals
and a couple new scanners. BUT THERE HAS BEEN NO NEW IDEAS,
NO NEW DEVELOPMENTS in a long while.

Has Corewars degenerated into the optimum programs? What happened


to the Rock-Paper-Scissor relationship? It seems that paper
has been left out. The Rock programs (Imp Spirals) have eliminated
all of the paper programs. All of the replicators that used to get alot
of points by beating up on Stone are now out of luck.

Is it possible to design a replicator that can take a impspiral out?


But then replicators lose against most scanners
There needs to be some way to break the gridlock.

I still have a post from P.Kline oabout Scanner eradication from last
September. Things sure have changed since then. I remember when Dan
Nabwhatever posted his new 'Empire' program, which scored 195 with
only 1% losses. That shook the hill.

Will I find Corewar boring? Will I get tired of submiting the


same old programs? Will I quit like Hastings did? I hope not.

I would like to encourage everyone to post their code. Maybe someone


can improve it. Maybe someone can be inspired by it. Maybe it will
help new people get into the game, which might spawn new ideas.

I want to know if we have found the perfect warrior, the imp ring.
Is there any program that can beat an imp ring with a win-to-loss
ratio of 7 to 3? If not, we have hit a dead end.

--
Wayne Edward Sheppard
Georgia Institute of Technology, Atlanta Georgia, 30332
uucp: ...!{decvax,hplabs,ncar,purdue,rutgers}!gatech!prism!gt7804b
Internet: gt7804b@prism.gatech.edu

Article 1643 of rec.games.corewar:


From: durham@cup.portal.com (Mark Allen Durham)
Newsgroups: rec.games.corewar
Subject: Reply for Kuck
Message-ID: <76100@cup.portal.com>
Date: Sat, 20 Feb 93 09:10:58 PST
Organization: The Portal System (TM)
Lines: 25

Note: This is in reply to a post by Norbert Kuck


(stud2@aifb.uni-karslruhe.de), but I was unable to reach him via the
posted address. Since the answer to his question is probably of general
interest anyway, I decided to post it. The question was, "What is the
stone-scissors-paper analogy?"

The stone-scissors-paper analogy has to do with a decision game called


"Paper-Scissors-Stone" much like "Evens & Odds". The game is played by
two people. On the count of three, each player reveals their choice
between paper or scissors or stone through the use of hand signs. Paper
is indicated by an open hand, stone by a closed hand, and scissors by
extension of the index and middle fingers, separated to look like a pair
of scissors. Stone beats scissors (because you can crush scissors with
a stone) beats paper (because scissors cut paper) beats stone (because
paper can wrap around stone). [In "Evens & Odds", players reveal either
one or two extended fingers. If the sum of the extended fingers is even,
the player with Evens "wins".]

The reference in Core War to paper-scissors-stone is due to someone's


demonstration (sorry, I forget whom) that there are (at least) three classes
of programs which demonstrate cyclical superiority similar to that found in
the decision game.

Mark A. Durham
durham@cup.portal.com

Article 1644 of rec.games.corewar:


Newsgroups: rec.games.corewar
From: ivner@lysator.liu.se (Anders Ivner)
Subject: Re: Nothing new yet
In-Reply-To: gt7804b@prism.gatech.EDU's message of 20 Feb 93 07:14:36 GMT
Message-ID: <IVNER.93Feb20201220@robert.lysator.liu.se>
Sender: news@lysator.liu.se
Organization: Lysator Computer Society, Link|ping University, Sweden
References: <85740@hydra.gatech.EDU>
Date: Sat, 20 Feb 1993 19:12:20 GMT
Lines: 86

In article <85740@hydra.gatech.EDU> gt7804b@prism.gatech.EDU (Wayne Edward


Sheppard) writes:

I still have a post from P.Kline oabout Scanner eradication from last
September. Things sure have changed since then. I remember when Dan
Nabwhatever posted his new 'Empire' program, which scored 195 with
only 1% losses. That shook the hill.

I think you've confused the facts a bit here...


Dan Nabutovsky's program was called 'Impossible', and was in fact an
improved version of 'Impire' which had conquered the hill one week earlier.

I would like to encourage everyone to post their code. Maybe someone


can improve it. Maybe someone can be inspired by it. Maybe it will
help new people get into the game, which might spawn new ideas.

Ok, so here goes: first an idea I've been having for awhile, but not quite
managed to implement.

loop add const, scan


scan mov <a, <b
jmz loop, <scan

This should work as both an emerald-like bomber and a cmp-scanner, since


something would be found if:
1) the b-fields of both b and b-1 is non-zero.
or
2) the b-field of the effective address of "<a" is non-zero, which would
indicate that "a", too, is worth bombing.

The drawback of this technique is, ofcource, it's tendency to suicide.

Now for a more sucessful attempt of mine: Herem II, possibly the most
effective bomber on the hill nowadays(?) (somewhere around 15-20th place :-)
I've submitted it to the first rounds in the valentine tournament,
desperately hoping to meet a scanner...

When emerald-type stones in fact only bomb the core at 67% of c (not
counting the djn-stream), Herem achieves 75% of c, and that including
_two_ non-decrement bombs (one spl 0 and one dat 0).

;redcode
;name Herem II
;author Anders Ivner

step equ 2376

boot mov <spt, <dpt


mov <spt, <dpt
mov <spt, <dpt
mov <spt, <dpt
mov <spt, <dpt
mov <spt, <dpt

mov const, const+4008


mov glue, glue+4012
mov gate, gate+4016

spt jmp @dpt, const


dpt dat #const+4000

start add const+8, pt


mov glue+12, @pt
pt mov <4003, @1
djn start, <-100
mov gate+16, <-10
jmp -2

const dat #step, #step


glue spl 0, <-20
gate dat <-22, <-21

dat #1
dat #1
[ Huge decoy removed to save bandwidth ]
end boot

--
Wayne Edward Sheppard
Georgia Institute of Technology, Atlanta Georgia, 30332
uucp: ...!{decvax,hplabs,ncar,purdue,rutgers}!gatech!prism!gt7804b
Internet: gt7804b@prism.gatech.edu

Anders Ivner
d91andiv@und.ida.liu.se

Article 1647 of rec.games.corewar:


Newsgroups: rec.games.corewar
Subject: Re: Nothing new yet
Message-ID: <1993Feb21.192009.29588@wisipc.weizmann.ac.il>
From: fedimit@wisipc.weizmann.ac.il (Dan Nabutovsky)
Date: Sun, 21 Feb 1993 19:20:09 GMT
References: <1993Feb21.165806.28483@wisipc.weizmann.ac.il>
Organization: Weizmann Institute of Science, Computation Center
Lines: 13

In article <85740@hydra.gatech.EDU> gt7804b@prism.gatech.EDU (Wayne Edward


Sheppard) writes:
>
> I still have a post from P.Kline oabout Scanner eradication from last
> September. Things sure have changed since then. I remember when Dan
> Nabwhatever posted his new 'Empire' program, which scored 195 with
> only 1% losses. That shook the hill.
>
First imp ring, IMPire, was posted by Anders Ivner, not by me.
It loosed about 8% of games and got ~180 points. Only then I posted my
programs Impossible (first imp spiral) and Impressive. One of them
scored ~187 with 1% losses, other scored ~195 with 2% losses.

Dan Nabwhatever. :->

Article 1649 of rec.games.corewar:


Newsgroups: rec.games.corewar
From: pk6811s@acad.drake.edu
Subject: Re: Nothing new yet
Message-ID: <1993Feb22.084906.1@acad.drake.edu>
Lines: 113
Sender: news@dunix.drake.edu (USENET News System)
Nntp-Posting-Host: acad.drake.edu
Organization: Drake University, Des Moines, Iowa, USA
References: <85740@hydra.gatech.EDU> <IVNER.93Feb20201220@robert.lysator.liu.se>
Date: Mon, 22 Feb 1993 14:49:06 GMT

In article <...> ivner@lysator.liu.se (Anders Ivner) writes:


>
> loop add const, scan
> scan mov <a, <b
> jmz loop, <scan
>
> This should work as both an emerald-like bomber and a cmp-scanner, since
> something would be found if:
> 1) the b-fields of both b and b-1 is non-zero.
> or
> 2) the b-field of the effective address of "<a" is non-zero, which would
> indicate that "a", too, is worth bombing.
>

Along a similar line is this bomber-scanner called T.Rex. In T.Rex there


is a bombing component (line 'stone') into which I drop 2 processes.
Note there is no jmp so stone does not grow additional processes. That
is to allow the 'scan' component to check the location about-to-be-bombed
every 4th or 8th (I can't remember) bomb, just before it is bombed.
If the about-to-be-bombed b-field is a 2667-imp, then back up the bomber (it
will have advanced past that point now) and change it's increment to 2667.
At the same time release some fast replicators. T.Rex works well if
the imps are 2667-imps AND they have had time to leave trails of more
than a few locations, one or both of which assumptions does not seem
to hold on the Hill very much. Also, T.Rex is somewhat of a slow bomber,
since one-fourth of the processes in 'stone' are dying at 'dat1' and
one additional process is in the scan loop. It does bail out of the scan
process after 150 scans.

;redcode quiet
;name T.Rex
;kill T.Rex
;author P.Kline
;strategy stone-paper with a lookout for imps
;strategy added anti-vamp code
step equ 2376
boot equ 2000
imp equ 2667
start spl scan,1
; spl 1,1
spl 1,1
mov <copyf1,<copyt1
mov <copyf1,<copyt1
copyt1 jmp @0,copyf1+boot

stone spl 0,#step


add stone,bomb
bomb mov dat1,nobomb-boot
dat1 dat <0,<-3000
copyf1 dat #0

scan cmp imp1,@bomb+boot


djn scan,#150
mov #imp,@stptr
sub #(step*4)+2,@bmptr
spl s2paper,2300
jmp s1paper,4400

nobomb dat #1000

s1paper spl p4,stone+boot


stptr spl p3,stone+boot
spl p2,bomb+boot
bmptr spl p1,bomb+boot
spl 0,5500
avamp1 mov 2,<-500
sub @avamp1,<avamp1
dat #0
p1 mov #8,0
mov <-1,<2
jmn -1,-2
spl @0,3031
add #187,-1
jmz -5,-5
mov 0,-4
dat #1
p2 mov #8,0
mov <-1,<2
jmn -1,-2
spl @0,3131
add #287,-1
jmz -5,-5
mov 0,-4
dat #1
p3 mov #8,0
mov <-1,<2
jmn -1,-2
spl @0,3231
add #387,-1
jmz -5,-5
mov 0,-4
dat #1
p4 mov #8,0
mov <-1,<2
jmn -1,-2
spl @0,3531
add #487,-1
jmz -5,-5
mov 0,-4
dat #1
s2paper spl p8,<-500
spl p7,<-750
spl p6,<-1000
spl p5,<-1500
spl 0,5500
avamp2 mov 2,<-4500
sub @avamp2,<avamp2
dat #0
p5 . . . p6,p7,p8
imp1 mov 0,imp

Paul Kline
pk6811s@acad.drake.edu

Article 1650 of rec.games.corewar:


From: gt7804b@prism.gatech.EDU (Wayne Edward Sheppard)
Newsgroups: rec.games.corewar
Subject: Another scanner
Message-ID: <86155@hydra.gatech.EDU>
Date: 23 Feb 93 08:11:19 GMT
Organization: Georgia Institute of Technology
Lines: 39

Here is an interesting cmp-scanner that has two coreclears!


he two coreclears are needed against impspirals. After
a small (compared to Charon 8.1) scanning time, the core
is blanketed with spl 0. The offset for this coreclear is
381. 381=8001/(7*3) is the optimal coreclear for 3 and 7 point rings.
This should write over the ring completely. Now all it has to do
is a dat coreclear.

I was able to get it down to 14 lines, and all of the major bugs
are out. But it doesn't look like the double coreclear is worth
the extra lines.
;redcode
;strategy Basic spl/jmp cmp scanner
;strategy with TWO coreclears
;strategy first coreclear spl 0 at offset of 381=8001/(7*3)
;strategy second coreclear dat 0
;strategy Problem : Two lines larger that Charon 8
add off,1
loc cmp 1,50
slt #20,-1
djn -3,<1499
mov j,@loc
dec mov s,<loc
add new,@dec
jmz -6,#0
mov s,7+381
add #381,0
j djn @-1,#6900
s spl 0
new mov -49,<-48
off dat <-98,<-98

--
Wayne Edward Sheppard
Georgia Institute of Technology, Atlanta Georgia, 30332
uucp: ...!{decvax,hplabs,ncar,purdue,rutgers}!gatech!prism!gt7804b
Internet: gt7804b@prism.gatech.edu

Article 1651 of rec.games.corewar:


Newsgroups: rec.games.corewar
From: andy@extro.ucc.su.OZ.AU (Andrew Miehs)
Subject: Newbie questions about strategy
Message-ID: <1993Feb25.055842.12548@ucc.su.OZ.AU>
Sender: news@ucc.su.OZ.AU
Nntp-Posting-Host: extro.ucc.su.oz.au
Organization: Sydney University Computing Service, Sydney, NSW, Australia
Date: Thu, 25 Feb 1993 05:58:42 GMT
Lines: 28

hi guys,

first of all i want to thank paul kline for that fabulous strategy posting,
a few more by other authors could make a collection well worth archiving.

and now, i want to bounce some ideas off you. i have a kinda new idea, which
would hopefully beat the scissors/paper/stone deadlock, and i wanna check the
ground before i proceed. i'm kinda wary of reveling the full scope of my idea
just yet (not so much for fear of having it stolen, as for fear of being
laughed off the net.) so we'll talk in generic terms.

the faq indicates that paper-type replicators (mainly imps) are the bane of
stone-type bombers, right? so what's the best defense against a paper attack?
what are the chances of survival of a very small bomber with some sort of
imp-gateway? what are the likely weaknesses of such a program?

also, would someone kindly explain the use of reflections. i think i


understand what they are, but it would be handy if you could make it clear,
perhaps with an example or two.

thanx again, i look forward to offering you something worthy of competition.


malcolm ryan (c/o andrew miehs)
--
+-------------------------------+---------------------------------------------+
| Andrew Miehs | |
| Mail: andy@extro.ucc.su.oz.au | $$$ THIS SPACE FOR RENT $$$ |
| NB: Don't call me andy! | |

Article 1652 of rec.games.corewar:


From: emeu09@castle.ed.ac.uk (Mech Eng Student)
Newsgroups: rec.games.corewar
Subject: Re: Sample redcode.
Message-ID: <32298@castle.ed.ac.uk>
Date: 25 Feb 93 10:40:43 GMT
References: <C2pznp.GJG@ux1.cso.uiuc.edu>
Sender: nntpusr@castle.ed.ac.uk
Organization: Edinburgh University Computing Service
Lines: 24

In article <C2pznp.GJG@ux1.cso.uiuc.edu>, parrinel@ux1.cso.uiuc.edu (Chris


Parrinello) writes:
|>
|> I'm a new player and I have written my first recode which I submitted to
|> KotH and was subsequently booted off :-). Anyway, I just read Paul Kline's
|> article (thanks!) about reading and writing A LOT of code, he mentions a
|> few basic techniques. Is there a place where I could ftp a collection
|> of the basic strategies used by programers? Please followup responses
|> to this newsgroup because I'm sure other people would be interested.
|>
|> Thanks in advance...
|>
|> Chris

Would it be possible to have a beginner's hill? If all of your code just gets
wasted the same by the semi-permanent guys at the top how do you know what to
expand on? It would be nice to know what things work against which types of code.
Perhaps even a test hill which includes all of the basic strategies on their own
and just posts back how well you did against each thus exposing your weaknesses.

Just an idea
TTFN
Roderick Easton
2nd year Student Edinburgh University SCOTLAND

Article 1653 of rec.games.corewar:


Newsgroups: rec.games.corewar
From: pk6811s@acad.drake.edu
Subject: Re: Newbie questions about strategy
Message-ID: <1993Feb25.090428.1@acad.drake.edu>
Lines: 200
Sender: news@dunix.drake.edu (USENET News System)
Nntp-Posting-Host: acad.drake.edu
Organization: Drake University, Des Moines, Iowa, USA
References: <1993Feb25.055842.12548@ucc.su.OZ.AU>
Date: Thu, 25 Feb 1993 15:04:28 GMT

In article <. . .> andy@extro.ucc.su.OZ.AU (Andrew Miehs) writes:


>
> the faq indicates that paper-type replicators (mainly imps) are the bane of
> stone-type bombers, right? so what's the best defense against a paper attack?
> what are the chances of survival of a very small bomber with some sort of
> imp-gateway? what are the likely weaknesses of such a program?
>
> also, would someone kindly explain the use of reflections. i think i
> understand what they are, but it would be handy if you could make it clear,
> perhaps with an example or two.
>
Paper's strength is in existing at so many locations that a bomber can't
kill it all. Eventually it will overwrite the stationary bomber and kill
it. But it is susceptible to various attacks incorporating the 'spl'
command. Vampires drop 'jmp' instructions all over core to make the
paper jump into a 'slave pit' like:

trap mov bomb,<-50


spl -1
jmp trap

which grow cycles rapidly and slows the rest of the paper down. However,
as W. Mintardjo pointed out, it is possible to design paper that
can overwhelm a simple trap. Cmp-scanners and B-scanners search for
the opponent and drop stun-bombs like:

spl 0
jmp -1

or

spl 0
spl 0
. . . <- a 'carpet' of spl-zeros
spl 0

which also slow the paper down. Under continuous attack, most of the
replicators will be stunned, and the rest will be destroyed in the core
clear. Other fighters just drop the stun bombs in a pattern and trust
to chance to catch the paper - usually a successful strategy.

By-the-way, contrary to what was believed a year or two ago, a single


spl-zero will not be a successful stun bomb against today's paper.

Another strategy is to aim for a tie. If your warrior can beat some
group of others on the Hill, but loses to paper, then maybe it could
settle for tying paper. That is what imps do. Also, Return of the Living
Dead seemed to tie paper a lot.

----

A reflection is a copy of your active code that is placed X locations


away. It's sole purpose is to hide your code from a cmp-scanner which
uses X as the cmp-distance. Reflections are very successful against
scanners like Charon where the cmp-distance is half the inc-distance,
but only half as successful against Agony-type's where the cmp- and
inc- distances are unrelated. To demonstrate reflections, try running
this version of Charon against this version of Eloquent and see how
long it takes Charon to drop a bomb on Eloquent. Eloquent is a quad
of replicators that stay together and reflect one another at 34 and
49. At one time it was winning up to 80% against Charon and No Mucking
About.

;redcode
;name Charon v8.1
;kill Charon
;author Cisek,Strack,Kline
;strategy (strategy lines deleted)
STEP equ 68 ;scan constants:
DIST equ 34 ;small, so can be reused in core clear
DJNOFF equ decr-DIST
FIRST equ DJNOFF+149 ;optimal offset to DJN train

attack add switch,@compptr ;switch A- and B-fields


mov jump,@comp
compptr mov split,<comp
scan add incr,@compptr
comp cmp FIRST-DIST,FIRST
slt #incr-attack+DIST+1,@compptr ;don't hit self
decr djn scan,<DJNOFF ;countdown to clear
jmz attack,0 ;enter clear when this is decremented
split spl 0,<2667 ;clear core
switch mov @0-DIST,<1-DIST ;switch & jump make an imperfect imp-gate
jump jmp -1,<2667 ;0-DIST-1 <==== modified
incr dat #STEP,#STEP

end comp

;redcode
;name Eloquent
;kill Eloquent
;author P.Kline
;strategy replicator using six processes
space1 equ 34
space2 equ 49
space3 equ 34+49
start1 spl start2
spl 35
p1 mov #6,p1
next add #-31,new
mov <p1,<new
new spl @0,7000
jmz p1,p1
erase mov 0,<0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
start spl wait1
spl wait2
jmp wait3
wait1 jmp 1
wait2 jmp 1
wait3 spl 1
jmp start1

spl 35
mov #6,0
add #-31,2
mov <-2,<1
spl @0,7000
jmz -4,-4
mov 0,<0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
start2 spl 35
mov #6,0
add #-31,2
mov <-2,<1
spl @0,7000
jmz -4,-4
mov 0,<0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
spl 35
mov #6,0
add #-31,2
mov <-2,<1
spl @0,7000
jmz -4,-4
mov 0,<0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
dat #0
end start

Paul Kline
pk6811s@acad.drake.edu

Article 1654 of rec.games.corewar:


Newsgroups: rec.games.corewar
From: pk6811s@acad.drake.edu
Subject: B-scan Tip
Message-ID: <1993Feb26.114106.1@acad.drake.edu>
Lines: 39
Sender: news@dunix.drake.edu (USENET News System)
Nntp-Posting-Host: acad.drake.edu
Organization: Drake University, Des Moines, Iowa, USA
Date: Fri, 26 Feb 1993 17:41:06 GMT

Here's a tip that was worth 6 points and put Eclipse on the Hill. Eclipse
starts with a b-scan. When it finds something it assumes 'imp', saves
the found instruction to use as an increment in a bombing run, bombs for
a while, then releases some small bombers. To avoid triggering the
bombing run when a djn-stream was discovered I checked for minus-one like
this:

next add #step,@ptrptr


scan jmz next,@ptr
ptrptr cmp #-1,@ptr <- ignore djn-streams
slt #105,@ptrptr
jmn next,next
. . .

What I just realized was that Charon and Agony both have two instructions
with minus-one for a b-field, and that Eclipse was therefore ignoring
those locations. So I changed it to this:

next add #step,@ptrptr


scan jmz next,@ptr
ptrptr cmp minone,@ptr <- ignore djn-streams
slt #105,@ptrptr
jmn next,next
. . .
start sub #1,minone <- create minone about 3000 locations away
jmp next

Now Eclipse ignores djn-streams but recognizes the locations in Charon


and Agony as 'opponent'. Result - 6 more points and finally on the
Hill. I'm still working on the bombers, but here is one interesting
variation which bombs forward and decrements backward:

b1 add #2,2
spl -1,<-51
mov <-1,<51
jmp -2,<-2

Paul Kline
pk6811s@acad.drake.edu

Article 1655 of rec.games.corewar:


From: wangsawm@prism.CS.ORST.EDU (W. Mintardjo)
Newsgroups: rec.games.corewar
Subject: Twilight Pits evolution
Message-ID: <1mm16cINNq2u@flop.ENGR.ORST.EDU>
Date: 26 Feb 93 21:13:48 GMT
Article-I.D.: flop.1mm16cINNq2u
Organization: CS Dept, Oregon State University
Lines: 211
NNTP-Posting-Host: prism.cs.orst.edu

Here is my vampire program, Twilight Pits. It has been my favorite vampire


since the first time I wrote it.

I wrote an article:
> They are better than bombers against replicators. But still, both Sucker 4
> and Twilight Pits lose 75% of the time against Note Paper.

Oops, a correction here. After running some more battles. I figured out that
the number to be more accurate should be 60% (still in favor for Note Paper).

First incarnation, Twilight Pits 3:


-------------------------------------------------------------------------------

;redcode verbose
;name Twilight Pits 3
;author W. Mintardjo
;strategy v1: bombs --> pits --> slavers
;strategy v2: 2 pass core-clear (1 SPL + 1 DAT)
;strategy v3: simplification of version 2

offs EQU 196

start SPL 0, <-290 ;135x < b-field


s MOV t, @t ;JMP spot
SUB trap, t
JMP -2, <start
t JMP -280, 281
trap MOV 283, <-283
SPL -1
JMP -1

END start

-------------------------------------------------------------------------------

Note that version two is the one with two-pass core clear, but is three lines
longer.

The later version is backed up with anti-imp code, djn stream, decoys, etc.

-------------------------------------------------------------------------------

;redcode quiet
;name Twilight Pits v6.0
;author W. Mintardjo
;strategy v1: bombs --> pits --> slavers
;strategy v2: 2 pass core-clear (1 SPL + 1 DAT)
;strategy v3: simplification of version 2. One pass and delayed core-clear
;strategy v4: IMP protection aided with DJN stream. DJN reset core-clear
;strategy v5: Separated module. Different init
;strategy v6: Launched code. Draining more enemy's process. Use decoys
;strategy : Different step-size
;strategy Bugs: Its mirror is unprotected

step EQU 91
init EQU 86
boota EQU 3000
spacea EQU 6
spaceb EQU 8

setup MOV trap, boota


ptra MOV start+3, boota-spacea+setup+2
MOV start+2, boota-spacea+setup+1
MOV start+1, boota-spacea+setup
MOV start+0, boota-spacea+setup-1
ptrb MOV clear+3, boota+spaceb+setup+1
MOV clear+2, boota+spaceb+setup
MOV clear+1, boota+spaceb+setup-1
MOV clear+0, boota+spaceb+setup-2
MOV dbomb, boota+spaceb+setup-2+step
JMP boota-spacea+setup-1, <1112

dbomb DAT <0-(spacea+spaceb-2+spacea), <0-(spacea+spaceb-2+spacea)

; Put some decoys here

start SPL 0, <0-(spacea-1)


s MOV spacea, @spacea ;JMP spot
SUB spacea+spaceb+s-2, spacea+s
p DJN s, <3025
trap JMP spaceb-2-init, <init
clear MOV step, <0-step
SPL clear
SPL 0
SPL -1
; And also put some decoys here

END setup

-------------------------------------------------------------------------------

The code looks more crude and uglier. But it has something to do w/ those imps.

Before Impire, the paper-stone-scissor analog works very well. When one was
writing a bomber, he didn't have to worry much about replicators. And similarly
when one was writing a replicators, he didn't have to squeeze the code to make
it smaller against scanner. In fact they used up to the maximum number of
instruction. And now, all the warriors submitted to KotH are either spirals
or spiral-protected programs. Perhaps that what makes the hill seemed so
restrained. Why couldn't one just submit a successful program to hill without
any spiral stuffs?

Maybe we need to find/write anti-imp programs to restore the balance. Something


that works nicely on spirals, say they beat them >60. Or perhaps we could try
to use different evaluation to see how good a program is. There are at least
seven types of programs: stone, paper, cmp-scanner, b-scanner, vampire,
spl/jmp bomber and spiral. If our program works fine against at least four of
them (half the number of type), then our program must be not bad at all?

What's about writing program that could easily take >60 victories over imps?
paper does not seem to be the answer. A pure paper (like Note Paper) with
anti-imp could hardly beat them >30. An intermediate class between replicators
and spirals could serve the same purpose. What's about multi imp-threader?
(from there I started writing Paratroops). The ratio is still 2:1 in favor
for multi imp-threader programs. Not quite enough. Can this kind of program
or paper program enhanced? Probably, and to add a little complexity to the
situation, here is Chimera.

The first time I wrote Chimera, it seemed as an awkward combination between


Twilight Pits and spirals. But works great against paper and multi imp-threader.
It doesn't quite catch up bomber or spiral/stone combos. A slightly win over
cmp-scanners. Again, this deprived many multi process programs, even pure paper
like Note Paper.

Maybe replicator/anti-vamp/anti-spiral program?

-------------------------------------------------------------------------------

;redcode
;name Chimera v3.5
;author W. Mintardjo

IMP0 EQU imp


IMP1 EQU IMP0+2667
IMP2 EQU IMP1+2667

step EQU 283


init EQU 276
boota EQU 3211
spacea EQU 8
spaceb EQU 1

; decoys go here
setup MOV trap, boota
ptra MOV start+3, boota-spacea+setup+2
MOV start+2, boota-spacea+setup+1
MOV start+1, boota-spacea+setup
MOV start+0, boota-spacea+setup-1
ptrb MOV clear+2, boota+spaceb+setup+2
MOV clear+1, boota+spaceb+setup+1
MOV clear+0, boota+spaceb+setup
MOV dbomb, boota+spaceb+setup+step

SPL 16, <3706


SPL 8, <1933
SPL 4, <1812
SPL 2, <2009
JMP IMP0, <7368
JMP IMP1, <6011
SPL 2, <5810
JMP IMP2, <4809
JMP IMP0+1, <3908
SPL 4, <7515
SPL 2, <4914
JMP IMP1+1, <2213
JMP IMP2+1, <7212
SPL 2, <7011
JMP IMP0+2, <6710
JMP IMP1+2, <6509
SPL 8, <6108
SPL 4, <5615
SPL 2, <5214
JMP IMP2+2, <3509
JMP IMP0+3, <1908
SPL 2, <2415
JMP IMP1+3, <3314
JMP IMP2+3, <4601
SPL 4, <3600
SPL 2, <4159
JMP IMP0+4, <3102
JMP IMP1+4, <2901
SPL 2, <2168
JMP IMP2+4, <1515

SPL boota-spacea+setup-1, <7115


SPL boota-spacea+setup-1, <6302
SPL boota-spacea+setup-1, <5301
SPL boota-spacea+setup-1, <5900
JMP boota-spacea+setup-1, <1112

dbomb DAT <1-(spacea+spaceb+spacea+spaceb), <1-(spacea+spaceb+spacea+spaceb)

start SPL 0, spacea+1


s MOV spacea, @spacea ;JMP spot
SUB spacea+spaceb+s, @-1
p DJN s, <3154
trap JMP spaceb-init, <init
clear MOV step, <0-step
SPL clear, <-183
SPL -1

imp MOV imp, imp+2667


END setup

Mintardjo W.
wangsawm@prism.cs.orst.edu

Article 1656 of rec.games.corewar:


Newsgroups: rec.games.corewar
From: rschuler@iastate.edu (Rodney A Schuler)
Subject: Beginners Hill
Message-ID: <rschuler.730774812@pv690b.vincent.iastate.edu>
Sender: news@news.iastate.edu (USENET News System)
Organization: Iowa State University, Ames IA
References: <32298@castle.ed.ac.uk>
Date: Sat, 27 Feb 1993 01:00:12 GMT
Lines: 28

In <32298@castle.ed.ac.uk> emeu09@castle.ed.ac.uk (Mech Eng Student) writes:

>Would it be possible to have a beginner's hill? If all of your code just gets
>wasted the same by the semi-permanent guys at the top how do you know what to
>expand on? It would be nice to know what things work against which types of code.
>Perhaps even a test hill which includes all of the basic strategies on their own
>and just posts back how well you did against each thus exposing your weaknesses.

I would like to see a beginners hill also. Here are a few specific
suggestions:

1. Have the warriors score be calculated by ((2*wins)+ties-age) rather


than ((2*wins+ties). This automatically will remove successful warriors,
leaving room for new beginners code.

2. Ban specific successful authors. I would suggest banning anyone that


has had a warrior in the top ten on the regular hill that is age > 100.

3. Do not post beginners hill results to the net. Also, do not


automatically forward warriors from beginners hill to other to tournaments.
Hopefully the lack of noterity will discourage authors from `sandbagging'.

4. Keep the rules the same as for KOTH, to make the transition easier.

Rodney Schuler
Nuclear Engineering Remember: One, JUST ONE thermonuclear device
Iowa State University can ruin your whole day!
rschuler@iastate.edu

Article 1657 of rec.games.corewar:


From: sadkins@bigbird.cs.ohiou.edu (Scott W. Adkins)
Newsgroups: rec.games.corewar
Subject: Re: Beginners Hill
Message-ID: <1993Feb27.030042.23549@oucsace.cs.ohiou.edu>
Date: 27 Feb 93 03:00:42 GMT
References: <32298@castle.ed.ac.uk> <rschuler.730774812@pv690b.vincent.iastate.edu>
Sender: usenet@oucsace.cs.ohiou.edu (Network News Poster)
Organization: Ohio University CS Dept., Athens
Lines: 49
In article <rschuler.730774812@pv690b.vincent.iastate.edu> rschuler@iastate.edu
(Rodney A Schuler) writes:
>
>I would like to see a beginners hill also. Here are a few specific
>suggestions:
>
>1. Have the warriors score be calculated by ((2*wins)+ties-age) rather
>than ((2*wins+ties). This automatically will remove successful warriors,
>leaving room for new beginners code.

I think this is not a good enough scoring method and would result in too
many changes... if there are good beginning programs, shouldn't they at
least stay on long enough for those others to test their programs against?
Maybe we should keep the scoring the same (so that it is similar to the
real hill) and look for other ways to improve it for beginners.

>2. Ban specific successful authors. I would suggest banning anyone that
>has had a warrior in the top ten on the regular hill that is age > 100.

I thought about this, and even thought at one time that this was a good
idea... but I think it would be better to say that each author may have at
most one warrior on the hill at a time... this would give more authors the
chance to get on the hill... Also, the age limit is a good way to limit
warriors as well... this would supercede the #1 above...

>3. Do not post beginners hill results to the net. Also, do not
>automatically forward warriors from beginners hill to other to tournaments.
>Hopefully the lack of noterity will discourage authors from `sandbagging'.

I somehow have an uneasy feeling about this. I am more under the impression
that a beginner's hill should automatically release the code to any of the
contestants that are trying to get on the hill... This would allow each
person to learn about how the other warriors tick, as well as discourage
those who think their code is valuable from playing on the hill to begin
with... (they should play on the real hill at that point). The beginner's
hill is one for learning, not stagnation... sandbagging is a problem for
all hills and tournaments and archives and ...

>4. Keep the rules the same as for KOTH, to make the transition easier.

Exactly... this means no #1 above... Changes would mean the following:


1) age > 100 knocks a warrior off
(should there be a penalty for resubmission of same warrior?)
2) maximum of 1 warrior per author on the hill at one time
3) source for each warrior currently on the hill should be automatically
given to the person trying to get on the hill
--
Scott W. Adkins Internet: sadkins@bigbird.cs.ohiou.edu
~~~~~~~~~~~~~~~ ak323@cleveland.freenet.edu
Ohio University of Athens Bitnet: adkins@ouaccvma.bitnet

Article 1658 of rec.games.corewar:


From: sadkins@bigbird.cs.ohiou.edu (Scott W. Adkins)
Newsgroups: rec.games.corewar
Subject: Hills in general...
Message-ID: <1993Feb27.031654.25038@oucsace.cs.ohiou.edu>
Date: 27 Feb 93 03:16:54 GMT
Sender: usenet@oucsace.cs.ohiou.edu (Network News Poster)
Organization: Ohio University CS Dept., Athens
Lines: 39

Well, while we are still on the subject of hills and beginners... what
about having a Hall of Fame or something... if a warrior got pushed off
the hill because the age > 100 or something like that, then another
hill should be created to accomodate these warriors. The hill could
grow without size (I am sure it would grow slowly, so boundless is not
too bad) and allow others to challenge those on that hill just to see
how they would do...

To make things easier, I think we would need a few more comment lines:
1) ;redcode-b [ quiet | verbose ]
Challenge the Beginner's Hill...
2) ;redcode-h [ quiet | verbose ]
Challenge the Hall of Fame Hill...
quiet -> just send back results of battles
(none) and verbose -> send back redcode and results of battles
3) ;report [source] ;report-b [source]
;report-x [source] ;report-h [source]
Give current standings of the hills... this would eliminate all
those suicide programs that check to see the current hill standings.
If the source option is provided, then include the sources of the
programs as well. For the real and experimental hills, the ;source
line must be included before the source is released.
4) ;source
Allows the source of your warrior to be distributed when challenging
the hill or while on the hill. Note: This is the default case for
the beginner's hill and the hall-of-fame hill. It is *not* the
default case for the experimnetal hill and the real hill...

Well, I had better stop here. I plan on setting up a corewar server


eventually, but it will be quite different from KotH style... it will
be both a mail server and a socket server (i.e, you can telnet to it),
which will allow you access to all warriors in the archive, and also
allow you to test and debug your warriors, etc. But that will be later.

Scott
--
Scott W. Adkins Internet: sadkins@bigbird.cs.ohiou.edu
~~~~~~~~~~~~~~~ ak323@cleveland.freenet.edu
Ohio University of Athens Bitnet: adkins@ouaccvma.bitnet

Article 1659 of rec.games.corewar:


From: durham@cup.portal.com (Mark Allen Durham)
Newsgroups: rec.games.corewar
Subject: State of the EBS Address
Message-ID: <76612@cup.portal.com>
Date: Sat, 27 Feb 93 20:26:33 PST
Organization: The Portal System (TM)
Distribution: world
Lines: 103

State of the EBS Address


February 27, 1993

Fellow Core War Enthusiasts,


The Electronic Branch Section of the International Core War Society has
existed informally since the Summer of 1991. In the Fall of 1991, I
petitioned the ICWS, on behalf of all Core War enthusiasts with access
to electronic mail, to recognize the EBS as an official Branch Section.
Although I never received an official "Certificate of Recognition" from the
(then) Director, as stated in the "Guidelines for Establishing A Local
Core Wars Section" document, I HAVE received affirmation from both the (then)
Director and the present Director of the ICWS of the EBS's official status.

Part of being an official Branch Section is the establishment of Branch


Section rules. The EBS has only one rule:

1. Members of the EBS are those with access to electronic mail.

The EBS currently charges no dues and has no other membership rules. Since
the establishment of the USENET newsgroup rec.games.corewar, the vast
majority of the EBS's business has been carried out there. An effort is
underway to provide a server for those members of the EBS without access to
rec.games.corewar.

As a Branch Section of the ICWS, the EBS currently has the following
obligations only:

1. The EBS is required to promote the use of MARS and Redcode programs
consistent with standards documents approved by the ICWS and its
Director (currenty Jon Newman, jonn@microsoft.com).

2. The EBS is required to conduct tournaments in a timely, periodic fashion,


and will choose no more than ten (10) winners yearly from such
tournaments. Programs chosen as winners are then to be presented
formally by the EBS to the ICWS for inclusion in the annual ICWS
tournament.

Throughout the existence of the EBS, I have served as its de facto


Representative to the ICWS. It is with a heavy heart and a light wallet
that I am forced to bid farewell to the net, at least for awhile. Obviously,
I can no longer serve in that position.

The EBS's most important need is for someone to come forward and volunteer
to serve as liason and Representative to the ICWS. All that is needed is
your own personal conviction, a willingness to work under the above
constraints, and to contact the Director and inform him that you are
currently representing the EBS. You should also see to it that the EBS
holds its annual tournament, selects ten finalists, and sends them on to
the annual ICWS tournament.

I hope to be back by March of 1994 when Core War celebrates its Tenth
Anniversary. In the interim, I will try to maintain as much contact as
possible through the ICWS and other avenues.

Other than the above, the EBS is in excellent condition. The EBS is well
served by its archive in /pub/corewar at soda.berkeley.edu and the ongoing
Core War tournaments known as King of the Hill. Activity on
rec.games.corewar, although somewhat seasonal, continues to be strong and
even increase over time. The rec.games.corewar FAQ continues to improve and
now reaches a much wider audience, possibly bringing others into the fold.
The benefit to Core War enthusiasts is clear when you consider that the EBS
entrants have dominated the last two ICWS tournaments.

In fact, the EBS has become the tail that wags the dog. I hope that the EBS
does not turn its back on the ICWS, but continues to work with the ICWS and
Core War enthusiasts in general. I do not want to be alarmist. I do not
see signs that there may be a parting of the ways. I am just pointing out
that there is potential here.

There are two items the EBS needs to tackle over the next year. The first
is the draft of the new standard. Although new standards fall under the
jurisdiction of the ICWS, it is clear that the EBS can serve a very useful
function in developing, testing, and proposing the adoption of a new
standard. Second, the EBS should probably establish some rules for choosing
officers. Volunteerism has served us well so far, and part of the appeal
of the EBS has been its lack of rigid structure, but the continued survival
of the EBS depends on developing at least some semblance of structure to
hold the group together.

Personal Reflections:
For perhaps the first time in nine years, I truly feel that Core War is not
in immediate danger of being forgotten. I am confident that I could leave
civilization for five years, come back, and find that there is still a
rec.games.corewar, still an ICWS, and still a group of the finest people on
the face of the Earth engaged in playing Core War.

And probably someone saying, "It won't last a month." About a year ago,
maybe more, someone posted to rec.games.corewar that there really was no
point to a King of the Hill program. XTC, the best warrior at the time,
was considered to be practically invincible. They said it would still be
on the hill a month later; even a year later.

They were almost right. XTC fell off the hill somewhere around a month
later. I recently submitted it to KotH to see how well it would fare now
that it is a year later. XTC did make it onto the hill. Dead last. It
survived only until the next challenger appeared. When you consider that
the hill is twice the size it was a year ago, it is clear that Core War
HAS progressed over the last year, and that there is always room for
innovation and improvement.

Mark A. Durham

Article 1660 of rec.games.corewar:


From: durham@cup.portal.com (Mark Allen Durham)
Newsgroups: rec.games.corewar
Subject: April Fools
Message-ID: <76613@cup.portal.com>
Date: Sat, 27 Feb 93 20:28:02 PST
Organization: The Portal System (TM)
Distribution: world
Lines: 27

(It's a month early, but I just had to get this off my hard disk before
signing off. Like postcards from mortuaries which state "We hope that
you did not receive this in a time of personal crisis", I did not intend
to personally offend if you see yourself in this mirror. MAD ;) )

April 1, 1993
Dear rec.games.corewar,

Could someone please send me the standards, the Redcode warriors, all of the
posts to rec.games.corewar, and anything else having to do with corewar
over the last nine years?

Could someone post the FAQ? I didn't feel like reading it last time and
I can't wait around to see if it will ever be posted again.

Of course, I don't have FTP and this isn't even my account. So don't
bother posting a reply. I don't even have time to read this newsgroup.

Is there a corewar system for a Cray? Could you bring it to me? I don't
trust the Post Office or UPS. Oh, and bring the Cray. I don't have one of
those either, but I won't play games on anything less.

I have no money and I can't read. Someone else is typing this for me.

Average Student
Prestigious University

You might also like