Article 1444 of rec.games.corewar: From: pk6811s@acad.drake.edu Newsgroups: rec.games.corewar Subject: the imp-ring problem Message-ID: <1992Nov3.083911.1@acad.drake.edu> Date: 3 Nov 92 14:39:11 GMT Sender: news@dunix.drake.edu (USENET News System) Organization: Drake University, Des Moines, Iowa, USA Lines: 46 Nntp-Posting-Host: acad.drake.edu I know a lot of people are working on the imp-ring problem, (me too). Here are some ideas for experimentation. New bombs: dat <2666,<-2667 or sub <2666,<-2667 It is also easy to catch an imp by the tail with some kind of stun bomb, the problem is killing a complete layer before a new layer is formed. The points are so far apart that the standard sequential core clear isn't fast enough to catch them all in time. Maybe the answer is a clear routine like: mov bomb,ptr add #2667,ptr jmp -2 which will attack all three points (of a 3-point ring) at the same time. Some people are having success, though they are keeping pretty tight-lipped. Here is the latest round of scores for Imprimis, my own stone-ring combo. (%wins for Imprimis/%wins for opponent/%ties) Medusa's v1 53/34/13 Nazgul 27/38/35 anti-body 42/46/12 Impression v3 1/ 0/99 Pale Shears4 40/44/16 Agony 2.5 37/ 0/63 Winter Werewolf 28/27/45 Sauron 49/28/23 Sender of Eight 0/ 2/98 Atomic Sheep 7/ 1/92 B-scanners l.i.v. 57/21/22 Jehannum 76/18/ 6 PLASMA 18/10/72 Emerald 57/ 5/38 Nimbus 14/ 3/83 Kobold 6b 78/ 6/16 I tried a couple of variations on Imprimis, but could not improve the score, so put the original back up. It's presently in second or third place, behind Medusa's v1. I will publish the live version of Imprimis in time for people to have a shot at it before the tournament. Paul Kline pk6811s@acad.drake.edu Article 1482 of rec.games.corewar: Newsgroups: rec.games.corewar Subject: Impression v3 Message-ID: <1992Nov16.064702.10776@wisipc.weizmann.ac.il> From: fedimit@wisipc.weizmann.ac.il (Dan Nabutovsky) Date: Mon, 16 Nov 1992 06:47:02 GMT Organization: Weizmann Institute of Science, Computation Center Lines: 81 Hi all, This is my program Impression v3. As you can see, the main principles of imp-writing are: - Make spiral not ring - One Ring is the best architecture - Dwarf must get most of CPU time. And, most important: - Don't send your program to pdk. This schmuck will make minor changes, send it to Koth under his name, and then he'll blame you in copycatting. ;redcode ;name Impression v3 ;kill P. Kline for plagiate ;author Dan Nabutovsky ;strategy 2 imp spirals + self-splitting dwarf d EQU 2667 i EQU imp-2000 imp: mov 0,d start: mov imp, i spl 32 spl 16 spl 8 spl 4 spl 2 jmp i+d*0 jmp i+d*1 spl 2 jmp i+d*2 jmp i+d*3 spl 4 spl 2 jmp i+d*4 jmp i+d*5 spl 2 jmp i+d*6 jmp i+d*7 spl 8 spl 4 spl 2 jmp i+d*8 jmp i+d*0 spl 2 jmp i+d*1 jmp i+d*2 spl 4 spl 2 jmp i+d*3 jmp i+d*4 spl 2 jmp i+d*5 jmp i+d*6 spl 16 spl 8 spl 4 spl 2 jmp i+d*7 jmp i+d*8 spl 2 spl dwarf spl dwarf spl dwarf DAT #0 DAT #0 DAT #0 DAT #0 DAT #0 DAT #0 DAT #0 inc dat #-2045,#2045 dwarf spl 0,100 stone mov Lines: 198 Sender: news@dunix.drake.edu (USENET News System) Nntp-Posting-Host: acad.drake.edu Organization: Drake University, Des Moines, Iowa, USA Date: Tue, 17 Nov 1992 23:13:01 GMT Well, I see after our private conversation, Dan is still unhappy and has gone public with his complaint. Let me share two pieces of code that I published BEFORE Impression appeared on the hill, and before I received a copy: ;redcode ;name Emerald ;author P.Kline inc dat #-2045,#2045 emerald spl 0,100 stone mov Lines: 84 Sender: news@dunix.drake.edu (USENET News System) Nntp-Posting-Host: acad.drake.edu Organization: Drake University, Des Moines, Iowa, USA References: Date: Wed, 18 Nov 1992 14:58:05 GMT More on copycatting: In reality we all build on what others have done. Even IMPire built on the old imp strategy. I think most people get stuck trying to make an existing strategy more efficient - less lines of code, instead of mixing strategies or trying something new. The originator has probably tested many variations already, so we're not likely to improve an existing program, and as the other guy (I forgot who's note I was replying to) stated, "my variations usually degenerate into the existing Emerald or Nomuckingabout or whatever". There are certain redcode irreducibles: an imp, a three-line bomber, a six-line mouse, stone, etc. These have aged sufficiently to be considered 'components', which can be incorporated into new, more complex programs. Some other code-parts are also available: the gate-form published by Mintardjo which he later stated is not original/unique. I also don't believe step-sizes should be proprietary. When N. Sieben published a number of optimum step-sizes, was he not recommending them for use? Most importantly, we can't claim ownership to idea/strategy/concept. Once the general idea has been made public, you can't claim it for yourself. Only the specific implementation in your own code belongs to you. So everyone is free to write their own bomber/stone, replicator/ paper, scanner, pittrapper, imp-ring, stone-paper combo, or whatever. I made the statement that in the long run, copycatting is not an effective strategy. Your program will slowly slide down the hill - along with the original - as other developers attack your common strategy. I think this is a true statement. Flash Paper was basically undone by the appearance of other stone-paper fighters. I did not intend by that statement to approve knocking off someone else's code, only to make an observation. The question of where originality comes in is a hard one to answer in general terms. I suggest the answer is in forced publication. If all programs on the Hill over four weeks old were published, the participants could judge whether someone was unfairly copying others' code. As long as everyone understood when they submitted their programs that if they become successful, they will be made public, there should be no problem with publishing them. As for Emerald being a clone of Kobold, Emerald beats Kobold something like 60/30. Here's the latest code for Emerald. Is it different enough from Kobold/Twill/Stone for me to claim ownership? (BTW, Matt, I removed the reflections. Since Charon and NMA disappeared, they were only drawing the attention of other scanners. But I still know where they are if I need them. :) ;redcode ;name Emerald ;kill Emerald ;author P.Kline ;strategy stone with djn stream ;strategy attempting a gate spacing equ 2365 hide1 spl 0,<-6 hide2 mov 49,<-20 hide3 dat <-7,<-8 hide dat #inc+1037-130+1020 start mov hide3,inc+1037+48-130+1020 mov hide2,gate code mov hide1, Sender: news@unlv.edu (News User) Organization: Too many References: <1992Nov8.195147.29858@cs.kuleuven.ac.be> <9231710.16573@mulga.cs.mu.OZ.AU> Date: Wed, 18 Nov 92 18:11:10 GMT Want to see a very painful death against Corona? watch this :-) More like suicide, really, but there's not much I can do about it. ;redcode-x ;name Sonic Boom 1.30 ;author Eric J. Schwertfeger ;strategy Two SPL bombing carpet bombers going opposite ;strategy Directions, with a monitor that relaunches carpet ;strategy bombers whenever both die. ;strategy v 1.3X Going back to original bombing pattern, hence return ;strategy to 1.XX numbers. WAIT EQU (568) FSTEP EQU (16*12) RSTEP EQU (-16*12) RCSRC DAT 0,RBDST+(RSTEP)+1 RSTART MOV RCSRC,<(RBDST-RSTEP) MOV RBDST-RSTEP,<(RBDST-RSTEP) MOV RBDST-RSTEP,<(RBDST-RSTEP) MOV RBDST-RSTEP,<(RBDST-RSTEP) MOV RBDST-RSTEP,<(RBDST-RSTEP) MOV RBDST-RSTEP,<(RBDST-RSTEP) MOV RBDST-RSTEP,<(RBDST-RSTEP) MOV RBDST-RSTEP,<(RBDST-RSTEP) MOV RCSRC,<(RBDST-RSTEP) ; this pass MOV RCSRC,<(RBDST-RSTEP) MOV RCSRC,<(RBDST-RSTEP) MOV RCSRC,<(RBDST-RSTEP) RMOVE MOV <(RCSRC-RSTEP),<(RCDST-RSTEP) RCDST JMP RSTART+RSTEP,RBDST+(RSTEP*2)+1 RBDST SPL 0,#RSTART-240 SHOOT SPL FLAUNCH SPL RLAUNCH MOV #(WAIT/3),DELAY WATCH JMN DIE,RSTART-150 JMN DIE,FBDST+150 DELAY DJN WATCH,#DELAY JMP SHOOT FLAUNCH MOV #FCDST+2+FSTEP-FCSRC,FCSRC-FSTEP MOV #2+(FSTEP*2),FCDST-FSTEP MOV #FCDST+2+FSTEP-FCSRC,FCSRC MOV #2+(FSTEP*2),FCDST MOV #241,FBDST SPL 1 SPL 1 SPL 1 SPL 1 JMP FMOVE DIE DAT 0,0 LAUNCH SPL DLAUNCH DJN 0,#(32*2+4) MOV DIE,DSTART+(32*DSKIP) JMP SHOOT DSKIP EQU (247) DLAUNCH MOV DSRC,DSRC-DSKIP MOV DDEST,DDEST-DSKIP SPL 1 MOV -1,0 JMP DSTART DSRC DAT DDEST+1+DSKIP DSTART MOV (FBDST-FSTEP) MOV FBDST-FSTEP,>(FBDST-FSTEP) MOV FBDST-FSTEP,>(FBDST-FSTEP) MOV FBDST-FSTEP,>(FBDST-FSTEP) MOV FBDST-FSTEP,>(FBDST-FSTEP) MOV FBDST-FSTEP,>(FBDST-FSTEP) MOV FBDST-FSTEP,>(FBDST-FSTEP) MOV FBDST-FSTEP,>(FBDST-FSTEP) MOV FCSRC,>(FBDST-FSTEP) MOV FCSRC,>(FBDST-FSTEP) MOV FCSRC,>(FBDST-FSTEP) MOV FCSRC,>(FBDST-FSTEP) FMOVE MOV <(FCSRC-FSTEP),<(FCDST-FSTEP) FCDST JMP FSTART+FSTEP,FBDST+(FSTEP*2)+1 FBDST SPL 0,#241 END LAUNCH -- Eric J. Schwertfeger, maniac@cs.unlv.edu Article 1495 of rec.games.corewar: From: @prism.cs.orst.edu Newsgroups: rec.games.corewar Subject: Copycat and more Message-ID: <1efceeINN85l@flop.ENGR.ORST.EDU> Date: 19 Nov 92 06:32:46 GMT Article-I.D.: flop.1efceeINN85l Organization: CS Dept, Oregon State University Lines: 125 NNTP-Posting-Host: prism.cs.orst.edu I couldn't believe if there is any of us who would rather grab somebody else's code, rename it without make any reasonable changes, submit it to KotH and perceive it as his own thereafter. Even though we modify one or two lines, we still could justify how much contribution we made on the success of program. I think it is a very nice thing for people to have ways to accredit the author of program they borrowed. This copycatting is normal as far as we keep respecting the ethics we all know. To come to the pure and original concepts is a very rare situation. Even though it is pure, it also has to be success. We wouldn't have programs such as Charon, Crimp, No Mucking About and others if the original concept (CMP scanner) is limited to one. And similarly for other concepts such as B-scanner, paper, slaver, bomber, IMPs, anti-IMPs etc Now, imagine a situation when somebody submitted his program into KotH. And somehow, his program inspired two other people who never know each other. Both developed the same techniques and submitted the almost similar programs. Both were success. Then who claimed the original ideas? This might be the exact situation of the current debate about Impressive and Imprimis. And another one: a 'gate'. I called this 'IMPs gate' in my first posting since there was no other term of using this kind of technique. And then P.Kline started referring this to my name and made it public without asking me any permission. Not long after, I think it was Campbell Fraser, described that he also implemented the very same technique in his No More Mucking About. We never talked each other. But, Beholder's Eyes (Modified B-scanners live in vain) and No More Mucking About were the two scanners which occupied the very high positions at the time after Anders published his IMPire. There was no Campbell's posting (At least my local system doesn't receive it) and my posting was distributed locally (My apologize to those who didn't receive it). We both came to the same idea of using pre-decrement DAT to protect scanner from IMPs independently. I stated this as non-unique (but original) technique to avoid this kind of copycatting problem. Below are three source codes. Two of them are repost of my previous ones to those who haven't received it. ----------------------------------------------------------------------------- ;redcode ;name Beholder's Eye v1.1 ;author W. Mintardjo ;strategy Modified B-Scanners Live in Vain (Matt Hastings) with IMPs immunity ;kill Beholder's Eye v1.1 step EQU 2234 init EQU -2 main ADD #step, 3 JMZ -1, @2 MOV jump, @1 MOV snow, Date: 19 Nov 92 19:01:44 GMT Sender: news@njit.edu Organization: New Jersey Institute of Technology Lines: 26 Nntp-Posting-Host: newark-gw.njit.edu Hiyas, I found this corewar yesterday playing with ftp. I had heard of it before but had never seen it. It is rather interesting and I am trying to learn more about redcode. So far I have tried combining imp and dwarf I got a program good at surviving but not good at killing. I wanted it to go forward as a normal imp but also split and throw dat bombs behind me as I go forward. Please explain to me how to code this stuff. I have no experience in assembly. What follows is the program that I sort of put together. ;redcode ;name orc ;author Timothy Echeandia ;strategy Well I am rather new to corewar so I tried combining imp ;and dwarf. You get a more deadly imp an thereby the name orc. I am ;running corewars the X11 version and it survived against xtc. I think ;that this warrior more survives and ties than kills off. Right now ;killing off is giving me problems. orc mov orc, orc+1 bomb dat #0, #0 bomber add #-4, bomb mov bomb, @bomb jmp bomber end orc Article 1507 of rec.games.corewar: Newsgroups: rec.games.corewar From: pk6811s@acad.drake.edu Subject: bombs, bombs, and more bombs Message-ID: <1992Nov25.111019.1@acad.drake.edu> Lines: 126 Sender: news@dunix.drake.edu (USENET News System) Nntp-Posting-Host: acad.drake.edu Organization: Drake University, Des Moines, Iowa, USA Date: Wed, 25 Nov 1992 17:10:19 GMT It is HARD to keep a bomber on the Hill. Last summer I suggested we needed more bombers to reduce the number of scanners on the Hill, and give replicators some relief. (I have a marvelous 6-process, self-purging replicator that gets murdered every time it's submitted). With the appearance of imps, things have gone from bad to worse. All the old bombers were wiped out. Well, so were all the old scanners. But now the scanners are back, bigger and tougher than ever, so it's time for some bigger and tougher bombers too. Here's the code for ExtraExtra 2, and Emerald 2. Feel free to use parts of them as component parts of your own fighters. ;redcode ;name Emerald 2 ;kill Emerald ;author P.Kline ;strategy stone with djn stream ;strategy attempting a gate ;strategy new anti-pittrap code spacing equ 2365 hide1 spl 0,<-6 hide2 mov 49,<-20 hide3 sub @hide2, Date: 26 Nov 92 05:52:19 GMT Organization: Georgia Institute of Technology Lines: 134 I would like to share some of my code. PLASMA4a is my first program to reach #1 on the hill. Too bad it didn't stay up there very long. It can't survive with all of the imps and scanners out there. I'm sure someone could come up with an improvement. Heres an idea of how it works: The main loop scans until it finds something non-zero( also ignoring -1 ). Then it bombs up from that location, while a replicator kicks in. The second program is where I got the inspiration for PLASMA. Send it in to the Hill and look at the scores. It does amazingly well against other scanners and bombers. (65-35-0 on average) But against reps and imps, it loses 99 times out of a hundred. Maybe some other people could post some code also. ;redcode verbose ;name PLASMA 4a ;author Wayne Sheppard bomb equ start-1 start add #3039,loc ;mod 1 loc jmz start,-1 cmp #-1,@loc ;don't look at DJN trails slt #100,loc ;program length jmp start spl rep spl 0 mov bomb, Sender: news@ida.liu.se Organization: CIS Dept, University of Linkoping, Sweden Distribution: rec Date: Thu, 26 Nov 1992 16:05:11 GMT Lines: 175 Here's the code for my programs Griffin 2 and Leprechaun 1b. Griffin is just a highly optimized cmp-scanner, but Leprechaun uses a rather interesting technique to bomb and scan at the same time. BTW: Does anyone know how to contact Jon Newman? His system seems to be down... /Anders Ivner ;redcode ;name Griffin 2 ;author Anders Ivner ;strategy small spl/jmp bombing cmp-scanner boot mov Date: 11 Dec 92 18:12:45 GMT Distribution: rec Organization: Black Star Lines: 110 In answer to Wayne's imp killing question, here is the code for Artagel v3, along with some pertinent scores for it. Artagel uses one of the "magic numbers", 3359, and consequently bombs very effectively despite its relatively slow speed. The 3059th bomb hits the mov statement, creating a gate. By this time, the largest distance between two consecutive bombs is 2. Artagel is useless against paper or fast bombers. The Crusher, which is currently maintaining a tenuous grip towards the bottom end of the hill, also uses 3359 as an offset, and a mod 3359 cmp-scanner is in the offing. What can I say? Untold gratitude to the person who originally posted the magic numbers! Cheers, Si. ;redcode ;name Artagel v3 ;author Simon Hovell ;strategy: bomber with gate Artagel:spl 0, <-20 mov 3,1-3359 add #-3359,-1 jmp -2,<-23 dat <-21,<1 ;1 inserted to slow down djn start, Lines: 189 Sender: news@dunix.drake.edu (USENET News System) Nntp-Posting-Host: acad.drake.edu Organization: Drake University, Des Moines, Iowa, USA Date: Sun, 10 Jan 1993 23:58:43 GMT W. Mintardjo asked me whether Imprimis 3 didn't have a core clear, since it did not kill his 'Empty' do-nothing program. Indeed, Imprimis 3 did not have a real core clear. I started thinking about it and decided it would be worth a few tests. Result - Imprimis 4. Not quite up to Sphinx stature, but definitely an inprovement. Basically it is a mod-4 stone which gets most of the early cycles, but kills itself after the mod-4 pattern is complete. There is also an anti-vampire tracer which is converted to a core-clear by the stone (before it dies). The core clear finishes just before it is overrun by the imps, and just before 80,000 cycles elapse. I do not think the resulting imp-gate does much good, looks like gating your own imps is harder than gating your opponent's imps - since you have to interleave the processes - imp/gate/imp/gate/imp/gate... Maybe someone could suggest a launcing sequence that would do that? Also, it is clear in my tests that the long startup is a problem, and Imprimis 4 sometimes gets stunned/vamped before it gets out of the starting block. ;redcode ;name Imprimis 4 ;kill Imprimis ;author P.Kline ;strategy stone like ExtraExtra ;strategy two 3-point spirals like Impression ;strategy anti-vampire code ;strategy core clear -> imp-gate ;strategy sorry - sink wouldn't fit d equ 2667 stone mov <5630,stone+3044+1 extra spl -1, Date: 16 Jan 93 16:40:22 GMT Organization: Georgia Institute of Technology Lines: 19 ;redcode quiet ;name RedRain ;author Wayne Sheppard add #3039,1 jmz -1,-1 mov 2,@-1 jmp -3 Here is the program that tank beats 99 times. Alot of other programs beat it 99-100 times. But it beats all of the scanners about 60-70% I modified the constant so that it scans 3/4 of the core before it kills itself. This allows it to kill a couple more programs by giving up some ties. -- 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 1576 of rec.games.corewar: From: gt7804b@prism.gatech.EDU (Wayne Edward Sheppard) Newsgroups: rec.games.corewar Subject: A cmp scanner Message-ID: <80598@hydra.gatech.EDU> Date: 18 Jan 93 22:29:07 GMT Organization: Georgia Institute of Technology Lines: 32 Here is a basic cmp scanner that attempts to defeat imps. I've been looking for a way to shorten it by one line, but no such luck. ;redcode quiet ;name Iron Gate ;author Wayne Sheppard ;strategy cmp scanner-SPL/JMP-Gate ;kill Iron Gate ;dist=76 for Sixth Sense dist equ 98 scan equ dist*2 add off,@x loc cmp dist-1,-1 slt #14,@x djn -3,<7000 mov j,@loc x mov s,