Article View: rec.games.corewar
Article #271Re: Outlaw ImpRings? - There's a better way
From: Daniel Starr
Date: Thu, 31 Dec 1992 11:16
Date: Thu, 31 Dec 1992 11:16
67 lines
3141 bytes
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 | | --------------------------------------------------------------------
Technical Details
Message-ID:
<1hukq1INNroe@MINERVA.CIS.YALE.EDU>Path:
arc1-ca.pugleaf.net!sparky!uunet!think.com!yale.edu!not-for-mailReferences:
<78903@hydra.gatech.EDU>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!think.com!yale.edu!not-for-mail From: starr-daniel@yale.edu (Daniel Starr) Newsgroups: rec.games.corewar Subject: Re: Outlaw ImpRings? - There's a better way Date: 31 Dec 1992 06:16:17 -0500 Organization: Yale University Science & Engineering UNIX(tm), New Haven, CT 06520-2158 Lines: 67 Message-ID: <1hukq1INNroe@MINERVA.CIS.YALE.EDU> References: <78903@hydra.gatech.EDU> NNTP-Posting-Host: minerva.cis.yale.edu