From: stst@vuse.vanderbilt.edu (Stefan Strack) Subject: Implementing ICWS94 Message-ID: Date: Thu, 1 Jul 1993 01:12:53 GMT [posting this for Albert Ma whose newsreader is down -stst] In article , Stefan Strack writes: |> Albert Ma has already announced support for icws94 in the next release of |> mercury2. Maybe we can get him to implement the draft ahead of time, so |> at least the PC people have something to work with. How about writing |> MARS94 yourself, Nandor? Well, programming mercury2 without a computer was hard enough. Mercury94 would require a complete rewrite of the simulator code and the compiler code (which I haven't touched in a long time). Writing optimized assembly code has its drawbacks. I don't have time now (or a computer), but I figure I'll have more free time once the fall term begins (weird huh?) in September. Sorry folks. |> What would be really nice to have is a "minimal-standard, portable MARS", |> a core parser and interpreter, perhaps a simple line-oriented debugger |> (mercury2 style) all written in portable C. No display, nothing hardware |> dependent; modular, well-documented code, no speed optimizations, easily |> extensible with platform-dependent code for GUI, etc. |> This would make playing with new rules a lot easier. Any takers :-)? I think the best hope is to kludge on a debugger onto KotH94 just like I did with Mercury2. Incredible what you can do with conditional compilation. If only KotH was in assembly... I know C basically, meaning I can probably do what any C hacker does, but I would have to look things up constantly and would take me a very long time to do it. Maybe I could help with the debugger since I know how it works. [KotH isn't exactly portable. On PCs e.g., neither BC/TC nor MSC will compile the huge instruction decoder. Maybe with a 32-bit compiler, DOS- extender, or under OS/2 .... -stst] Albert Ma ama@athena.mit.edu Darn it! This stupid news server is not letting me post again, so I have to make up some dumb sig that fills up space and wastes bandwidth. Or maybe the server's down. This sig doesn't seem to be working. :-| From: stst@vuse.vanderbilt.edu (Stefan Strack) Subject: portable MARS (was Re: Implementing ICWS94) Message-ID: Date: Thu, 1 Jul 1993 06:39:17 GMT In article <93181.191800AZNXS@ASUACAD.BITNET> writes: >So maybe we need to start it from scrach. Maybe we can use the expression >parser in Koth. KotH's parser is lex/yacc (actually flex/bison) based and therefore a pain to port unless these tools are available on the target platform (for a change I speak from experience here because I ported an early version of KotH to DOS). Let me emphasize the need for a portable MARS (we're no longer talking strictly icws94 draft here, but generally rule modifications): One of the reasons that Bill's experimental hills failed in the past is, I believe, lack of cross-platform support. Not enough people have access to a UNIX workstation, where they can install KotH and debug their warriors. Even if we got an experimental icws94 server up and running, I fear participation would be similarly mediocre unless we also provided MARSs that corewar players could use on their Macs, PCs, Amigas at home. So, let's scrap the idea of modifying the little-portable KotH sources and start from scratch with portable MARS. This is an ambitious project, but will be very useful in the long run. To recap, pMARS will be written in portable C, divided into exchangable modules for easy modification, avoiding platform specific features. There will be a loader and a simulator module, with a very simple debugger incorporated into both (similar to mercury2). The basic program is command line driven and probably non-interactive; display and GUI can be added for each target platform, but this is not part of the initial design specs. The UNIX version of pMARS with icws94 extensions will be the heart of the experimental server at stormking.com. Mintardjo, Nandor, and I have teamed up so far, but we could use additional help, mainly from people good at writing portable C. Also useful would be consultants for Mac, Amiga, Atari, etc. platforms, who we could ask for advice on how to make pMARS run on their system. Sounds like a fun team effort, doesn't it? -Stefan (stst@vuse.vanderbilt.edu) > >I think mars94 won't be ready in the near future. I should study analisys >for my exam. But I will release a slightly new mars88 that can call >Mercury2 or any other program. > >Nandor. From: sadkins@bigbird.cs.ohiou.edu (Scott W. Adkins) Subject: Re: Implementing ICWS94 Message-ID: <1993Jul1.190416.27578@oucsace.cs.ohiou.edu> Date: 1 Jul 93 19:04:16 GMT In article stst@vuse.vanderbilt.edu (Stefan Strack) writes: > >[KotH isn't exactly portable. On PCs e.g., neither BC/TC nor MSC will >compile the huge instruction decoder. Maybe with a 32-bit compiler, DOS- >extender, or under OS/2 .... -stst] Well, if you guys want to hack on my Deluxe package, feel free... there is a lot of room for speed increases, and I tried to leave a lot of #ifdefs in so that things can be compiled for speed. The display code is optional and also can be compiled out if necessary. The nice thing about the deluxe package is that it is quite portable. It works on all unix boxes, and it works on the pc. It was also recently ported to an amiga. I haven't worked with it in awhile, but maybe you guys would like to try your hand at it. Any takers? Scott -- Scott W. Adkins Internet: sadkins@ohiou.edu ~~~~~~~~~~~~~~~ ak323@cleveland.freenet.edu Ohio University of Athens Bitnet: adkins@ouaccvma.bitnet From: doligez@clipper.ens.fr (Planar) Subject: RISC corewar Message-ID: <1993Jul1.190852.27495@ens.fr> Date: Thu, 1 Jul 93 19:08:52 GMT Disclaimer: Hey! I'm only a newbie. I am not trying to take over the ICWS or the standard. If you veterans get tired of reading my rantings, just tell me so, and I will stop. In article <1993Jun28.121909.1476@ens.fr> I wrote: >I'm looking for more addressing modes. I do not like all the wasted bits. >Maybe postincrement indirect, and even postdecrement and preincrement. >We would need to find a syntax for these. I think I have the solution. There are four basic addressing modes : 0. # Immediate 1. $ Direct 2. [ Direct Predecrement 3. ] Direct Postincrement A full addressing mode is composed of two basic addressing modes. An operand is a full addressing mode and a number. The value of #operand is operand itself. The value of $operand is the byte (or word) pointed to by operand. This is the same as in CISC corewar. Now here is the interesting stuff: The value of [operand is the same as $operand, but it is decremented before reading it from memory. The value of ]operand is the same but incremented after reading. [ and ] are weaker than < and > because they do not do a second indirection. But we can use two of the things. This is how we emulate the old addressing modes : # --> ## $ --> $# or #$ @ --> $$ < --> $[ > --> $] And there is more. We can also emulate most of the uses of DJN, now: DJN A, $b --> JNE A, ##0, [#b DJN A, @b --> JNE A, ##0, [$b DJN A, JNE A, ##0, [[b (the missing one is DJN A, #b) We now have 16 addressing modes, and use all of the bits in the op-code byte. Three of the addressing modes are redundant, but so what ? And the most powerful instruction now changes 6 memory locations at once: ADD [[A, [[B, [[C Elegant ? Bletcherous ? Let me know what you think. -- Planar (I really wish I had more time to try implementing this thing.) Date: Thu, 1 Jul 1993 19:23:21 MST From: Message-ID: <93182.192321AZNXS@ASUACAD.BITNET> Subject: Re: RISC corewar The question is who wants implement it. It's a pain to deal with this arsenal. Nandor. From: sadkins@bigbird.cs.ohiou.edu (Scott W. Adkins) Subject: Re: portable MARS (was Re: Implementing ICWS94) Message-ID: <1993Jul2.025444.24733@oucsace.cs.ohiou.edu> Date: Fri, 2 Jul 1993 02:54:44 GMT In article stst@vuse.vanderbilt.edu (Stefan Strack) writes: > >Mintardjo, Nandor, and I have teamed up so far, but we could use additional >help, mainly from people good at writing portable C. Also useful would be >consultants for Mac, Amiga, Atari, etc. platforms, who we could ask for advice >on how to make pMARS run on their system. Sounds like a fun team effort, >doesn't it? I would like to be a part of the effort as well. One of my original intentions when writing the Deluxe package was to be portable across all systems, and I took great pain making this work. Unfortunately, this means doing things like the following: 1) Using old style C declarations (which means quite minimal prototypes) 2) Using #defines instead of enumerations 3) Explicitly using short when 2 bytes of information is needed and using long for 4 bytes (since regular int is usually a long on unix and a short on pc's) And the list goes on. Another major consideration when writing portable code is memory requirements. So, I developed another rule: 4) Use #ifdef DEBUG statements anywhere possible that would give a clue to the correctness and efficiency of the code. So, consequently, when I malloced memory and freed it up, I contantly kept track of how much was currently in use and how much total memory was in use at any one time (the maximum memory used so far). You would be surprised about the memory requirements of some systems. Even more can be done. The Makefile was another one of my favorites. It was possible to make a makefile automatically choose the unix version or the pc version depending on whether the person typed make *on* the unix machine or the pc machine... Essentially, the makefile ran something called makeinit. On Ms-Dos, makeinit.bat was executed and on Unix, the shell script makeinit was executed. And even more can be done. The Makefiles can allow the user to include as much as he/she wants to include... SYSV/BSD/MSDOS/AMIGA, etc. CURSES/ XWINDOWS/NODISPLAY/ANSI, etc. DEBUG/EXTRA-FEATURES, etc. The point is, it isn't really that hard to come up with a portable system. Not really. (I say that because I *did* do that.) I don't expect you guys to use my package at all, and probably wouldn't be wise, since I already wrote the thing and it is basically complete in nature. But the ony way I could have written it was with the help of all those people out there on each of those machines (and all of the machines I had access to at that time...). In any the case, you got me all reared up and ready to go! But we still need some more people... don't we? Stefan, we need a list of people and the types of machines that can test and/or actually program on. I will email my list of you request it. Scott -- Scott W. Adkins Internet: sadkins@ohiou.edu ~~~~~~~~~~~~~~~ ak323@cleveland.freenet.edu Ohio University of Athens Bitnet: adkins@ouaccvma.bitnet From: pk6811s@acad.drake.edu Subject: _Push Off_ Message-ID: <1993Jul2.092137.1@acad.drake.edu> Date: Fri, 2 Jul 1993 15:21:37 GMT _PUSH OFF_ A midweek review of Corewar July 2, 1993 ------------------------------------------------------------------------------- I. The Standings: # %W/ %L/ %T Name Author Score Age 1 42/ 35/ 23 Winter Werewolf 3 W. Mintardjo 149 155 2 34/ 25/ 41 FlyPaper 3.0 J.Layland 142 261 3 42/ 42/ 16 Grimm's Vampyre c w blue 141 20 4 37/ 33/ 30 Herem VI Anders Ivner 141 9 5 30/ 20/ 49 testing Anders Ivner 141 2 6 42/ 44/ 14 Impurge Fredrik Ohrstrom 141 161 7 42/ 44/ 13 Dragon Spear c w blue 140 939 8 43/ 48/ 9 Agony 6.0 Stefan Strack 139 91 9 30/ 25/ 45 Sphinx v2.8 W. Mintardjo 136 1835 10 41/ 48/ 11 Charon v8.1 Cisek,Strack,Kline 135 1 11 30/ 25/ 45 Deck of Many Things c w blue 135 69 12 29/ 24/ 47 Night Crawler Wayne Sheppard 133 837 13 29/ 24/ 47 Imprimis 7 P.Kline 133 77 14 39/ 48/ 13 Fire Storm v1.1 W. Mintardjo 130 476 15 28/ 26/ 46 ttt nandor sieben 130 61 16 26/ 24/ 50 Incrimination v1.0 Brant D. Thomsen 129 241 17 30/ 33/ 37 Passport P.Kline 128 47 18 34/ 44/ 22 Wimp 8.1 Brant D. Thomsen 125 72 19 19/ 15/ 66 Imps! Imps! Imps!-d Steven Morrell 122 71 20 19/ 34/ 47 Express P.Kline 105 3 21 2/ 2/ 0 Charon v8.1 Cisek,Strack,Kline 7 22 ------------------------------------------------------------------------------- II. The Basics: -Core War Archives are available via anonymous FTP at soda.berkeley.edu in pub/corewar... -FAQ for this newsgroup is available via anonymous FTP at rtfm.mit.edu as pub/usenet/news.answers/games/corewar-faq.z ------------------------------------------------------------------------------- III. The Scoop: Major accolades go out this week to W. Mintardjo, whose Sphinx v2.8 has set a new duration record for KotH. Will Sphinx break the 2000 barrier? How high can he go? At the other end of the scale, major frustration to W. Sheppard who knocked of his own Snake warrior due to low performance (too many anti-vamps out there Wayne? :-) With his flagship Night Crawler suffering the blues, he tried this one: 20 32/ 47/ 21 !@#$%^&*() Wayne Sheppard 117 1 Ah! the sweet feeling of success: 5 28/ 14/ 58 Imps! Imps! Imps!-d Steven Morrell 141 10 S. Morrell seems to have discovered the secret of tying, but he's also tough on Irony which dropped a bunch. (Irony would be one of yours, wouldn't it, Wayne? :-) It took him six or seven tries, but A. Ivner finally got his reincarnation of Herem to work as well under the name Herem VI as it did as 'test Herem'. Maybe there's something to this 'test' name theory of mine. This week's hot topic on rec.games.corewar is the new draft proposal for the Corewar language. Seems everyone has a favorite expansion idea. Mark Durham worked overtime to draft the latest version, which is a major feat, and excellent work. Now we'll see if we can get people past the bitching, booing, and hissing phase into a constructive process leading to an improved standard. Internet news has been described as anarchy, so it should be interesting to see how this develops. And speaking of changes, this 'conservative veteran' would like to report that he has just ordered Think C v6.0 for his Mac and will soon be abandoning Basic for the new world of C. Just so's you all know I'm not just a stick-in-the-mud who's afraid of change. Give me a week or two with the manual, and I'm sure I can start helping with the 'portable Corewar' project :-) Besides, this package comes with a free trip to Hawaii. ------------------------------------------------------------------------------- IV. The Outlook: 3 33/ 18/ 48 testing Anders Ivner 148 1 4 40/ 32/ 28 test Herem Anders Ivner 148 1 6 39/ 33/ 28 Herem VI Anders Ivner 144 1 7 32/ 26/ 43 ttt nandor sieben 138 1 7 34/ 30/ 37 Passport P.Kline 137 1 9 40/ 42/ 18 Grimm's Vampyre c w blue 138 1 10 41/ 46/ 13 Irony Wayne Sheppard 136 1 ------------------------------------------------------------------------------- V. The Quick Look: 18 38/ 44/ 18 Wimp 8.1 Brant D. Thomsen 133 1 19 23/ 15/ 62 Imps! Imps! Imps!-d Steven Morrell 131 1 19 24/ 47/ 29 Charon v9.0 Cisek,Strack,Kline 101 1 19 35/ 43/ 21 Elizabeth Bathory c w blue 128 1 20 17/ 37/ 46 Blasto Michael Constant 97 1 20 20/ 26/ 54 Stupidimp Michael Constant 113 1 20 22/ 57/ 21 Speedyvamp Phil Long 86 1 20 23/ 39/ 38 Spare Parts Fredrik Ohrstrom 107 1 20 28/ 28/ 45 Eight Ball Wayne Sheppard 127 1 20 32/ 47/ 21 !@#$%^&*() Wayne Sheppard 117 1 20 32/ 53/ 15 Dracula's Revenge IV Fredrik Ohrstrom 110 1 20 33/ 54/ 13 Dracula's Revenge III Fredrik Ohrstrom 113 1 20 36/ 53/ 12 Dracula's Revenge Fredrik Ohrstrom 119 1 20 38/ 47/ 15 FILL OUT THE POLL PLEASE Stefan Strack 129 1 20 38/ 48/ 14 Twilight Pits 9 W. Mintardjo 128 1 20 41/ 56/ 3 test j.layland 125 1 21 0/ 46/ 54 List Unknown 55 0 21 3/ 63/ 33 King Wannabe v1 Planar 43 0 21 5/ 87/ 8 Skimp Noah Constant 24 0 21 6/ 70/ 25 Test Joshua Houk 42 0 21 10/ 49/ 42 Stonsor v1 Nathan Sullivan 70 0 21 11/ 56/ 33 toilet paper Steven Morrell 66 0 21 11/ 82/ 8 Montecristo 0 Planar 40 0 21 11/ 87/ 2 Sonar 1 Planar 35 0 21 13/ 85/ 2 Mission 41 Nathan Sullivan 41 0 21 14/ 49/ 38 Imp Paper Phil Long 78 0 21 14/ 50/ 37 Distributed Staper V2 Phil Long 78 0 21 15/ 61/ 24 Impersonation Noah Constant 70 0 21 15/ 64/ 21 Antidwarf Phil Long 67 0 21 15/ 68/ 17 Tinyvamp Phil Long 62 0 21 15/ 75/ 9 Imphater Phil Long 56 0 21 16/ 47/ 37 Staper 2 Phil Long 85 0 21 17/ 31/ 52 Jester Michael Constant 103 0 21 17/ 59/ 24 Gentle Vampire Phil Long 75 0 21 17/ 82/ 1 Mission 41.2 Nathan Sullivan 51 0 21 18/ 55/ 27 Gentle Vampire V1.2 Phil Long 81 0 21 21/ 52/ 27 Distributed Staper V1.1 Phil Long 89 0 21 22/ 49/ 28 Staper1 Phil Long 96 0 21 22/ 68/ 11 Test5 Steve Gunnell 76 0 21 23/ 76/ 1 KKOLDDDITZZZZ!!! Han-Wen Nienhuys 69 0 21 24/ 59/ 18 Invest Andre van Dalen 88 0 21 25/ 56/ 19 Distributed Staper Phil Long 94 0 21 25/ 67/ 8 THIS SPACE FOR RENT Steven Morrell 84 0 21 28/ 37/ 36 Anti-Impaper c w blue 119 0 21 29/ 53/ 18 splscan nandor sieben 104 0 21 31/ 50/ 19 Stoned Again c w blue 112 0 21 31/ 50/ 20 Berserk 1 Planar 112 0 21 32/ 53/ 15 sub-type-ds c w blue 111 0 21 33/ 56/ 11 BloodStalker UnO Fredrik Ohrstrom 109 0 21 34/ 49/ 17 sub-type-b c w blue 119 0 ------------------------------------------------------------------------------- VI. The Hint: You submitted 'Blastem', and it scored 129 points and got on the Hill. Great! Then you tweaked your constants and it dropped to 120 :-( So you resubmitted the original and it still only gets 120. What is going on? A couple of factors are involved here. Your first submission probably knocked off a warrior that you beat. Your second submission has to play your first version, instead of the weaker warrior, and doesn't do so well against him. Another factor is that you only battle 100 games against each opponent per submission. And 100 is still a small enough number (out of nearly 8000 possible setups) that through sheer chance you will win or lose a few more against the same opponent on successive tries. In fact you should probably not feel too confident in a gain of 10 wins or less against any one opponent. When submitting variations of the same warrior, look for gains against a whole class of opponents - paper, scanners, imps, stones, etc. Then you'll know you are on to something. ------------------------------------------------------------------------------- VII. The End: Paul Kline pk6811s@acad.drake.edu From: pk6811s@acad.drake.edu Subject: Passport Message-ID: <1993Jul2.095238.1@acad.drake.edu> Date: Fri, 2 Jul 1993 15:52:38 GMT Here is the source for Passport, which is an attempt to resurrect replicators on the Hill (I mean besides FlyPaper :-). Passport starts with a very fast bombing run to cripple/disable any slow-starting opponents. This also gives it 50% wins against itself, an unusual and advantageous feature for paper. Then it launches an anti-vamp thing that is a little like Gemini, and a special anti-imp paper. The problem with beating imps from paper is that the imps suborn your own processes which then work against you, so you have to kill off your own guys as well as the opponent. Passport dat-bombs in front of each copy to prevent being overrun by one of its own suborned processes, and also at step '-1343' as well, to prevent being overrun by one of its processes running at -2667 or -5334. I think in practise, it is the anti-vamp bombers that usually kill the imps, but the paper frequently retains it's integrity right up to the end of the battle and does score some late-game wins. ;redcode quiet ;name Passport ;kill Passport ;author P.Kline ;strategy paper & stuff ;strategy let's see you dodge _this_ antivamp :-) bomb1 dat #1 bombsp equ 108 bombhf equ bombsp/2 bombfx equ start+100 bomba equ bombfx-3*bombhf+(start*bombsp) bombb equ bombfx-(start*bombsp) p2w equ p2-150 start mov In some article planar writes: >A full addressing mode is composed of two basic addressing modes. >An operand is a full addressing mode and a number. Eh, really bletcherous. This RISC corewars is more complex than the CISC corewars. It's not the number of operators or addressing modes that makes something RISC. It's the simplicity of execution. In principle a RISC command should execute in fewer steps than a CISC command. There's really not much we could do to make corewars any RISCier than it is. Well, actually, we could convert to in-memory execution. That simplifies execution a little bit. Just my -$.01 worth. From: dak@jacquard (Pierre Baillargeon) Subject: Re: portable MARS (was Re: Implementing ICWS94) Message-ID: <1993Jul2.230811.17768@vlsi.polymtl.ca> Date: Fri, 2 Jul 1993 23:08:11 GMT I don't think writing portable programs precludes using prototypes. They can be put between #ifdef, #endif pairs. Almost anything can be used as long as it is either easily put in a sub-module (custom or optional) or conditionnal compiling. Also, don't bet shorts are 16 bits and long 32. It may be different on machine like R4000 and Alpha, which are 64 bits processors. I wouldn't mind acting as an Amiga consultant, and I may vene have some times to do some programming (at least trying to port / compile it on an amiga system). -- "Pis Bourassa qui est toujours la. Y'a pas d'remede contre le SIDA" - French B ...........................................................dak@info.polymtl.ca From: sadkins@bigbird.cs.ohiou.edu (Scott W. Adkins) Subject: Re: portable MARS (was Re: Implementing ICWS94) Message-ID: <1993Jul3.192042.4084@oucsace.cs.ohiou.edu> Date: Sat, 3 Jul 1993 19:20:42 GMT In article <1993Jul2.230811.17768@vlsi.polymtl.ca> dak@jacquard (Pierre Baillargeon) writes: > > I don't think writing portable programs precludes using prototypes. They >can be put between #ifdef, #endif pairs. Almost anything can be used as long >as it is either easily put in a sub-module (custom or optional) or conditional >compiling. I agree here, and I have been revising my programs in the past couple of months that would allow prototyping for machines that use it and still compile on the machines that can't use it. I don't think "getting cproto/unproto" is the way to do it though... #ifdef/#endif is most certainly one way to do it. There are other ways of course... > Also, don't bet shorts are 16 bits and long 32. It may be different on >machine like R4000 and Alpha, which are 64 bits processors. Yes, this is also true. But at least shorts would use less memory than a long, and since you don't know whether an int would fall under the short or the long category, using them explicitly could save memory. Scott -- Scott W. Adkins Internet: sadkins@ohiou.edu ~~~~~~~~~~~~~~~ ak323@cleveland.freenet.edu Ohio University of Athens Bitnet: adkins@ouaccvma.bitnet From: DURHAM@ricevm1.rice.edu (Mark A. Durham) Subject: ICWS'94 draft, etc. Message-ID: <16C00CAEE.DURHAM@ricevm1.rice.edu> Date: Sat, 3 Jul 1993 19:25:50 GMT Wow. It never fails. Miss one weekend and there are fifty-two posts about the standard by the next time I download rec.games.corewar and my email! It necessitates this "grab bag" of replies: [Typographic Note: ALL CAPS (other than opcodes) should be considered italics for emphasis, NOT yelling at the top of my voice!] * MUL/DIV/MOD I do like them, we have removed the division by zero problem, and they do have value. I am in favor of MUL/DIV/MOD because they promote more complicated searches. Although multiplication and division are possible to emulate with ICWS'88 Redcode, no one uses them because of the high cost in cycles. Many superior bombing schemes are currently worthless because of the number of cycles necessary to emulate multiplication or division. One of the most repeated laments is that "intelligent" programs do not fare better in Core War. Adding MUL/DIV/MOD intentionally favors "intelligent" programs by speeding many of them up. Adding MUL/DIV/MOD also removes one of the major obstacles to writing programs which do not depend on knowing coresize before assembly. Many people want to write tables with DAT CORESIZE/4 DAT CORESIZE/2 DAT 3*CORESIZE/4 and the like. With MUL/DIV/MOD, this can now be accomplished during runtime without knowing coresize with quart DAT -1 half DAT -1 three DAT -1 start DIV quart, #4 DIV half, #2 MOV quart, three MUL three, #3 Yes, it is slower than knowing the coresize before assembly, but it WILL work no matter what the coresize. * Much thanks to Planar for the excellent assistance rendered, especially in the areas of ambiguity and division by zero. Here are my replies to some of those comments. >>0146 A line may consist of an instruction, a pseudo-instruction, a comment, >>0147 or an instruction or pseudo-instruction followed by a comment. Each >This phrasing rules out the use of blank lines. This is inconsistent >with the formal grammar given in section 2.3. The above phrasing does NOT rule out blank lines and IS consistent with the grammar because a "blank line" (a newline) is a valid comment as seen below in the grammar. 0190 comment: 0191 ; v* newline | newline The paragraph starting at 0146 DOES need to be rewritten for clarity and to be more consistent with the grammar though. >>0176 line termination. End-of-file should occur only where newline could >>0177 logically occur, otherwise the load file has been terminated >This is also inconsistent with the formal grammar. First of all, that should be "assembly file" in line 0177 and not "load file" (the error is in the draft, for those of you keeping score at home). End-of-file is NOT part of the grammar and therefore MUST be inconsistent with the grammar. You COULD make EOF an explicit part of the grammar by changing lines 0184-0185 to 0184 assembly_file: 0185 list EOF but this is UNNECESSARY and UNDESIRABLE for the following reason. The end-of-file condition varies greatly from system to system, from programming language to programming language, and even from plain ASCII text editor to text editor. As an example, some text editors will add a newline on the last line (otherwise sans newline) of a file before EOF and some will not. The original wording of the draft does not insist on a newline before EOF. The above change in the grammar does. I am torn as to whether it is better to use the preprocessor version of the example MARS or to explicitly write out the code as in the draft. The preprocessor version reduces the draft length and points up the similarities of instruction execution nicely. I do think that the explicit code offers better clarity (at the individual opcode level) and far fewer backslashes. All other points are well taken and have been incorporated into MY latest copy of the draft. * Speed of implementations of ICWS'94. This issue has been fairly well resolved but I wanted to add two things: 1. Computers get faster every day. 2. If we could disguise an NP-complete problem as a MARS implementation problem, someone on rec.games.corewar would revolutionize computer science while speeding up their interpreter. * Separation/Minimum Separation These are two separate concepts. When the Separation is RANDOM (or perhaps constant but unspecified), the Minimum Separation guarantees at least a minimum amount of space between warriors. This is fairly explicit in the draft. * Case-sensitivity Labels are case-sensitive. Opcodes are not in assembly files. They should be all upper-case in load files. The opcode non-sensitivity is stated explicitly in the draft (although not in the grammar as this would be unruly). * Ballot Sigh. I missed out on yet another vote. :'( Well, here is my ballot anyway. -------SNIP------SNIP-----SNIP------ 1. Select with X I am an ICWS member [X] 2. Select with X I am a veteran corewar player [X] 3. Select with X I have read the draft [X] 4. Select with X I like the draft but need to try it out first [X] 5. Answer with [Y]es or [N]o. I like instruction modifiers [Y] I like postincrement indirect [Y] I like DIV/MUL/MOD [Y] I like (optional) read/write range limitations [Y] 6. I really would like to see these additional opcodes, addressing modes, etc., included in ICWS94: WIN - instructions with this opcode are just a NOP unless there is an "; author Mark A. Durham" comment in the assembly file, in which case the game is immediately over, this warrior is victorious, and all other warriors are losers. * The Philosophy of Core War >My impression has been that it is to make the best program possible out >of a limited and quirky set of operands. The "limited" part was at least initially true in Dewdney's first Core War article in Scientific American. In the same article though, he suggests extending the instruction set. "Quirky" was never mentioned. I must admit, my impression of ICWS'88 is that it is "limited and quirky" as well. I do not think that this was ever adopted as official "philosophy". We did set up a philosophy for the draft however. Neither "limited" nor "quirky" were included. * About an experimental draft-ICWS'94 KotH I consider "testing" the draft with real programs on a real system essential. You can count on a draft-ICWS'94 version of "The MADgic Core for the Amiga" to be available soon. I was just waiting to see if there were any more major changes to the draft before committing to the project. I promise to remember to include the "Help" files this time. (They were all set for MAD50B.lzh. I just forgot them. Sorry.) * About the "portable Core War system" project. There are three possible routes to a portable C program: 1. Write a program that will compile and run on any system with an ANSI C compatible compiler. This is the simplest route with the least portability. Just remember to avoid system-defined constructs. I have a compiler with a "STRICT ANSI" switch which warns you if the program has any incompatibilities (including the library functions) and will gladly test any C code. 2. Write a program that will compile and run on any system. This is the most difficult route and obviously the most portable. The problem is that the conditional code size grows to the point that you may as well write separate programs for at least some of the systems. 3. Write a program that is easily ported. This is sort of half-way between numbers 1 and 2. It is more difficult than 1 without being any more directly portable. Other programmers can easily make the necessary changes however. As an example of the difference between 1 and 3, a class 1 program would use "char x" and "int i" without relying on their sizes whereas a class 3 program would use #ifdef MY_SYSTEM #define UBYTE unsigned char #define WORD short int #define LONG long int #endif UBYTE x; LONG i; and expect someone to make the necessary changes in the header file to port to a different computer and/or compiler. Congratulations! You have made it to the end of this posting! Mark A. Durham MAD From: dak@boole (Pierre Baillargeon) Subject: Re: portable MARS (was Re: Implementing ICWS94) Message-ID: <1993Jul4.035517.28542@vlsi.polymtl.ca> Date: Sun, 4 Jul 1993 03:55:17 GMT Scott W. Adkins (sadkins@bigbird.cs.ohiou.edu) wrote: : In article <1993Jul2.230811.17768@vlsi.polymtl.ca> dak@jacquard (Pierre Baillargeon) writes: : : > Also, don't bet shorts are 16 bits and long 32. It may be different on : >machine like R4000 and Alpha, which are 64 bits processors. : : Yes, this is also true. But at least shorts would use less memory than a : long, and since you don't know whether an int would fall under the short or : the long category, using them explicitly could save memory. : I have also worked on multi-platform program a lot. instead of using any type directly, you can typedef (or #define) your own type which you know the length of. I believe the R4000 C compiler gives 32 bit long integer and that they use a special type for 64 int (quad, or long long, I'm not sure). Oh, and also, people must not forget the big-endian / small-endian problem, especially if you're using bit-field. Although this is only important if you want to be able to exchanged pre-compiled warriors, I suppose. -- "Pis Bourassa qui est toujours la. Y'a pas d'remede contre le SIDA" - French B ...........................................................dak@info.polymtl.ca Date: Tue, 6 Jul 1993 19:30:04 MST From: Message-ID: <93187.193004AZNXS@ASUACAD.BITNET> Subject: mars88 I uploaded the nem version of mars88 to soda. I actually did it about a week ago. The only new feature is that it's possible to call Albert's wonderfull mercury2 (as well as any other programs) from mars88 with the loaded warriors. Nandor. From: TavenerS@LILHD.Logica.com (Stephen Tavener) Subject: Opinions on ICWS94 draft/the debate at large Message-ID: Date: Thu, 8 Jul 1993 16:43:40 GMT After reading the draft & the discussions, here are my thoughts... RISC Corewars ------------- Not for me - the quirkier the better. Extra instructions/thingies --------------------------- RND - generates random number from 0 to [core size-1], stores result in B-target EXR - execute remote - executes instruction at [A-pointer + pointer counter] (beware of loops!) >A Preincrement indirect Postincrement indirect A< Postincrement indirect [each argument may have either a pre- or post- modifier, not both] It would be good if your program could determine the following: - How many processes it has running; this may make it possible to defend against "SPL 0" commands, and will certainly make self-repairing programs easier. - Maximum number of processes (may affect tactics - to SPL 0 or not?) - Core size (may affect tactics - bombing mod 5 is stupid in a 8192 core) - Minimum separation between programs ("where do I start bombing?") - Read/write range (can avoid case below) May I suggest (yet) another instruction: GET - reads system variable A into target B. Labels will be set up to define system variables available (MAXPROC, MINSEP, etc) General comments ---------------- If [read range] > [write range], your poor, unsuspecting program could track down an enemy, bomb him, and hit home territory. If [read range] < [write range], your poor, unsuspecting program could search through memory, completely missing an enemy who lies within reach. Both cases seem to encourage brute-force, rather than subtlety. Why not just have a "Read/write range", or scrap the idea altogether. The opinion poll ---------------- 1. Select with X I am an ICWS member [ ] I am not a member but may become one if I ever get round to converting some cash into US$ [x] I am not a member and don't plan to become one [ ] 2. Select with X I am a veteran corewar player [x] I am a novice [ ] I have never played corewar before [ ] 3. Select with X I have read the draft [x] I have glimpsed over the draft [ ] I have not read the draft but followed the discussions [ ] I have no clue what I am talking about :-) [ ] 4. Select with X I like the draft ICWS94 and hope it will be accepted [ ] I like the draft but need to try it out first [x] I don't like the draft but will still try it out [ ] I don't like the draft and won't try it out [ ] 5. Answer with [Y]es or [N]o. I like instruction modifiers [x] I like postincrement indirect [x] I like DIV/MUL/MOD [ ] I like (optional) read/write range limitations [ ] 6. I really would like to see these additional opcodes, addressing modes, etc., included in ICWS94: As above From: ama@athena.mit.edu (Albert Ma) Subject: Mercury bug fix Date: 9 Jul 1993 03:47:21 GMT Message-ID: <21ipo9$4o2@senator-bedfellow.MIT.EDU> Mercury2/Mercuryd users, there is a new version of mercury2 at soda.berkeley.edu in pub/corewar/incoming. If the file is not there then look in pub/corewar/ systems. There was a small bug in Mercuryd preventing full cell CMP's from producing a match when comparing cells with debug info in them. Does anybody use full cell CMP's anyway? Just wondering. There was also a minor warrior placement bug. The random number generator produced values of even distribution up till the last location (where warrior2 is exactly 100 cells before warrior1). The last placement has a much smaller chance of occurring than the other placements. Since I was posting, just thought I'd tell you guys that pMARS (the portable 94 compatible MARS) is nearing completion. We've all tried to bring to the corewar community a really viable system that really does neat stuff :-) I know I've tried my best with the simulator (plug). Albert Ma ama@athena.mit.edu From: stst@vuse.vanderbilt.edu (Stefan Strack) Subject: Core War Frequently Asked Questions (rec.games.corewar FAQ) Date: 11 Jul 1993 00:00:29 -0400 Message-ID: Archive-name: games/corewar-faq Last-modified: 1993/04/16 Version: 2.0.4 These are the Frequently Asked Questions (and answers) from the USENET newsgroup rec.games.corewar. This FAQ list is also available by anonymous FTP from rtfm.mit.edu as pub/usenet/news.answers/games/corewar-faq.Z. TABLE OF CONTENTS Line ------------------------------------------------------------------------ 1. What is Core War? 67 2. Is it Core War or Core Wars? 80 3. Where can I find more information about Core War? 88 4. Core War has changed since Dewdney's articles. Where do I get 106 a copy of the current instruction set? 5. What is the ICWS? 120 6. What is TCWN? 130 7. How do I join? 138 8. Are back issues of TCWNs available? 158 9. What is the EBS? 165 10. Where are the Core War archives? 181 11. Where can I find a Core War system for . . . ? 198 12. I do not have ftp. How do I get all of this great stuff? 215 13. I do not have access to Usenet. How do I post and receive news? 222 14. When is the next tournament? 243 15. What is KOTH? How do I enter? 252 16. Is it DAT 0, 0 or DAT #0, #0? How do I compare to core? 357 17. How does SLT (Skip if Less Than) work? 369 18. What does (expression or term of your choice) mean? 381 19. Other questions? 509 --------------------------------------------------------------------- Q 1: What is Core War? A 1: Core War is a game played by two or more programs (and vicariously by their authors) written in an assembly language called Redcode and run in a virtual computer called MARS (for Memory Array Redcode Simulator). The object of the game is to cause all of the opposing programs to terminate, leaving your program in sole posession of the machine. There are Core War systems available for most computer platforms. Redcode has been standardized by the ICWS, and is therefore transportable between all standard Core War systems. ---------------------------------------------------------------------- Q 2: Is it "Core War" or "Core Wars"? A 2: Both terms are used. Early references were to Core War. Later references seem to use Core Wars. I prefer "Core War" to refer to the game in general, "core wars" to refer to more than one specific battle. ---------------------------------------------------------------------- Q 3: Where can I find more information about Core War? A 3: Core War was first described in the "Core War Guidelines" of March, 1984 by D. G. Jones and A. K. Dewdney of the Department of Computer Science at The University of Western Ontario (Canada). Dewdney wrote several "Computer Recreations" articles in "Scientific American" which discussed Core War, starting with the May 1984 article. Those articles are contained in an anthology: Author: Dewdney, A. K. Title: The Armchair Universe: An Exploration of Computer Worlds Published: New York: W. H. Freeman (c) 1988 ISBN: 0-7167-1939-8 Library of Congress Call Number: QA76.6 .D517 1988 The Redcode language has changed somewhat since; see Q 4. --------------------------------------------------------------------- Q 4: Core War has changed since Dewdney's articles. Where do I get a copy of the current instruction set? A 4: A draft of the official standard (ICWS'88) is available by anonymous FTP from the Core War archives (soda.berkeley.edu) as pub/corewar/documents/standards/redcode-icws-88.Z This document is formatted awkwardly and contains ambiguous statements. For a more approachable intro to Redcode, take a look at pub/corewar/documents/tutorial.1.Z tutorial.2.Z (See also Q10) --------------------------------------------------------------------- Q 5: What is the ICWS? A 5: About one year after Core War first appeared in Sci-Am, the "International Core War Society" (ICWS) was established. Since that time, the ICWS has been responsible for the creation and maintenance of Core War standards and the running of Core War tournaments. There have been six annual tournaments and two standards (ICWS'86 and ICWS'88). --------------------------------------------------------------------- Q 6: What is TCWN? A 6: Since March of 1987, "The Core War Newsletter" (TCWN) has been the official newsletter of the ICWS. It is published quarterly and recent issues are also available as Encapsulated PostScript on soda.berkeley.edu (see Q9). --------------------------------------------------------------------- Q 7: How do I join? A 7: For more information about joining the ICWS (which includes a subscription to TCWN), contact: A 7: For more information about joining the ICWS (which includes a subscription to TCWN), or to contribute an article, review, cartoon, letter, joke, rumor, etc. to TCWN, please contact: Jon Newman 13824 NE 87th Street Redmond, WA 98052-1959 email: jonn@microsoft.com (Note: Microsoft has NO affiliation with Core War. Jon Newman just happens to work there, and we want to keep it that way!) Current annual dues are $15.00 in US currency. ---------------------------------------------------------------------- Q 8: Are back issues of TCWN available? A 8: Recent issues can be found on soda.berkeley.edu (see Q10). Older issues (up to Winter 1991) are also available (see the next TCWN for details). --------------------------------------------------------------------- Q 9: What is the EBS? A 9: The Electronic Branch Section (EBS) of the ICWS is a group of Core War enthusiasts with access to electronic mail. There are no fees associated with being a member of the EBS, and members do reap some of the benefits of full ICWS membership without the expense. For instance, the ten best warriors submitted to the EBS tournament are entered into the annual ICWS tournament. All EBS business is conducted in the rec.games.corewar newsgroup. The current goal of the EBS is to be at the forefront of Core War by writing and implementing new standards and test suites in preparation for the tenth anniversary of Core War in May of 1994. Its immediate business will be to set up a Charter and establish its officers. ---------------------------------------------------------------------- A10: Where is the Core War archive? Q10: Many documents such as the guidelines and the ICWS standards along with previous tournament Redcode entries and complete Core War systems are available via anonymous ftp from soda.berkeley.edu (128.32.149.19) in the /pub/corewar directories. Also, most of past rec.games.corewar postings (including Redcode source listings) are archived there. Jon Blow (blojo@soda.berkeley.edu) is the archive administrator. Much of what is available on soda is also available on the German archive at iraun1.ira.uka.de (129.13.10.90) in the /pub/X11/corewars directory. This FAQ is automatically archived by news.answers. See the header for the current archive name and news.answers for how to get it. ---------------------------------------------------------------------- Q11: Where can I find a Core War system for . . . ? A11: Core War systems are available via anonymous ftp from soda.berkeley.edu in the pub/corewar/systems directory. Currently, there are Unix X-Window, IBM PC-compatible (sorry, no systems specifically designed for MS-Windows yet), Macintosh, and Amiga Core War systems available there. CAUTION! There are many, many Core War systems available which are NOT ICWS'88 (or even ICWS'86) compatible available at various archive sites other than soda.berkeley.edu. Generally, the older the program - the less likely it will be ICWS compatible. Reviews of Core War systems would be greatly appreciated in the newsgroup and in the newsletter. ---------------------------------------------------------------------- Q12: I do not have ftp. How do I get all of this great stuff? A12: There is an ftp email server at ftpmail@decwrl.dec.com. Send email with a subject and body text of "help" (without the quotes) for more information on its usage. ---------------------------------------------------------------------- Q13: I do not have access to Usenet. How do I post and receive news? A13: If you have access to telnet, you can read rec.games.corewar (and many more groups) through the gopher information retrieval system. Telnet to consultant.micro.umn.edu (134.84.132.4) or any of the other gopher servers and go through these menus: 1 - Information about Gopher 10 - Gopher+ example server 11 - non-Gopher+ link 7 - News 11 - USENET news 24 - rec 21 - games 6 - corewar If you somehow receive rec.games.corewar but just can't post, you can email your post to rec-games-corewar@cs.utexas.edu and it will be automatically posted for you. ---------------------------------------------------------------------- Q14: When is the next tournament? A14: The ICWS holds an annual tournament. Traditionally, the deadline for entering is the 15th of December. The EBS usually holds a preliminary tournament around the 15th of November and sends the top finishers on to the ICWS tournament. ---------------------------------------------------------------------- Q15: What is KOTH? How do I enter? A15: King Of The Hill (KOTH) is an ongoing Core War tournament available to anyone with email provided by William Shubert (wms@iwarp.intel.com). You enter by submitting via email a Redcode program with special comment lines. You will receive a reply indicating how well your program did against the current top twenty programs "on the hill". Your program will play 100 battles against each of the 20 other programs currently on the Hill. You receive 3 points for each win and 1 point for each tie. (The existing programs do not replay each other, but their previous battles are recalled.) All scores are updated to reflect your battles and all 21 programs are ranked from high to low. If you are number 21 you are pushed off the Hill, if you are higher than 21 someone else is pushed off. Entry rules for King of the Hill Corewar: 1) Write a corewar program. KotH is fully ICWS '88 compatible, EXCEPT that a comma (",") is required between two arguments. 2) Put the line ";redcode" at the top of your program. This MUST be the first line. Anything before it will be lost. If you wish to receive mail on every new entrant, use ";redcode verbose". Otherwise you will only receive mail if a challenger makes it onto the hill. Use ";redcode quiet" if you wish to receive mail only when you get shoved off the hill. (Also, see 5 below). Additionally, adding ";name " and ";author " will be helpful in the performance reports. Do NOT have a line beginning with ";address" in your code; this will confuse the mail daemon and you won't get mail back. In addition, it would be nice if you have lines beginning with ";strategy" that describe the algorithm you use. 3) Mail this file to "wms@iwarp.intel.com". 4) Within a few minutes you should get mail back telling you whether your program assembled correctly or not. If it did assemble correctly, sit back and wait; if not, make the change required and re-submit. 5) In an hour or so you should get more mail telling you how your program performed against the current top 20 programs. If no news arrives in an hour, don't worry; entries are put in a queue and run through the tournament one at a time. A backlog may develop. Be patient. If your program makes it onto the hill, you will get mail every time a new program makes it onto the hill. If this is too much mail, you can use ";redcode quiet" when you first mail in your program; then you will only get mail when you make it on the top 20 list or when you are knocked off. Using ";redcode verbose" will give you even more mail; here you get mail every time a new challenger arrives, even if they don't make it onto the top 20 list. Often programmers want to try out slight variations in their programs. If you already have a program named "foo V1.0" on the hill, adding the line ";kill foo" to a new program will automatically bump foo 1.0 off the hill. Just ";kill" will remove all of your programs when you submit the new one. MORE ON KOTH COREWAR IMPLEMENTATION Core size: 8 000 instructions Max processes: 8 000 per program Duration: After 80 000 cycles per program, a tie is declared. Max entry length: 100 instructions Programs are guaranteed a 100 instruction block (inclusive of their warrior's instructions) without overlapping their opponent. SAMPLE ENTRY: ;redcode ;name Dwarf ;author A. K. Dewdney ;strategy Throw DAT bombs around memory, hitting every 4th memory cell. ;strategy This program was presented in the first Corewar article. bomb DAT #0 dwarf ADD #4, bomb MOV bomb, @bomb JMP dwarf END dwarf ; Programs start at the first line unless ; an "END start" pseudo-op appears to indicate ; the first logical instruction. Also, nothing ; after the END instruction will be assembled. Rule variants for "eXperimental" corewar: The same as above but use ";redcode-x" to start your program. Your program will be entered into a second tournament with slightly different rules. The rules are: - All addressing modes are allowed with all instructions. - There is an additional addressing mode, called "postincrement". To use it try an instruction like "mov >5,6". - The maximum write distance is 250 instructions. That is, every time your program tries to modify memory, the address is checked; if it is more than 250 instructions from the process doing the modify, then memory is left unchanged, but the instruction continues as normal. - A tie is not declared until 150,000 cycles per program have elapsed. KotH runs on any Unix system with an X windows interface. The source code to KotH is available by email from William Shubert. Write to him at (wms@iwarp.intel.com) for a copy or get it by anonymous FTP from soda.berkeley.edu in the pub/corewar/systems directory. ---------------------------------------------------------------------- Q16: Is it DAT 0, 0 or DAT #0, #0? How do I compare to core? A16: Core is initialized to DAT 0, 0. This is an "illegal" instruction under ICWS'88 rules and strictly compliant assemblers (such as KotH) will not let you write a DAT 0, 0 instruction - only DAT #0, #0. So this begs the question, how to compare something to see if it is empty core. The answer is, most likely the instruction before your first instruction and the instruction after your last instruction are both DAT 0, 0. You can use them, or any other likely unmodified instructions, for comparison. ---------------------------------------------------------------------- Q17: How does SLT (Skip if Less Than) work? A17: SLT gives some people trouble because of the way modular arithmetic works. It is important to note that all negative numbers are converted to positive numbers before a battles begins. Example: (-1) becomes (M - 1) where M is the memory size. Once you realize that all numbers are treated as positive, it is clear what is meant by "less than". It should also be clear that no number is less than zero. ---------------------------------------------------------------------- Q18: What does (expression or term of your choice) mean? A18: Here is a selected glossary of terms. If you have a definition and/or term you wish to see here, please send it to me. (References to an X-like program mean that the term X is derived from the specific program X and has become a generic term). Bootstrapping - Strategy of copying the active portion of the program away from the initial location, leaving a decoy behind and making the relocated program as small as possible. B-Scanners - Scanners which only recognize non-zero B-fields. example add #10,scan scan jmz example,10 C - Measure of speed, equal to one location per cycle. Speed of light. CMP-Scanner - A Scanner which uses a CMP instruction to look for opponents. example add step,scan scan cmp 10,30 jmp attack jmp example step dat #20,#20 Color - Property of bombs making them visible to scanners, causing them to attack useless locations, thus slowing them down. example dat #100 Core-Clear - code that sequentially overwrites core with DAT instructions; usually the last part of a program. Decoys - Bogus or unused instructions meant to slow down Scanners. Typically, DATs with non-zero B-fields. DJN-Stream (also DJN-Train) - Using a DJN command to rapidly decrement core locations. example . . . . . . djn example,<4000 Dwarf - the prototypical small bomber. Imp - Program which only uses the MOV instruction. example MOV 0, 1 or example MOV 0, 2 MOV 0, 2 Imp-Gate - A location in core which is bombed or decremented continuously so that an Imp can not pass. Also used to describe the program-code which maintains the gate. example ... ... SPL 0, Hello all, Sorry to post mail on the weekend. I'm really testing my OUTBOUND mail feed. Don't know if I'll see it or not. Stefan, if you do, please email a FULL copy of it (Headers and all). Also a reminder that KotH@StormKing.COM is still available. Something seems a little AMISS with it, but we are working on it. Talk to you all soon (I hope). Scott From: twilley@dewey.nl.nuwc.navy.mil (Jack Twilley) Subject: Re: Opinions on ICWS94 draft/the debate at large Date: 12 Jul 93 09:00:04 Message-ID: In article <21rfn0$1hr@tuegate.tue.nl> hanwen@stack.urc.tue.nl (Han-Wen Nienhuys) writes: : RND - generates random number from 0 to [core size-1], stores result in B-target Why not generate a random number from 0 to A-1? Actually, 0 to A would be better.... Jack. -- John M. Twilley | nautilus@acm.rpi.edu | twilley@dewey.nl.nuwc.navy.mil "Our passion is like a nuclear explosion: violent anticipation, a brilliant blast of heat and light, and a beautiful sunset..." --me From: hanwen@stack.urc.tue.nl (Han-Wen Nienhuys) Subject: Re: Opinions on ICWS94 draft/the debate at large Date: 12 Jul 1993 10:51:12 GMT Message-ID: <21rfn0$1hr@tuegate.tue.nl> Stephen Tavener (TavenerS@LILHD.Logica.com) wrote: : Extra instructions/thingies : --------------------------- : RND - generates random number from 0 to [core size-1], stores result in B-target Why not generate a random number from 0 to A-1? : EXR - execute remote - executes instruction at [A-pointer + pointer counter] : >A Preincrement indirect : Postincrement indirect : A< Postincrement indirect I like these, they make programming easier : [each argument may have either a pre- or post- modifier, not both] Why not both, the quirkier the better :-) greetings, /HaWee/ {fido: 2:284/102,email: hanwen@stack.urc.tue.nl} From: waite@andromeda.rutgers.edu (waite) Subject: Benn over 24 hours new... Message-ID: Date: 13 Jul 93 23:06:25 GMT Hmmm... I submitted a code to the KotH and never recieved the stats on how I did...could someone help me....:( Mike Feier >< Dion From: abh@genesis.nred.ma.us (Andrew Hudson) Subject: Parallel CoreWars Message-ID: Date: 16 Jul 93 21:53:26 GMT Wouldn't it be cool to have a networked version of Core Wars? Or better yet, if the software could export mutants to other systems and have multiple machines involved. Kind of like having multiple arenas for the battles. - Andrew Hudson From: z_vanaverbec@ccsvax.sfasu.edu Subject: Core Wars? Please Explain. Message-ID: <1993Jul18.182233.5770@ccsvax.sfasu.edu> Date: 18 Jul 93 18:22:32 CST I was wonding if anyone could explain just what exactly core wars involves. I think that it is a game played that is an attept at gaining memory I would appreciate any input anyone has to offer. Some sample programs would be greatly appreciate. I am not asking for your winning moves but perhaps a look at the code so I can see what is going on. Thanks, CVA Department of Computer Science.SFASU and such. Could anyone be more specific... help me with rules.. From: stst@vuse.vanderbilt.edu (Stefan Strack) Subject: Re: KOTM (King of the Mountain) Message-ID: Date: Mon, 19 Jul 1993 19:08:21 GMT Interesting. Unfortunately, you use the non-standard score system 2:1:0 instead of 3:1:0. Therefore, your ranking favors warriors that tie a lot. -Stefan (stst@vuse.vanderbilt.edu) From: wolfe@bhars443.BNR.CA (Ian Woollard) Subject: KOTM (King of the Mountain) Date: 19 Jul 93 19:35:37 Message-ID: For fun I wrote a program to work out which was the "best program of all time". I have deduced that there must be 'Gods corewarrior'; which is the corewarrior(s) that wins most often against *all* the other warriors, for every conceivable pair of warriors, for every conceivable start. After all there is a finite number; just slightly large. I'd like to know what it is. Anyone? Anyway my practical KOTM works as follows: I don't have an almost transfinitely fast computer, so I had to make do with the list of the all time greats that I got off an ftp site somewhere. Pick two random warriors, play them off against each other 20 times, using Bill's excellent koth program version 3.1 (like the dissassemblt, real neat). Give em a scores: 1000 points for each win, none for a loss, 500 for a draw. For each warrior average the results and generate the standard deviation of the scores; and from that calculate the standard deviation of the average. (I mucked about with chess style rating system, but in the end it seemed less stable; indeed it behaved a little chaotically). The results are at the end. I ran it over the weekend, and came up with some apparently accurate answers of which is the best... see below. Anyway that's about it, there's no practical limit on how large KOTM can be, the time to get an accurate estimate of a score should be proportional to the length of the list, rather than n*2 with KOTH. I don't have a mail gateway to it, I absolutely *cannot* rate anyones warrior. However, if it is thought to be a good idea by people, I can at some stage provide the code for other people to run (it's currently written in a mix of C/csh running on unix), its up-to them to add a mail interface for. -Ian. p.s. three programs did not assemble-they are not included. p.p.s. KOTM shouldn't ever replace KOTH, it is a *different* hill to KOTH, but I would expect that a warrior that does well on one to do well on the other... Score Program Score +- ------------------------------------ 840.970703 imprimis2 0.065765 832.289612 sphinx 0.065836 825.751160 imprimis4 0.065169 822.108398 chimera 0.065611 815.342712 imprimis6 0.065618 813.875977 imprimis 0.065242 813.342834 impression 0.065096 786.152954 nightcrawl 0.064029 777.657410 flash 0.063829 775.706970 impressive 0.064032 735.500000 note 0.062367 728.358643 nimbus12 0.061761 713.151855 nimbus 0.060145 702.462219 synch 0.060816 696.920837 gammapaper 0.059972 696.531616 paratroops 0.060549 692.835999 irongate 0.059933 692.229248 corona 0.060194 690.203003 proteus 0.060238 689.264038 impire 0.060191 685.382202 crimp2 0.060212 684.484314 twill2 0.059598 684.018799 hellicon 0.059595 681.931274 charon7 0.059732 680.126404 eloquent 0.059929 679.021729 molerat 0.059604 678.624146 sucker4 0.059456 678.512451 sucker3 0.058005 676.951050 charon81 0.059513 676.924622 sucker5 0.058974 676.403198 agony21 0.059098 675.166931 smooth 0.059300 674.256897 twilight6 0.059531 673.533569 spitfire 0.059120 670.499084 medusa 0.057174 670.441223 sucker 0.058717 668.021729 paper 0.058365 666.486084 gibraltar 0.059088 665.396484 asianflu 0.059004 663.756653 beholder 0.059238 663.547852 plasma 0.059093 663.513000 agony24b 0.058787 662.187927 sixthsense 0.058462 661.705811 emerald2 0.058176 661.188293 rotld 0.058952 659.963989 returndead 0.058231 659.779480 precipice 0.058382 658.772705 ironsword 0.058872 655.040649 fallingleaf 0.058558 654.960205 emerald 0.058416 654.132568 leprechaun 0.058371 652.039429 twill 0.057140 649.394043 mucking 0.058204 648.019348 clamp 0.058133 647.608948 twilight 0.058135 645.596619 snake 0.056696 645.318665 cmpscan 0.058118 639.311584 griffin 0.057449 637.678040 charon3 0.057427 637.470093 earnest 0.057528 636.177734 shears 0.058007 635.990845 winter 0.057425 631.546631 crimp 0.057543 630.929260 justice 0.056309 628.715759 moonstone 0.057535 627.903137 cloner2 0.057189 626.802490 engine9 0.057534 623.819031 icewall 0.056493 621.690430 armadillo 0.056520 619.186890 artagel 0.056927 614.808655 eclipse2 0.056334 605.737793 confetti 0.056091 600.688721 sleepless 0.055975 600.159546 pittrap 0.056070 596.774963 locusts22 0.056161 595.305359 leech12 0.055309 592.654480 parthenos 0.055601 590.036255 t-rex 0.054815 588.326599 digital 0.055005 586.626770 eclipseii 0.055409 584.193176 imps 0.055313 581.442993 vent 0.054552 580.160583 splitbomb 0.055100 578.435059 dwarfer2 0.054579 578.353088 mice 0.054779 575.092163 small4 0.054615 571.635071 charon2 0.054868 569.813416 theratb 0.054236 568.082031 leech 0.054068 568.023560 small2 0.054794 564.067383 drone 0.054495 562.700989 hitbeast 0.054021 562.551880 scissors31 0.054140 561.616150 mutagen21 0.052885 561.454468 scissors88 0.053118 560.642639 v3 0.053675 557.203369 roadhammer 0.053882 557.098389 cakeb 0.053676 555.695068 multidwarf 0.053347 553.678467 newscan 0.053645 552.757141 trinityzwo 0.053664 549.883240 locusts21 0.053537 549.579529 rock 0.053557 547.196411 chaingang 0.053697 543.151794 shark 0.051778 539.210632 comper2a 0.053396 537.423340 ptrooper2 0.053073 537.102783 nevermore 0.052657 537.022461 acidrain 0.052533 535.639893 stealth 0.052946 534.444641 kinch 0.052766 532.448364 ike 0.052803 532.065430 kobold 0.052060 531.845093 walze 0.052579 530.878296 leech13 0.052968 529.577637 catcan 0.052468 528.793457 mutagen 0.052191 524.010193 virus 0.052528 521.708618 comets 0.051801 521.525696 backfire 0.051683 518.613525 trinity 0.051648 513.843750 terminator 0.051410 512.148560 lobot 0.051425 511.947327 x5v14 0.051881 510.629120 overload 0.051046 510.352264 bacteria 0.051448 507.024261 appleseed 0.051813 503.036804 ptrooper21 0.050730 502.902130 dwarfer 0.051430 502.829712 gnat2a 0.050721 502.503479 killer 0.051292 500.663544 mutagenpar 0.050880 500.011475 mrnasty 0.050829 498.503326 imperor 0.050283 497.323456 csapda 0.051020 496.671448 trident 0.050637 496.171997 livingdead 0.050767 496.163116 redrain2 0.050547 495.960571 ramscoop 0.050616 495.556824 wormopt 0.050979 492.970154 redrain 0.050793 492.498596 dime 0.050247 491.998352 freeze-x 0.050860 487.215515 28dwarf 0.050282 483.805847 nova 0.049894 482.490356 splitpit 0.049459 481.325317 droid 0.049741 480.634766 quarter 0.049194 478.023468 scannery 0.049729 472.566772 eclipse 0.049848 471.407257 ptrooper 0.049364 467.757233 dodgem6 0.049258 467.193848 impbreed11 0.048612 466.424286 bullwhip 0.048961 465.598053 signalgun 0.049032 464.202881 roll 0.048956 458.349457 banzai2 0.048978 456.748413 burp 0.048786 454.171539 eratos 0.048438 450.838226 xdwarfer 0.048244 448.467377 intangible 0.048258 447.626373 heapimp 0.048183 445.795990 kiss 0.048224 442.629608 breadman 0.048354 441.344330 slowdown 0.047667 441.281494 x5v12 0.047843 440.724396 roadrunner 0.048027 438.927338 plague 0.047972 438.529083 tiny 0.047586 438.454132 gnat 0.047913 432.875946 tamper 0.047884 431.488403 fleas 0.047337 426.200806 dumdum 0.047353 422.565552 middle 0.046812 421.637146 pest 0.046059 421.577148 gnom 0.046351 415.371796 fleas2 0.046648 412.492706 bownarrow 0.046249 409.315277 dwarf 0.045776 407.428772 crazyjane 0.046246 406.318817 garlic 0.046115 406.040558 proton 0.045748 405.118225 chalk 0.045477 402.719452 stackbomb 0.045802 397.316315 bynars 0.045633 397.242371 tolive 0.045496 397.105316 eru 0.044986 389.760315 harpye 0.044285 389.668213 auto 0.044907 388.588013 b2 0.044997 388.026764 superimp 0.044902 385.230896 primeimp2 0.044592 384.900391 primeimp 0.044905 384.833282 hideout 0.044743 379.004822 checker 0.044289 374.559906 impdwarf 0.043424 371.449615 orc 0.044004 368.520599 gulliver 0.043616 367.719940 binarybomb 0.043701 365.956696 implance 0.043896 364.932770 alpha 0.043510 361.548798 crimson 0.043497 359.971832 bravo 0.043460 352.804840 minidwarf 0.043002 352.568634 threader 0.042608 350.469177 divnconq 0.042548 347.159302 bridge 0.042232 345.250854 antivamp 0.042116 343.807556 simple 0.042419 334.196136 hidenseek 0.041718 332.669128 minjump 0.041737 326.657806 dumbo 0.041056 324.426544 signal 0.041016 324.067047 binary 0.041131 322.077820 superlance 0.040583 322.031006 cowboy 0.040722 321.933105 spreel 0.040995 315.033173 lichen 0.040503 314.669189 simplescan 0.040572 304.133667 echo 0.039642 301.220490 corporate 0.039264 300.775146 annoying 0.039221 287.369507 trigger 0.038763 285.536255 turtle 0.038466 284.327026 ultra 0.038398 259.685699 impbreed 0.036485 249.316162 impbreed10 0.035863 249.056061 ferret 0.035682 222.454285 hunter 0.034188 197.448212 flytrap 0.031454 164.874207 binary2 0.029344 159.764771 impstomp 0.028912 138.414917 runner 0.026646 131.094086 banzai 0.025989 31.811310 trynum5 0.012817 23.284710 chaos 0.011092 17.509832 superstomp 0.009597 16.448647 imphoser 0.009238 16.448645 havoc 0.009238 12.398481 extra 0.008039 8.559353 andromeda 0.006695 8.224322 retrovirus 0.006532 8.101575 sluicegate 0.006440 6.293167 sargent 0.005767 -- -Ian From: pk6811s@acad.drake.edu Subject: Re: KOTM (King of the Mountain) Message-ID: <1993Jul20.112631.1@acad.drake.edu> Date: Tue, 20 Jul 1993 17:26:31 GMT In article , wolfe@bhars443.BNR.CA (Ian Woollard) writes: > For fun I wrote a program to work out which was the "best program > of all time". > Looks good to me :-) There may be a large number of old-style bombers included which would give an advantage to imps and paper in this scoring system. Paul Kline pk6811s@acad.drake.edu (more rain today, hope to get dried out soon) From: pk6811s@acad.drake.edu Subject: _Push Off_ Message-ID: <1993Jul20.130503.1@acad.drake.edu> Date: Tue, 20 Jul 1993 19:05:03 GMT _PUSH OFF_ A midweek review of Corewar July 20, 1993 ------------------------------------------------------------------------------- I. The Standings: # %W/ %L/ %T Name Author Score Age 1 44/ 44/ 12 Dragon Spear c w blue 144 998 2 39/ 36/ 25 Winter Werewolf 3 W. Mintardjo 143 214 3 43/ 44/ 12 Iron Gate 1.01 Wayne Sheppard 142 39 4 44/ 47/ 9 Agony 6.0 Stefan Strack 142 150 5 41/ 42/ 17 Grimm's Vampyre c w blue 140 79 6 32/ 24/ 44 Sphinx v2.8 W. Mintardjo 140 1894 7 43/ 46/ 12 Fire Storm v1.1 W. Mintardjo 139 535 8 43/ 47/ 9 Creampuff II P. Kline 139 1 9 32/ 24/ 44 Night Crawler Wayne Sheppard 139 896 10 37/ 36/ 27 Herem VI Anders Ivner 139 68 11 32/ 26/ 42 ttt nandor sieben 138 120 12 31/ 25/ 44 Imprimis 7 P.Kline 136 136 13 30/ 24/ 45 Impact v1.0 Anders Ivner 136 33 14 33/ 29/ 38 FlyPaper 3.0 J.Layland 136 320 15 31/ 27/ 42 Hydra Stephen Linhart 135 3 16 40/ 47/ 13 Impurge Fredrik Ohrstrom 134 220 17 29/ 26/ 46 Incrimination v1.0 Brant D. Thomsen 132 300 18 39/ 47/ 13 Charon v8.1 Cisek,Strack,Kline 131 57 19 28/ 30/ 42 Deck of Many Things c w blue 126 25 20 21/ 16/ 63 Imps! Imps! Imps!-d Steven Morrell 125 130 21 29/ 54/ 17 :( v1.1 Steven Morrell 104 2 ------------------------------------------------------------------------------- II. The Basics: -Core War Archives are available via anonymous FTP at soda.berkeley.edu in pub/corewar... -FAQ for this newsgroup is available via anonymous FTP at rtfm.mit.edu as pub/usenet/news.answers/games/corewar-faq.z ------------------------------------------------------------------------------- III. The Scoop: Well, things have been a little damp here in Des Moines, so no _Push Off_ last week (on top of being too busy the previous week). Drake University was more-or-less closed last week, and the phone system was down for most of the time, so I couldn't even dial in. :-( Now we are in limited operation with classes and some offices running. Let's see, we were talking about Vampires and Antivamp. Of course my hope was to completely wipe out vamps - it looks so easy! But CW Blue blew that idea away, his Grimm's Vampyre is riding higher than ever. Some people may have noticed a high-flying imp program making it's appearance in first place, with a VERY high score, which was immediately knocked off by the author. I received this message (names removed to protect the innocent :-) : I have always felt that I was an anti-imp person (This started back when Impire and others first hit the hill, and they started to slaughter my warriors), I always wanted to come up with something to make imps extinct. Now I think I have come up with a better imp/stone......but what do I do???? I hate Imps!!!!! Do I go over to the other side....do I go "If ya can't beat them join them". I don't know Paul, what do I do? Gee, this one's too big for me, what do you all think? I used to think scanners were the enemy, til I figured out how to make Charon a little better. Then there was Hydra, S Linhart's marvelously successful 'multiple bomber' program. Did I see a reference to 'self-regenerating' in there? Anyway, congrats! Seems to be a little succeptible to paper, though. ------------------------------------------------------------------------------- IV. The Outlook: 1 34/ 24/ 42 Hydra Stephen Linhart 143 2 2 41/ 41/ 18 Grimm's Vampyre c w blue 141 44 2 45/ 43/ 12 Iron Gate 1.01 Wayne Sheppard 147 1 3 37/ 38/ 25 Winter Werewolf 3 W. Mintardjo 137 179 4 30/ 23/ 46 ttt nandor sieben 137 85 5 42/ 46/ 12 Impurge Fredrik Ohrstrom 137 185 6 32/ 28/ 40 FlyPaper 3.0 J.Layland 137 285 7 28/ 19/ 53 testing Anders Ivner 138 1 8 42/ 46/ 12 Charon v8.1 Cisek,Strack,Kline 138 1 9 30/ 25/ 45 Sphinx v2.8 W. Mintardjo 136 1859 9 31/ 25/ 43 Deck of Many Things c w blue 137 1 10 29/ 22/ 48 Night Crawler Wayne Sheppard 136 861 10 34/ 31/ 35 sub-type-imp c w blue 136 1 ------------------------------------------------------------------------------- V. The Quick Look: 19 24/ 24/ 51 Snake v3 Wayne Sheppard 124 1 19 36/ 45/ 19 sub-type-bs c w blue 127 1 19 38/ 50/ 12 Dracula's Revenge V Fredrik Ohrstrom 125 1 20 10/ 36/ 54 DumbHatter 0.1477 P.P.Sigra 84 1 20 10/ 37/ 53 Demons Stephen Linhart 83 1 20 20/ 63/ 17 Pebble Stephen Linhart 77 1 20 23/ 68/ 9 Skip Vampire 3.0 Devin Kilminster 78 1 20 28/ 36/ 36 Letter Head 0.02 Dak 120 1 20 28/ 62/ 10 Spiral Stephen Linhart 95 1 20 29/ 54/ 17 :( v1.1 Steven Morrell 105 1 20 36/ 48/ 16 Eclipse II P.Kline 123 1 20 37/ 47/ 16 Eclipse III P.Kline 126 1 21 0/ 48/ 52 imptest Unknown 53 0 21 0/ 83/ 17 Dumb Dumb 0.0 P.P.Sigra 17 0 21 0/ 84/ 16 Sitting Bull Unknown 16 0 21 0/ 85/ 14 Dumb, Plain Dumb P.P.Sigra 15 0 21 0/ 90/ 9 DumbJump 3 P.P.Sigra 10 0 21 0/ 91/ 9 DumbJump P.P.Sigra 9 0 21 1/ 32/ 67 Tie! James Ojaste 70 0 21 1/ 58/ 41 CC C. Walsh 44 0 21 1/ 63/ 37 Deaf Dumb & Blind Kid 3 P.P.Sigra 38 0 21 1/ 86/ 13 Peek-a-Boo, I See You! Nathan Sullivan 15 0 21 2/ 15/ 84 Boyo 1 Scriv 89 0 21 2/ 37/ 60 DumbImp 0.30 P.P.Sigra 67 0 21 2/ 72/ 27 Front 242 Michael 31 0 21 3/ 32/ 65 DumbImp 0.211 P.P.Sigra 74 0 21 3/ 38/ 59 DumbFalseImproved 0.20 P.P.Sigra 67 0 21 4/ 36/ 60 DumbImp 0.9 P.P.Sigra 71 0 21 4/ 52/ 43 Diamond Michael Constant 57 0 21 4/ 65/ 32 Tie Fighter Darth Vader 43 0 21 6/ 58/ 36 Deaf Dumb and Blind Kid 1 P.P.Sigra 55 0 21 7/ 68/ 25 Spiral Hydra Stephen Linhart 46 0 21 8/ 64/ 28 :( Steven Morrell 51 0 21 8/ 92/ 0 Hopper1 James Ojaste 25 0 21 9/ 33/ 57 DumbHatter 0.211 Minus P.P.Sigra 85 0 21 9/ 67/ 24 Zoink1 James Ojaste 51 0 21 10/ 36/ 53 DumbShort 2 P.P.Sigra 85 0 21 10/ 42/ 48 B Ratz 4.0 Rodney Schuler 77 0 21 11/ 35/ 55 DumbShort 0.211 P.P.Sigra 87 0 21 12/ 41/ 48 DumbHatter 0.844 P.P.Sigra 82 0 21 12/ 82/ 6 Stealthy Stephen Linhart 43 0 21 12/ 87/ 0 Twins James Ojaste 38 0 21 13/ 50/ 38 DumbImpDwarf 0.9.63 P.P.Sigra 76 0 21 13/ 74/ 13 test 3100 Rodney Schuler 53 0 21 13/ 86/ 1 Twins2 James Ojaste 39 0 21 14/ 47/ 40 DumbImpDwarf 0.211 P.P.Sigra 81 0 21 15/ 48/ 37 Stinger Rodney Schuler 82 0 21 15/ 75/ 10 ZE D. McDaniels 54 0 21 18/ 74/ 8 Tinyvamp Phil Long 63 0 21 19/ 63/ 19 Berserk 2 Planar 75 0 21 19/ 81/ 1 wimp James Ojaste 56 0 21 20/ 49/ 32 Flash Light v2.0 Michael Constant 90 0 21 20/ 73/ 8 DemonIV Cormac Walsh 66 0 21 21/ 63/ 16 vertigo Steven Morrell 78 0 21 21/ 70/ 9 cboing1 James Ojaste 72 0 21 24/ 33/ 43 Big Wall Stephen Linhart 114 0 21 24/ 74/ 2 hah! James Ojaste 75 0 21 25/ 59/ 16 worthless Steven Morrell 90 0 21 27/ 72/ 1 007 j.layland 82 0 21 36/ 61/ 3 Are we out there? Unknown 111 0 21 14/ 73/ 14 DumbJump 5 P.P.Sigra 55 0 21 13/ 71/ 15 DumbJump 6 P.P.Sigra 55 0 21 5/ 80/ 15 DumbJump 7 P.P.Sigra 31 0 19 31/ 31/ 38 Fire Walls Stephen Linhart 131 1 21 9/ 50/ 41 DumbHatter 0.1296 P.P.Sigra 69 0 21 7/ 35/ 58 Demon Wall Stephen Linhart 80 0 21 10/ 63/ 27 test Devin Kilminster 58 0 20 25/ 33/ 42 Fire Walls Stephen Linhart 117 2 20 25/ 33/ 41 Fire Walls Stephen Linhart 117 2 19 28/ 33/ 39 Fire Walls Stephen Linhart 123 1 21 21/ 74/ 5 Speck Stephen Linhart 68 0 20 10/ 35/ 56 DumbHatter 0.1266 P.P.Sigra 85 1 20 10/ 40/ 50 Fast Paper Stephen Linhart 80 1 21 3/ 57/ 40 DJN Stephen Linhart 49 0 21 2/ 98/ 0 Spurious Michael 7 0 21 28/ 64/ 8 :( v1.1 Steven Morrell 93 0 21 1/ 73/ 26 Spurious V2 Michael 29 0 21 28/ 62/ 10 :( v1.1 Steven Morrell 95 0 21 18/ 57/ 25 Ugh Scriv 80 0 21 18/ 63/ 20 :( v1.1 Steven Morrell 72 0 21 9/ 35/ 56 DumbHatter 0.211 Plus(?) P.P.Sigra 84 0 21 30/ 58/ 12 :( v1.1 Steven Morrell 103 0 ------------------------------------------------------------------------------- VI. The Hint: Avoid building on flood plains. Other than that, I was playing with some new number theories, but don't have them worked out just yet. Here are some discussion items however. First, if you and your opponent are the same size and bomb at the same rate, one of you may actually have an unbeatable advantage. Here is how it works. Let's say you are both length 100. You bomb forward with a step size of 99, your opponent bombs backward with a step size of 101. You will get whacked first every time because his 101 crosses the gap faster than your 99. If you both bomb the same direction you have a more even chance. So one thing to do is test your step sizes both with addition and with subtraction. Second, the 'optimal' numbers work well because they chunk up large areas of core into smaller and smaller pieces very efficiently. Another way of saying this is that after scanning location N, they will not scan N+/-I, where 'I' is any small number, until very late. A side-effect of this is that they will also not scan N+/-J, where J is any large factor of the core size, until late also. One way for an opponent to take advantage of this effect would be to place components J locations apart. So if you place 4 small bombers at locations 0, 2000, 4000, and 6000, any 'optimally' scanning/bombing opponent will not take out all 4 bombers very rapidly. ------------------------------------------------------------------------------- VII. The End: Paul Kline pk6811s@acad.drake.edu From: Walter.Harms@arbi.informatik.uni-oldenburg.de (Walter Harms) Subject: CW&genaetic algorithems ? Date: Tue, 20 Jul 1993 19:18:20 GMT Message-ID: <1993Jul20.192225.28273@arbi.Informatik.Uni-Oldenburg.DE> last week i posted on genetic, that i want to know if there is someone outthere who is experimenting wich cw & ga. does anyone here make such experiments ? I think its strait forward but why didnt so few try it ? From: stst@vuse.vanderbilt.edu (Stefan Strack) Subject: Re: CW&genaetic algorithems ? Message-ID: Date: Wed, 21 Jul 1993 04:09:19 GMT In article <1993Jul20.192225.28273@arbi.Informatik.Uni-Oldenburg.DE> Walter.Harms@arbi.informatik.uni-oldenburg.de (Walter Harms) writes: >last week i posted on genetic, that i want to know if there is >someone outthere who is experimenting wich cw & ga. does anyone >here make such experiments ? >I think its strait forward but why didnt so few try it ? > A while ago, someone (sorry forgot the name) distributed his semester project on "evolving warriors" using GAs. I'll put the file in pub/corewar/incoming at soda.berkeley.edu for anon. FTP. Eventual location pub/corewar/documents. -Stefan (stst@vuse.vanderbilt.edu) From: stst@vuse.vanderbilt.edu (Stefan Strack) Subject: Re: CW&genaetic algorithems ? Message-ID: Date: Wed, 21 Jul 1993 04:35:31 GMT The file is evolving_warriors.txt.Z, written by John Perry (jperry@cs.ucla.edu). John, are you still working on this? I am sure many people would be interested in seeing an implementation of your ideas. -Stefan (stst@vuse.vanderbilt.edu) P.S.: the portable MARS group is glad to announce that pMARS with ICWS'94 extensions is almost ready for release. The program currently runs on UNIX and PC/DOS. Thanks to Albert's optimizing efforts, pMARS's speed is only surpassed by MERCURY2, a system written in assembly. From: wolfe@bhars443.BNR.CA (Ian Woollard) Subject: Re: KOTM (King of the Mountain) Date: 21 Jul 93 12:41:08 Message-ID: I have rerun the program with 3-1-0 (actually 100-33.33-0) scoring, and found a bug in the Standard deviation bit of my program... (the actual scores were correct, but the Standard deviations turned out rather optimistic). Comparison of the two scoring systems indicates that they rank similarly, within 10%... Player Average +- Battles ----------------------------------- imprimis4 79.946 0.415 92 imprimis 79.384 0.419 92 chimera 79.211 0.420 93 imprimis6 76.944 0.428 96 imprimis2 76.866 0.438 92 sphinx 75.421 0.451 91 flash 73.366 0.433 103 impression 72.396 0.456 96 impressive 72.088 0.470 91 nightcrawl 70.341 0.471 93 irongate 69.731 0.473 93 nimbus 69.439 0.470 95 eloquent 68.576 0.473 96 sucker4 68.260 0.485 91 charon7 68.243 0.485 92 note 68.174 0.478 94 paratroops 67.632 0.478 95 medusa 67.210 0.487 92 beholder 67.192 0.490 92 precipice 66.884 0.489 92 nimbus12 66.765 0.466 102 crimp2 66.719 0.481 95 sucker5 65.825 0.486 95 mucking 65.674 0.489 94 charon81 65.632 0.486 95 agony21 65.215 0.491 93 clamp 65.197 0.491 93 twill 65.019 0.503 90 paper 65.000 0.495 92 impire 64.719 0.490 95 smooth 64.609 0.482 98 gammapaper 64.386 0.489 95 spitfire 64.194 0.500 91 crimp 64.103 0.503 91 sixthsense 63.972 0.492 94 corona 63.865 0.494 94 emerald 63.594 0.491 96 winter 63.478 0.502 92 sucker3 63.459 0.497 93 agony24b 63.441 0.497 93 fallingleaf 63.400 0.480 100 charon3 63.370 0.502 91 sucker 63.249 0.483 99 moonstone 63.047 0.498 93 proteus 62.969 0.490 96 ironsword 62.825 0.496 95 asianflu 62.421 0.494 95 plasma 62.301 0.503 92 twill2 61.953 0.502 93 snake 61.791 0.499 94 synch 61.774 0.501 93 emerald2 61.755 0.499 94 sleepless 61.701 0.490 98 rotld 61.667 0.503 93 twilight6 61.436 0.499 94 gibraltar 61.196 0.506 92 griffin 60.978 0.506 92 digital 60.656 0.501 94 earnest 60.394 0.507 93 leprechaun 60.269 0.506 93 shears 60.109 0.509 92 pittrap 60.067 0.490 99 justice 59.839 0.506 93 charon2 59.792 0.498 96 icewall 59.722 0.500 96 cloner2 59.663 0.506 94 multidwarf 59.149 0.512 92 leech12 58.582 0.508 94 molerat 58.535 0.514 91 parthenos 58.059 0.514 91 twilight 57.907 0.518 90 leech 57.652 0.512 93 eclipseii 57.536 0.513 92 artagel 57.527 0.513 93 hellicon 57.000 0.505 95 newscan 56.902 0.514 92 small4 56.702 0.509 94 cmpscan 56.685 0.518 91 eclipse2 56.250 0.504 96 armadillo 55.928 0.503 97 t-rex 55.532 0.510 94 drone 55.155 0.505 97 confetti 54.964 0.515 93 scissors31 54.964 0.514 93 vent 54.910 0.513 93 roadhammer 54.610 0.513 94 mutagen21 54.609 0.500 98 shark 54.462 0.506 96 nevermore 54.451 0.521 91 kobold 54.444 0.515 93 locusts22 54.286 0.522 91 small2 54.247 0.514 93 locusts21 54.202 0.511 94 mice 54.066 0.520 91 returndead 53.846 0.520 91 chaingang 53.685 0.526 90 backfire 53.551 0.518 92 dime 53.029 0.516 93 ike 52.699 0.518 92 lobot 52.419 0.517 93 dwarfer2 52.270 0.514 94 comper2a 52.179 0.489 104 catcan 51.996 0.521 91 splitbomb 51.905 0.523 91 walze 51.738 0.514 94 leech13 51.561 0.510 95 imps 51.541 0.518 93 engine9 51.525 0.513 94 scissors88 51.378 0.490 104 kinch 51.340 0.505 97 rock 51.238 0.487 105 theratb 51.232 0.519 92 hitbeast 50.950 0.516 93 terminator 50.916 0.522 91 stealth 50.656 0.514 94 redrain2 50.395 0.506 97 v3 50.390 0.513 94 mutagen 50.068 0.503 98 banzai2 50.054 0.520 92 redrain 49.845 0.507 97 dwarfer 49.462 0.510 96 trinityzwo 49.461 0.501 99 killer 49.344 0.514 94 trinity 49.194 0.521 91 dodgem6 48.693 0.492 102 quarter 48.486 0.505 98 livingdead 48.297 0.516 93 cakeb 47.654 0.492 103 freeze-x 47.437 0.515 93 28dwarf 47.384 0.516 93 droid 47.110 0.512 94 gnat2a 47.025 0.518 93 splitpit 46.935 0.516 93 imperor 46.803 0.503 98 intangible 46.486 0.517 92 wormopt 45.588 0.491 102 burp 45.127 0.517 92 mutagenpar 44.964 0.513 93 overload 44.873 0.516 92 ptrooper2 44.819 0.518 92 x5v14 44.803 0.513 93 signalgun 44.702 0.508 95 impbreed11 44.670 0.519 91 kiss 44.583 0.505 96 scannery 43.958 0.505 96 roll 43.895 0.516 92 ptrooper21 43.861 0.501 98 mrnasty 43.781 0.513 93 comets 43.477 0.514 93 eclipse 43.424 0.517 92 acidrain 43.351 0.503 96 roadrunner 43.135 0.491 101 gnat 43.022 0.517 91 fleas 42.933 0.492 100 appleseed 42.885 0.511 93 fleas2 42.789 0.507 95 nova 42.606 0.510 94 bullwhip 42.473 0.510 93 x5v12 42.337 0.513 92 csapda 41.881 0.489 101 slowdown 41.795 0.514 91 dumdum 41.700 0.493 100 tamper 41.594 0.511 92 pest 41.410 0.516 91 virus 41.267 0.490 100 bacteria 41.214 0.511 92 crazyjane 41.190 0.495 98 eratos 41.019 0.516 90 alpha 40.860 0.504 95 bynars 40.391 0.495 98 trident 39.749 0.505 93 tiny 39.420 0.507 92 b2 39.312 0.507 92 middle 39.053 0.499 95 ramscoop 38.860 0.498 95 gnom 38.382 0.479 102 plague 37.993 0.500 93 auto 37.975 0.501 93 checker 37.826 0.506 92 minidwarf 37.748 0.498 94 proton 37.743 0.493 96 tolive 37.742 0.500 93 xdwarfer 37.560 0.489 97 binary 37.007 0.498 93 heapimp 36.935 0.499 93 dwarf 36.850 0.506 91 binarybomb 36.326 0.499 93 hideout 36.039 0.497 93 chalk 35.833 0.497 92 stackbomb 35.733 0.502 91 ptrooper 35.305 0.493 93 impdwarf 34.780 0.499 91 dumbo 34.364 0.482 97 bownarrow 34.301 0.490 93 hidenseek 34.219 0.482 96 minjump 34.212 0.495 91 garlic 34.194 0.497 91 eru 33.938 0.494 91 superimp 33.516 0.492 91 antivamp 33.495 0.489 93 gulliver 32.939 0.485 93 breadman 32.606 0.483 94 bravo 32.262 0.470 98 crimson 32.165 0.474 97 bridge 32.049 0.476 96 harpye 31.773 0.479 94 lichen 31.183 0.477 93 superlance 30.143 0.473 93 ultra 29.928 0.472 93 divnconq 29.819 0.474 92 cowboy 29.801 0.476 92 threader 29.491 0.465 95 trigger 29.057 0.456 99 simple 28.352 0.470 91 spreel 28.209 0.463 94 orc 28.029 0.464 93 primeimp 27.903 0.462 93 signal 27.801 0.461 94 primeimp2 27.711 0.466 91 annoying 26.957 0.462 92 echo 26.615 0.451 96 simplescan 25.769 0.457 91 turtle 24.949 0.435 99 implance 23.546 0.437 94 corporate 22.961 0.431 94 impbreed10 22.754 0.429 95 ferret 21.386 0.419 95 impbreed 20.053 0.411 95 banzai 16.576 0.385 92 flytrap 15.311 0.377 91 hunter 14.227 0.351 97 runner 14.149 0.359 94 binary2 13.587 0.356 92 impstomp 12.337 0.343 92 trynum5 3.424 0.189 92 havoc 3.030 0.172 99 retrovirus 2.174 0.152 92 chaos 2.158 0.149 95 sluicegate 2.105 0.147 95 sargent 1.064 0.106 94 extra 1.020 0.102 98 imphoser 1.010 0.100 99 andromeda 0.000 0.000 94 superstomp 0.000 0.000 94 -- -Ian From: ama@athena.mit.edu (Albert Ma) Subject: Re: CW&genaetic algorithems ? Date: 21 Jul 1993 19:08:41 GMT Message-ID: <22k47p$a9n@senator-bedfellow.MIT.EDU> In some article Stefan writes: >P.S.: the portable MARS group is glad to announce that pMARS with ICWS'94 >extensions is almost ready for release. The program currently runs on UNIX >and PC/DOS. Thanks to Albert's optimizing efforts, pMARS's speed is >only surpassed by MERCURY2, a system written in assembly. If only this were true. Sigh.. pMARS runs faster than any program written for the PC except MERCURY2. But KoTH is almost twice as fast as pMARS on UNIX. I think it's weird. compilers don't like me. That must be it. They're out to get me! Albert Ma ama@athena.mit.edu From: silver@bnr.ca (James Silverstein) Subject: koth 3.1 question Date: 22 Jul 1993 21:16:41 GMT Message-ID: <22n03p$ara@crchh327.bnr.ca> Hi, I recently got koth 3.1 running on my unix system. Can anyone tell me what the numbers in the bottom corner of each warrior's box represents? Thanks, Jim silver@bnr.ca From: stst@vuse.vanderbilt.edu (Stefan Strack) Subject: Core War Frequently Asked Questions (rec.games.corewar FAQ) Date: 26 Jul 1993 00:00:16 -0400 Message-ID: Archive-name: games/corewar-faq Last-modified: 1993/04/16 Version: 2.0.4 These are the Frequently Asked Questions (and answers) from the USENET newsgroup rec.games.corewar. This FAQ list is also available by anonymous FTP from rtfm.mit.edu as pub/usenet/news.answers/games/corewar-faq.Z. TABLE OF CONTENTS Line ------------------------------------------------------------------------ 1. What is Core War? 67 2. Is it Core War or Core Wars? 80 3. Where can I find more information about Core War? 88 4. Core War has changed since Dewdney's articles. Where do I get 106 a copy of the current instruction set? 5. What is the ICWS? 120 6. What is TCWN? 130 7. How do I join? 138 8. Are back issues of TCWNs available? 158 9. What is the EBS? 165 10. Where are the Core War archives? 181 11. Where can I find a Core War system for . . . ? 198 12. I do not have ftp. How do I get all of this great stuff? 215 13. I do not have access to Usenet. How do I post and receive news? 222 14. When is the next tournament? 243 15. What is KOTH? How do I enter? 252 16. Is it DAT 0, 0 or DAT #0, #0? How do I compare to core? 357 17. How does SLT (Skip if Less Than) work? 369 18. What does (expression or term of your choice) mean? 381 19. Other questions? 509 --------------------------------------------------------------------- Q 1: What is Core War? A 1: Core War is a game played by two or more programs (and vicariously by their authors) written in an assembly language called Redcode and run in a virtual computer called MARS (for Memory Array Redcode Simulator). The object of the game is to cause all of the opposing programs to terminate, leaving your program in sole posession of the machine. There are Core War systems available for most computer platforms. Redcode has been standardized by the ICWS, and is therefore transportable between all standard Core War systems. ---------------------------------------------------------------------- Q 2: Is it "Core War" or "Core Wars"? A 2: Both terms are used. Early references were to Core War. Later references seem to use Core Wars. I prefer "Core War" to refer to the game in general, "core wars" to refer to more than one specific battle. ---------------------------------------------------------------------- Q 3: Where can I find more information about Core War? A 3: Core War was first described in the "Core War Guidelines" of March, 1984 by D. G. Jones and A. K. Dewdney of the Department of Computer Science at The University of Western Ontario (Canada). Dewdney wrote several "Computer Recreations" articles in "Scientific American" which discussed Core War, starting with the May 1984 article. Those articles are contained in an anthology: Author: Dewdney, A. K. Title: The Armchair Universe: An Exploration of Computer Worlds Published: New York: W. H. Freeman (c) 1988 ISBN: 0-7167-1939-8 Library of Congress Call Number: QA76.6 .D517 1988 The Redcode language has changed somewhat since; see Q 4. --------------------------------------------------------------------- Q 4: Core War has changed since Dewdney's articles. Where do I get a copy of the current instruction set? A 4: A draft of the official standard (ICWS'88) is available by anonymous FTP from the Core War archives (soda.berkeley.edu) as pub/corewar/documents/standards/redcode-icws-88.Z This document is formatted awkwardly and contains ambiguous statements. For a more approachable intro to Redcode, take a look at pub/corewar/documents/tutorial.1.Z tutorial.2.Z (See also Q10) --------------------------------------------------------------------- Q 5: What is the ICWS? A 5: About one year after Core War first appeared in Sci-Am, the "International Core War Society" (ICWS) was established. Since that time, the ICWS has been responsible for the creation and maintenance of Core War standards and the running of Core War tournaments. There have been six annual tournaments and two standards (ICWS'86 and ICWS'88). --------------------------------------------------------------------- Q 6: What is TCWN? A 6: Since March of 1987, "The Core War Newsletter" (TCWN) has been the official newsletter of the ICWS. It is published quarterly and recent issues are also available as Encapsulated PostScript on soda.berkeley.edu (see Q9). --------------------------------------------------------------------- Q 7: How do I join? A 7: For more information about joining the ICWS (which includes a subscription to TCWN), contact: A 7: For more information about joining the ICWS (which includes a subscription to TCWN), or to contribute an article, review, cartoon, letter, joke, rumor, etc. to TCWN, please contact: Jon Newman 13824 NE 87th Street Redmond, WA 98052-1959 email: jonn@microsoft.com (Note: Microsoft has NO affiliation with Core War. Jon Newman just happens to work there, and we want to keep it that way!) Current annual dues are $15.00 in US currency. ---------------------------------------------------------------------- Q 8: Are back issues of TCWN available? A 8: Recent issues can be found on soda.berkeley.edu (see Q10). Older issues (up to Winter 1991) are also available (see the next TCWN for details). --------------------------------------------------------------------- Q 9: What is the EBS? A 9: The Electronic Branch Section (EBS) of the ICWS is a group of Core War enthusiasts with access to electronic mail. There are no fees associated with being a member of the EBS, and members do reap some of the benefits of full ICWS membership without the expense. For instance, the ten best warriors submitted to the EBS tournament are entered into the annual ICWS tournament. All EBS business is conducted in the rec.games.corewar newsgroup. The current goal of the EBS is to be at the forefront of Core War by writing and implementing new standards and test suites in preparation for the tenth anniversary of Core War in May of 1994. Its immediate business will be to set up a Charter and establish its officers. ---------------------------------------------------------------------- A10: Where is the Core War archive? Q10: Many documents such as the guidelines and the ICWS standards along with previous tournament Redcode entries and complete Core War systems are available via anonymous ftp from soda.berkeley.edu (128.32.149.19) in the /pub/corewar directories. Also, most of past rec.games.corewar postings (including Redcode source listings) are archived there. Jon Blow (blojo@soda.berkeley.edu) is the archive administrator. Much of what is available on soda is also available on the German archive at iraun1.ira.uka.de (129.13.10.90) in the /pub/X11/corewars directory. This FAQ is automatically archived by news.answers. See the header for the current archive name and news.answers for how to get it. ---------------------------------------------------------------------- Q11: Where can I find a Core War system for . . . ? A11: Core War systems are available via anonymous ftp from soda.berkeley.edu in the pub/corewar/systems directory. Currently, there are Unix X-Window, IBM PC-compatible (sorry, no systems specifically designed for MS-Windows yet), Macintosh, and Amiga Core War systems available there. CAUTION! There are many, many Core War systems available which are NOT ICWS'88 (or even ICWS'86) compatible available at various archive sites other than soda.berkeley.edu. Generally, the older the program - the less likely it will be ICWS compatible. Reviews of Core War systems would be greatly appreciated in the newsgroup and in the newsletter. ---------------------------------------------------------------------- Q12: I do not have ftp. How do I get all of this great stuff? A12: There is an ftp email server at ftpmail@decwrl.dec.com. Send email with a subject and body text of "help" (without the quotes) for more information on its usage. ---------------------------------------------------------------------- Q13: I do not have access to Usenet. How do I post and receive news? A13: If you have access to telnet, you can read rec.games.corewar (and many more groups) through the gopher information retrieval system. Telnet to consultant.micro.umn.edu (134.84.132.4) or any of the other gopher servers and go through these menus: 1 - Information about Gopher 10 - Gopher+ example server 11 - non-Gopher+ link 7 - News 11 - USENET news 24 - rec 21 - games 6 - corewar If you somehow receive rec.games.corewar but just can't post, you can email your post to rec-games-corewar@cs.utexas.edu and it will be automatically posted for you. ---------------------------------------------------------------------- Q14: When is the next tournament? A14: The ICWS holds an annual tournament. Traditionally, the deadline for entering is the 15th of December. The EBS usually holds a preliminary tournament around the 15th of November and sends the top finishers on to the ICWS tournament. ---------------------------------------------------------------------- Q15: What is KOTH? How do I enter? A15: King Of The Hill (KOTH) is an ongoing Core War tournament available to anyone with email provided by William Shubert (wms@iwarp.intel.com). You enter by submitting via email a Redcode program with special comment lines. You will receive a reply indicating how well your program did against the current top twenty programs "on the hill". Your program will play 100 battles against each of the 20 other programs currently on the Hill. You receive 3 points for each win and 1 point for each tie. (The existing programs do not replay each other, but their previous battles are recalled.) All scores are updated to reflect your battles and all 21 programs are ranked from high to low. If you are number 21 you are pushed off the Hill, if you are higher than 21 someone else is pushed off. Entry rules for King of the Hill Corewar: 1) Write a corewar program. KotH is fully ICWS '88 compatible, EXCEPT that a comma (",") is required between two arguments. 2) Put the line ";redcode" at the top of your program. This MUST be the first line. Anything before it will be lost. If you wish to receive mail on every new entrant, use ";redcode verbose". Otherwise you will only receive mail if a challenger makes it onto the hill. Use ";redcode quiet" if you wish to receive mail only when you get shoved off the hill. (Also, see 5 below). Additionally, adding ";name " and ";author " will be helpful in the performance reports. Do NOT have a line beginning with ";address" in your code; this will confuse the mail daemon and you won't get mail back. In addition, it would be nice if you have lines beginning with ";strategy" that describe the algorithm you use. 3) Mail this file to "wms@iwarp.intel.com". 4) Within a few minutes you should get mail back telling you whether your program assembled correctly or not. If it did assemble correctly, sit back and wait; if not, make the change required and re-submit. 5) In an hour or so you should get more mail telling you how your program performed against the current top 20 programs. If no news arrives in an hour, don't worry; entries are put in a queue and run through the tournament one at a time. A backlog may develop. Be patient. If your program makes it onto the hill, you will get mail every time a new program makes it onto the hill. If this is too much mail, you can use ";redcode quiet" when you first mail in your program; then you will only get mail when you make it on the top 20 list or when you are knocked off. Using ";redcode verbose" will give you even more mail; here you get mail every time a new challenger arrives, even if they don't make it onto the top 20 list. Often programmers want to try out slight variations in their programs. If you already have a program named "foo V1.0" on the hill, adding the line ";kill foo" to a new program will automatically bump foo 1.0 off the hill. Just ";kill" will remove all of your programs when you submit the new one. MORE ON KOTH COREWAR IMPLEMENTATION Core size: 8 000 instructions Max processes: 8 000 per program Duration: After 80 000 cycles per program, a tie is declared. Max entry length: 100 instructions Programs are guaranteed a 100 instruction block (inclusive of their warrior's instructions) without overlapping their opponent. SAMPLE ENTRY: ;redcode ;name Dwarf ;author A. K. Dewdney ;strategy Throw DAT bombs around memory, hitting every 4th memory cell. ;strategy This program was presented in the first Corewar article. bomb DAT #0 dwarf ADD #4, bomb MOV bomb, @bomb JMP dwarf END dwarf ; Programs start at the first line unless ; an "END start" pseudo-op appears to indicate ; the first logical instruction. Also, nothing ; after the END instruction will be assembled. Rule variants for "eXperimental" corewar: The same as above but use ";redcode-x" to start your program. Your program will be entered into a second tournament with slightly different rules. The rules are: - All addressing modes are allowed with all instructions. - There is an additional addressing mode, called "postincrement". To use it try an instruction like "mov >5,6". - The maximum write distance is 250 instructions. That is, every time your program tries to modify memory, the address is checked; if it is more than 250 instructions from the process doing the modify, then memory is left unchanged, but the instruction continues as normal. - A tie is not declared until 150,000 cycles per program have elapsed. KotH runs on any Unix system with an X windows interface. The source code to KotH is available by email from William Shubert. Write to him at (wms@iwarp.intel.com) for a copy or get it by anonymous FTP from soda.berkeley.edu in the pub/corewar/systems directory. ---------------------------------------------------------------------- Q16: Is it DAT 0, 0 or DAT #0, #0? How do I compare to core? A16: Core is initialized to DAT 0, 0. This is an "illegal" instruction under ICWS'88 rules and strictly compliant assemblers (such as KotH) will not let you write a DAT 0, 0 instruction - only DAT #0, #0. So this begs the question, how to compare something to see if it is empty core. The answer is, most likely the instruction before your first instruction and the instruction after your last instruction are both DAT 0, 0. You can use them, or any other likely unmodified instructions, for comparison. ---------------------------------------------------------------------- Q17: How does SLT (Skip if Less Than) work? A17: SLT gives some people trouble because of the way modular arithmetic works. It is important to note that all negative numbers are converted to positive numbers before a battles begins. Example: (-1) becomes (M - 1) where M is the memory size. Once you realize that all numbers are treated as positive, it is clear what is meant by "less than". It should also be clear that no number is less than zero. ---------------------------------------------------------------------- Q18: What does (expression or term of your choice) mean? A18: Here is a selected glossary of terms. If you have a definition and/or term you wish to see here, please send it to me. (References to an X-like program mean that the term X is derived from the specific program X and has become a generic term). Bootstrapping - Strategy of copying the active portion of the program away from the initial location, leaving a decoy behind and making the relocated program as small as possible. B-Scanners - Scanners which only recognize non-zero B-fields. example add #10,scan scan jmz example,10 C - Measure of speed, equal to one location per cycle. Speed of light. CMP-Scanner - A Scanner which uses a CMP instruction to look for opponents. example add step,scan scan cmp 10,30 jmp attack jmp example step dat #20,#20 Color - Property of bombs making them visible to scanners, causing them to attack useless locations, thus slowing them down. example dat #100 Core-Clear - code that sequentially overwrites core with DAT instructions; usually the last part of a program. Decoys - Bogus or unused instructions meant to slow down Scanners. Typically, DATs with non-zero B-fields. DJN-Stream (also DJN-Train) - Using a DJN command to rapidly decrement core locations. example . . . . . . djn example,<4000 Dwarf - the prototypical small bomber. Imp - Program which only uses the MOV instruction. example MOV 0, 1 or example MOV 0, 2 MOV 0, 2 Imp-Gate - A location in core which is bombed or decremented continuously so that an Imp can not pass. Also used to describe the program-code which maintains the gate. example ... ... SPL 0, Date: Tue, 27 Jul 1993 19:29:01 GMT In article <22n03p$ara@crchh327.bnr.ca>, silver@bnr.ca (James Silverstein) writes: |> |> Hi, |> |> I recently got koth 3.1 running on my unix system. Can anyone tell me |> what the numbers in the bottom corner of each warrior's box represents? The number of processes. -- /* 0F 90 3E 44 F9 13 E7 CC (jojaste@descartes.uwaterloo.ca) ** 10 20 44 C8 42 21 08 98 ** 38 40 F9 50 87 C2 1F 30 "Woof bloody woof" - Gaspode the Wonder Dog ** 40 81 12 61 08 84 22 00 (Terry Pratchett, Moving Pictures) */ F9 FA 24 42 11 3F 44 C0 From: s921878@minyos.xx.rmit.OZ.AU (Daniel John Lee Parnell) Subject: Re: CW&genaetic algorithems ? Date: 28 Jul 1993 03:52:13 GMT Message-ID: <234t5d$jnf@aggedor.rmit.OZ.AU> Walter.Harms@arbi.informatik.uni-oldenburg.de (Walter Harms) writes: >last week i posted on genetic, that i want to know if there is >someone outthere who is experimenting wich cw & ga. does anyone >here make such experiments ? >I think its strait forward but why didnt so few try it ? I have started working on such a program. It is written in turbo pascal 6.0 for the IBM PC etc. So far I have had some promissing results. I start out with 20 random warriors and fight them all against eachother. This takes a while ;-) I havn't left it running long enough yet to get much in the way of results (about 4 genertations) however I have seen some interesting behaviors so far. Daniel -- Daniel Parnell - Email to s921878@minyos.xx.rmit.oz.au - AMIGA 500 1 MEG Theres no point in being grown up if you can't act childish sometimes : Dr Who Second Year Applied Physics student at R.M.I.T. Melbourne Australia. *:|() People who drink petrol shouldn't smoke. AMOS 1.34 with Compiler and 3D From: tony@ephsa.sat.tx.us (Tony Plocica) Subject: Re: CW&genaetic algorithems ? Message-ID: Date: 28 Jul 93 16:44:27 GMT s921878@minyos.xx.rmit.OZ.AU (Daniel John Lee Parnell) writes: > I have started working on such a program. It is written in turbo pascal 6.0 > for the IBM PC etc. So far I have had some promissing results. I start out > with 20 random warriors and fight them all against eachother. This takes a > while ;-) I havn't left it running long enough yet to get much in the way > of results (about 4 genertations) however I have seen some interesting > behaviors so far. > > > Daniel > Sounds fun... Will this program be publicly available? If so where would I get it? P.S. This sounds a bit like cheating to me... :-) -- tony@ephsa.sat.tx.us (Tony Plocica) Rivercity Matrix -- +1 (210) 561-9815/21 From: pk6811s@acad.drake.edu Subject: _Push Off_ Message-ID: <1993Jul29.150730.1@acad.drake.edu> Date: Thu, 29 Jul 1993 21:07:30 GMT _PUSH OFF_ A midweek review of Corewar July 28, 1993 ------------------------------------------------------------------------------- I. The Standings: # %W/ %L/ %T Name Author Score Age 1 42/ 41/ 18 Grimm's Vampyre c w blue 143 95 2 45/ 46/ 9 Agony 6.0 Stefan Strack 143 166 3 35/ 27/ 38 FlyPaper 3.0 J.Layland 142 336 4 39/ 36/ 25 Winter Werewolf 3 W. Mintardjo 142 230 5 42/ 43/ 14 Dragon Spear c w blue 141 1014 6 43/ 44/ 13 Iron Gate 1.01 Wayne Sheppard 141 55 7 43/ 46/ 11 Impurge Fredrik Ohrstrom 140 236 8 37/ 34/ 29 Herem VI Anders Ivner 139 84 9 32/ 25/ 43 Deck of Many Things c w blue 138 41 10 31/ 23/ 46 ttt nandor sieben 138 136 11 30/ 22/ 48 Impact v1.0 Anders Ivner 138 49 12 30/ 23/ 47 Night Crawler Wayne Sheppard 137 912 13 30/ 23/ 46 Imprimis 7 P.Kline 137 152 14 30/ 23/ 47 Sphinx v2.8 W. Mintardjo 137 1910 15 30/ 24/ 47 Incrimination v1.0 Brant D. Thomsen 136 316 16 40/ 46/ 14 Fire Storm v1.1 W. Mintardjo 135 551 17 30/ 26/ 45 Hydra Stephen Linhart 134 19 18 22/ 13/ 64 Imps! Imps! Imps!-d Steven Morrell 131 146 19 40/ 50/ 10 Creampuff II P. Kline 130 9 20 35/ 46/ 20 lil' shears P.Kline 124 1 21 7/ 50/ 43 Hyper Cat V2.1 E.C et P.E.M 64 0 ------------------------------------------------------------------------------- II. The Basics: -Core War Archives are available via anonymous FTP at soda.berkeley.edu in pub/corewar... -FAQ for this newsgroup is available via anonymous FTP at rtfm.mit.edu as pub/usenet/news.answers/games/corewar-faq.z ------------------------------------------------------------------------------- III. The Scoop: Accolades to CW Blue whose Dragon Spear passed 1000 challenges this week. Considering its age, Dragon Spear has been unusually successful the last few days, frequently occupying the #1 spot. Can't recall whether we ever saw DS's source - hint-hint - :-). A flurry of apparent newcomers has been assaulting the Hill recently. Linhart's interesting 'Hydra' program is the most successful entry. Note to Steve: some of us spent months before getting on KotH. Additional Note to Steve, whose email was bounced back to me: I noticed you are able to ;kill some versions of Hydra but not all. Did you submit a version from another computer account? KotH uses the sender's mail address not the ;author line to distinguish ownership. If not, you can contact Bill Shubert by sending a regular mail message to the same address as KotH. Going to give us any hints about what makes Hydra work? :-) ------------------------------------------------------------------------------- IV. The Outlook: 8 30/ 25/ 44 Hydra Stephen Linhart 135 1 8 43/ 47/ 9 Creampuff II P. Kline 139 1 ------------------------------------------------------------------------------- V. The Quick Look: 20 26/ 45/ 28 nugget v6 Nick Bourner 108 1 21 0/ 47/ 53 Tie Me Up M. S. Veach 54 0 21 0/ 87/ 13 Findimp Test G. Ritter 13 0 21 0/ 89/ 11 frontv0 Mike Feier 11 0 21 0/ 89/ 11 Pink Nightmare V1.2 Mike Feier 11 0 21 1/ 30/ 69 Thing G. Ritter 72 0 21 1/ 34/ 66 Infest v1.0 M. Burton 68 0 21 1/ 35/ 64 fork E. Djikstra 67 0 21 1/ 54/ 45 Pause&Clear2 James Ojaste 49 0 21 1/ 72/ 28 front242v3 Mike Feier 29 0 21 1/ 84/ 14 Crazed Dwarf G. Ritter 19 0 21 2/ 29/ 69 Deflagellator G. Ritter 74 0 21 2/ 62/ 36 Quartz G. Ritter 42 0 21 2/ 64/ 34 Kimp3! James Ojaste 41 0 21 2/ 98/ 0 gImp 1.00 Patrice Cummings 7 0 21 3/ 76/ 21 banzai_pe P.E. Moreau 31 0 21 5/ 70/ 25 Crazed Dwarf 1.1 G. Ritter 41 0 21 6/ 57/ 36 Kimp! James Ojaste 55 0 21 6/ 90/ 5 Mantis 8000 D. Ritter 21 0 21 7/ 40/ 53 Thing 1.21 G. Ritter 73 0 21 7/ 56/ 38 Thief! James Ojaste 57 0 21 7/ 66/ 26 Clone G. Ritter 48 0 21 9/ 68/ 23 Test IRP Rodney Schuler 51 0 21 9/ 77/ 13 VFC V2.0 P.E. Moreau 42 0 21 10/ 29/ 61 Test-IS G. Ritter 92 0 21 10/ 88/ 2 Sieve v1.0 James Ojaste 33 0 21 11/ 82/ 7 Dopey 1.04 Patrice Cummings 40 0 21 12/ 80/ 8 Kammakazi V0.0 Mike Feier 44 0 21 13/ 35/ 52 Thing 1.2 G. Ritter 92 0 21 13/ 59/ 28 threescore 1.0 Steve Gunnell 66 0 21 13/ 69/ 18 Scan v1.3 James Ojaste 58 0 21 13/ 72/ 15 Bang2! James Ojaste 53 0 21 13/ 87/ 1 Wipe James Ojaste 39 0 21 14/ 76/ 10 Hyper Cat V2 E.C et P.E.M 52 0 21 15/ 71/ 14 Bang! James Ojaste 58 0 21 15/ 79/ 6 Plit 1.0 G. Ritter 51 0 21 16/ 79/ 5 sore loser Steven Morrell 53 0 21 16/ 83/ 1 dopey patrice cummings 48 0 21 17/ 68/ 15 test P.Kline 67 0 21 17/ 80/ 3 D2.2ab James Ojaste 55 0 21 18/ 29/ 53 gen1417062609 the sun god 108 0 21 19/ 32/ 49 toilet paper v1.0 Steven Morrell 107 0 21 19/ 75/ 6 mauve Greg Ritter 64 0 21 22/ 27/ 51 Test-IS,S +13 Unknown 117 0 21 22/ 28/ 50 Test-IS,S +5 G. Ritter 115 0 21 22/ 35/ 44 Test-IS,S G. Ritter 109 0 21 22/ 75/ 3 D2.2a James Ojaste 70 0 21 23/ 38/ 40 Jason's Super Hydra Jason & Stephen Linh 108 0 21 23/ 47/ 30 minimite Cormac Walsh 100 0 21 24/ 34/ 43 Test-IS,D,S G. Ritter 114 0 21 26/ 65/ 9 D2.2 James Ojaste 87 0 21 28/ 46/ 25 Passport 1.1 P.Kline 110 0 21 29/ 61/ 10 Spiral Stephen Linhart 98 0 21 32/ 45/ 23 Emerald 4.1 P.Kline 119 0 21 32/ 52/ 16 :( v1.1 Steven Morrell 111 0 21 33/ 46/ 22 Emerald 5.1000 P.Kline 120 0 21 33/ 48/ 19 lil' shears P.Kline 118 3 ------------------------------------------------------------------------------- VI. The Hint: Last week I mentioned that there could be a difference in success between ADDing your steps and SUBtracting them. Here is the result of a little test I ran, using +12 and -12 as step sizes in Lil' Shears: Opponent sub #12 add #12 sub - add ------------------ -------- -------- ----------- Impurge 50/44/06 74/23/03 -24/+21/+03 FlyPaper 3.0 22/56/22 06/78/16 +14/-22/+06 Creampuff II 65/28/07 53/31/16 +12/-03/-09 Fire Storm v1.1 30/53/17 44/45/11 -14/+08/+06 Dragon Spear 51/29/20 44/41/15 -07/+12/-05 ttt 11/71/18 12/68/20 -01/+03/-02 Winter Werewolf 3 44/35/21 48/30/22 -04/+05/-01 Grimm's Vampyre 36/49/15 35/52/13 +01/-03/+02 Agony 6.0 53/39/08 47/39/14 +06/+00/-06 Iron Gate 1.01 40/36/24 43/43/14 -03/-07/+10 Herem VI 30/45/25 32/42/26 -02/+03/-01 Hydra 17/60/23 22/54/24 -05/+06/-01 Imprimis 7 26/42/32 22/55/23 +04/-13/+09 Night Crawler 20/58/22 27/49/24 -07/+09/-02 Impact v1.0 26/34/40 22/40/38 +04/-06/+02 Deck of Many Things 09/31/60 05/38/57 +04/-07/+03 Sphinx v2.8 29/43/28 32/44/24 -03/-01/+04 Imps! Imps! Imps!-d 05/68/27 07/67/26 -02/+01/+01 Incrimination v1.0 35/33/32 43/31/26 -08/+02/+06 lil' shears (self) 36/36/28 42/42/16 -06/-06/+12 Against Impurge and FlyPaper I definitely suspect a difference. Against Creampuff and Fire Storm, maybe. Unfortunately the differences seemed to cancel each other out, so no overall advantage is gained :-(. Other differences are probably due to the randomness inherant in KotH. Here is the source for Lil' Shears, an 8-line spl-jmp bombing b-scanner with a gate. The gate is not obvious, but develops after the core-clear. ;redcode ;name lil' shears ;kill lil' shears ;author P.Kline ;strategy bscanning spl-jmp bomber with core-clear & gate bbmb mov bjmp,@bjmp bnex add #12,@2 jmz bnex,@bbmb mov bspl,@bbmb bjmp jmp @-1,-1 ; this gets bombed with bspl to start core-clear bspl spl 0,<1 ; this gets decremented by above to <7872 mov 1,-3 dat <7871,<-1 ; this decrements the mov for the core-clear end bnex ------------------------------------------------------------------------------- VII. The End: Paul Kline pk6811s@acad.drake.edu