home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #31 / NN_1992_31.iso / spool / rec / games / corewar / 1547 < prev    next >
Encoding:
Internet Message Format  |  1992-12-31  |  3.0 KB

  1. Path: sparky!uunet!think.com!yale.edu!not-for-mail
  2. From: starr-daniel@yale.edu (Daniel Starr)
  3. Newsgroups: rec.games.corewar
  4. Subject: Re: Outlaw ImpRings? - There's a better way
  5. Date: 31 Dec 1992 06:16:17 -0500
  6. Organization: Yale University Science & Engineering UNIX(tm), New Haven, CT 06520-2158
  7. Lines: 67
  8. Message-ID: <1hukq1INNroe@MINERVA.CIS.YALE.EDU>
  9. References: <78903@hydra.gatech.EDU>
  10. NNTP-Posting-Host: minerva.cis.yale.edu
  11.  
  12. In article <78903@hydra.gatech.EDU> gt7804b@prism.gatech.EDU (Wayne Edward Sheppard) writes:
  13. >I don't know about the rest of you, but these imprings has made
  14. >corewar boring.  But we shouldn't change the rules to fight them.
  15. >How about changing the core size.  8000 is too friendly for imps.
  16. >Do imprings work good when there are alot of points?  A coresize
  17. >of 9000 would make the smallest impring have 7 points.  Is this 
  18. >enough?  8400 core size would require 11 point rings.  
  19. >
  20. >If an impring had more points, wouldn't it be easier to kill?
  21. >
  22. Nope.  The nifty thing about an impring, after all, is that just like
  23. a classic imp, each instruction prepares the very next one that executes.
  24. As a result, no matter how many points there are, only one -- the one
  25. about to execute -- is vulnerable to bombing/mutation at any given time.
  26.  
  27. But imprings aren't that hard to kill.  You just need to decrement a lot
  28. in front of your program.  A program like this
  29.  
  30. spl 0, <-3
  31. mov <-3,<-4
  32. djn -1,<-5
  33.  
  34. will cause ANY impring or spiral to crash when it hits the line three above
  35. the top.  (In point of fact, any program with an SPL 0 can't lose to an impring,
  36. although it can tie, since an impring kills programs by subverting them and
  37. letting them die when they outrun the slower ring into core.)
  38. (This also illustrates the real advantage of "spirals" -- overlapping offset
  39. rings:  each has its vulnerable instruction in a different place at any
  40. given time, so a single djn stream can't hit both:  if it hits one, it
  41. necessarily bypasses the other.)
  42.  
  43. Anyway, unless I'm overlooking something (comments, anyone?), the only
  44. disadvantage of larger imprings is that they're messier to launch.
  45.  
  46. Speaking of launches, anyone found a simpler way than this? --
  47.  
  48. d EQU 8001/7
  49. imp mov 0,d
  50. start mov imp,100
  51. spl 1
  52. spl 1
  53. spl 1
  54. jmp <launch
  55. jmp main-program
  56. jmp start+100+d*6
  57. jmp start+100+d*5
  58. jmp start+100+d*4
  59. jmp start+100+d*3
  60. jmp start+100+d*2
  61. jmp start+100+d*1
  62. jmp start+100+d*0
  63. launch  dat #0
  64. ...
  65. main-program ...
  66.  
  67. For spirals, add a MOV imp,100+d at the top, an extra SPL 1, and precede
  68. each of the normal JMP start+100+d*n statements with a JMP start+100+d*(n+1).
  69. This creates two rings, the first always one instruction ahead of the second.
  70.  
  71. (I'm assuming here that I am correctly interpreting when Dan N. means by
  72. spirals.  If I'm not, please enlighten me. (:  )
  73.  
  74. -- 
  75. --------------------------------------------------------------------
  76. |Daniel Starr                | "Wait! Wait! Maybe THIS will work!" |
  77. |dstarr@minerva.cis.yale.edu |                                     |
  78. --------------------------------------------------------------------
  79.