🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: rec.games.corewar
2 messages
2 total messages Started by Wayne Edward Sheppard Wed, 30 Dec 1992 22:22
Outlaw ImpRings? - There's a better way
#269
Author: Wayne Edward Sheppard
Date: Wed, 30 Dec 1992 22:22
16 lines
998 bytes
I don't know about the rest of you, but these imprings has made
corewar boring.  But we shouldn't change the rules to fight them.
How about changing the core size.  8000 is too friendly for imps.
Do imprings work good when there are alot of points?  A coresize
of 9000 would make the smallest impring have 7 points.  Is this 
enough?  8400 core size would require 11 point rings.  

If an impring had more points, wouldn't it be easier to kill?



-- 
Wayne Edward Sheppard
Georgia Institute of Technology, Atlanta Georgia, 30332
uucp:	  ...!{decvax,hplabs,ncar,purdue,rutgers}!gatech!prism!gt7804b
Internet: gt7804b@prism.gatech.edu
Re: Outlaw ImpRings? - There's a better way
#271
Author: Daniel Starr
Date: Thu, 31 Dec 1992 11:16
67 lines
3141 bytes
In article <78903@hydra.gatech.EDU> gt7804b@prism.gatech.EDU (Wayne Edward Sheppard) writes:
>I don't know about the rest of you, but these imprings has made
>corewar boring.  But we shouldn't change the rules to fight them.
>How about changing the core size.  8000 is too friendly for imps.
>Do imprings work good when there are alot of points?  A coresize
>of 9000 would make the smallest impring have 7 points.  Is this 
>enough?  8400 core size would require 11 point rings.  
>
>If an impring had more points, wouldn't it be easier to kill?
>
Nope.  The nifty thing about an impring, after all, is that just like
a classic imp, each instruction prepares the very next one that executes.
As a result, no matter how many points there are, only one -- the one
about to execute -- is vulnerable to bombing/mutation at any given time.

But imprings aren't that hard to kill.  You just need to decrement a lot
in front of your program.  A program like this

spl 0, <-3
mov <-3,<-4
djn -1,<-5

will cause ANY impring or spiral to crash when it hits the line three above
the top.  (In point of fact, any program with an SPL 0 can't lose to an impring,
although it can tie, since an impring kills programs by subverting them and
letting them die when they outrun the slower ring into core.)
(This also illustrates the real advantage of "spirals" -- overlapping offset
rings:  each has its vulnerable instruction in a different place at any
given time, so a single djn stream can't hit both:  if it hits one, it
necessarily bypasses the other.)

Anyway, unless I'm overlooking something (comments, anyone?), the only
disadvantage of larger imprings is that they're messier to launch.

Speaking of launches, anyone found a simpler way than this? --

d EQU 8001/7
imp mov 0,d
start mov imp,100
spl 1
spl 1
spl 1
jmp <launch
jmp main-program
jmp start+100+d*6
jmp start+100+d*5
jmp start+100+d*4
jmp start+100+d*3
jmp start+100+d*2
jmp start+100+d*1
jmp start+100+d*0
launch  dat #0
...
main-program ...

For spirals, add a MOV imp,100+d at the top, an extra SPL 1, and precede
each of the normal JMP start+100+d*n statements with a JMP start+100+d*(n+1).
This creates two rings, the first always one instruction ahead of the second.

(I'm assuming here that I am correctly interpreting when Dan N. means by
spirals.  If I'm not, please enlighten me. (:  )

-- 
--------------------------------------------------------------------
|Daniel Starr                | "Wait! Wait! Maybe THIS will work!" |
|dstarr@minerva.cis.yale.edu |                                     |
--------------------------------------------------------------------
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads