From: John B Everitt Subject: New beginners website Date: Sun, 2 Jun 2002 19:24:42 +0000 Message-ID: <20020602192442.0d448202.everitt@dircon.co.uk> Hi All I'm a beginner so none of my own info on this site, yet. I got peeved with print outs from HTML and TXT been cut off two lines prematurely or improperly formatted, so during my reading I have been converting to PDF, adding hyphenation where appropriate and building up a beginners reference collection. It has also allowed me to save much paper in a agreeable way because the PDF screen fonts are nicer than staring at a text-editor, terminal display or web browser. I've compiled these and incorporated into an easy to use HTML 3.2 web-site. http://www.firetrench.com/corewar/ There is probably much missing, and some of the quick links which I intended to be as concise as possible, are probably improperly placed or have entries missing. If you have any suggestions as to what is missing, or of a text that is ripe for conversion please email me direct or post here. Also, authors, I have added the following notice above the PDF files: "PDF conversions for ease of printing. None of these are mine, all content belongs to the respective owners unless otherwise explicitly stated within the document." If you want more explicit notice of ownership email me and I'll add it or remove your document if you so wish. Also if you have information that you want made available to the public but don't want to go to the trouble of creating and maintaining a website I am happy to facilitate this for you. Regards - John From: "Robert Macrae" Subject: Re: Useful techniques for bootstrapping Date: 2 Jun 2002 20:29:20 -0400 Message-ID: <009601c20a61$c68d2700$2200a8c0@Mesh1> > BTW, has anyone thought of a good way to probe for the step size > of a bomber on the hill? Linear scan for two bombs should give you a modest integer multiple; store the result a few times and some common-factor maths should get the step provided it is a single value. For uneven step sizes (ABABAB...) it would be harder because you have more possibilities n x (A+B) + [+B, -B, 0] but with enough samples you should get it? Not that I approve of such things, of course 8-) Robert From: Koth Subject: KOTH.ORG: Status - 94 No Pspace 06/03/02 Date: 3 Jun 2002 00:49:27 -0400 Message-ID: <200206030409.AAA00757@gevjon.ttsg.com> Weekly Status on 06/03/02 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG 94 No Pspace CoreWar Hill: Last battle concluded at : Sun Jun 2 16:31:28 EDT 2002 # %W/ %L/ %T Name Author Score Age 1 42/ 38/ 20 Hazy Lazy ... again Steve Gunnell 146 109 2 32/ 23/ 44 SP test 12 Lukasz Grabun 141 17 3 29/ 20/ 52 Son of Vain Oversby/Pihlaja 138 663 4 41/ 46/ 13 G3-b David Moore 136 344 5 39/ 43/ 18 Vanquisher Lukasz Grabun 135 165 6 27/ 20/ 53 nPaper II Paul-V Khuong 134 1074 7 29/ 24/ 48 pTest G/M 133 2 8 39/ 44/ 17 Behemot Michal Janeczek 133 897 9 28/ 24/ 48 pTest2 G/M 133 1 10 34/ 35/ 32 Keyser Soze Anton Marsden 133 775 11 37/ 41/ 22 QSOS Fizmo 133 12 12 28/ 24/ 49 Olivia Ben Ford 132 802 13 28/ 25/ 47 Uninvited John Metcalf 131 756 14 27/ 24/ 49 Inky Ian Oversby 131 553 15 38/ 45/ 17 pre75-z47a John Metcalf 130 16 16 31/ 32/ 37 Blacken Ian Oversby 129 1321 17 25/ 22/ 53 Purifier Lukasz Grabun 129 84 18 25/ 22/ 53 Candy Test I Lukasz Grabun 128 11 19 36/ 45/ 19 AntiGen Fizmo 127 10 20 25/ 27/ 47 papertest Fizmo 124 13 21 7/ 20/ 73 Trojan Compiler Joshua 93 0 From: Koth Subject: KOTH.ORG: Status - ICWS Experimental 94 06/03/02 Date: 3 Jun 2002 00:50:52 -0400 Message-ID: <200206030406.AAA00669@gevjon.ttsg.com> Weekly Status on 06/03/02 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG ICWS Experimental 94 CoreWar Hill: Last battle concluded at : Sun Jun 2 20:30:15 EDT 2002 # %W/ %L/ %T Name Author Score Age 1 53/ 34/ 13 Fire and Ice II David Moore 172 4 2 34/ 21/ 44 KAT v5 Dave Hillis 148 36 3 38/ 32/ 30 Controlled Aggression Ian Oversby 143 104 4 39/ 36/ 25 Black Moods Ian Oversby 142 100 5 24/ 8/ 68 Evol Cap 4 X John Wilkinson 139 173 6 40/ 43/ 16 Greetings From Asbury Par JKW 137 64 7 26/ 16/ 58 Kin John Metcalf 135 12 8 31/ 26/ 43 Damage Inflicted Robert Macrae 135 43 9 26/ 16/ 58 Katafutr Michal Janeczek 135 44 10 22/ 9/ 69 Denial David Moore 134 45 11 26/ 21/ 54 Venom v0.2b Christian Schmidt 131 126 12 19/ 7/ 74 Black Box v1.1 JKW 130 67 13 19/ 7/ 74 Evolve X v4.0 John Wilkinson 130 121 14 31/ 32/ 36 Big I.F.F.S. Dave Hillis 130 33 15 31/ 37/ 31 Ogre Christian Schmidt 126 52 16 34/ 47/ 19 Mischief John Metcalf 122 1 17 23/ 30/ 47 Disaster Area 2.8 Stefan Foerster 116 31 18 30/ 45/ 24 Pagan John K W 115 158 19 26/ 39/ 35 La Vibra 19 Lukasz Grabun 113 2 20 24/ 37/ 38 test CS 111 61 21 10/ 53/ 37 81501-5389-xt430-18-EVE bvowk 66 0 From: Koth Subject: KOTH.ORG: Status - MultiWarrior 94 06/03/02 Date: 3 Jun 2002 00:52:18 -0400 Message-ID: <200206030403.AAA00566@gevjon.ttsg.com> Weekly Status on 06/03/02 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG Multiwarrior 94 CoreWar Hill: Last battle concluded at : Sun May 26 14:10:15 EDT 2002 # Name Author Score Age 1 D-clearM Ken Espiritu 72 88 2 test John Metcalf 55 16 3 fclear Brian Haskin 54 72 4 Tinyshot John Metcalf 46 1 5 Her Majesty P.Kline 39 107 6 8thTest Gino Oblena 34 19 7 clock strikes twelve John Metcalf 31 2 8 Xord Monominer XOSC:01 Gino Oblena 26 27 9 QuiVa John Metcalf 18 181 10 Pitbull Christian Schmidt 14 44 11 Downpour John Everitt 1 0 From: Koth Subject: KOTH.ORG: Status - Standard 06/03/02 Date: 3 Jun 2002 00:53:43 -0400 Message-ID: <200206030400.AAA00454@gevjon.ttsg.com> Weekly Status on 06/03/02 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG Standard KotH CoreWar Hill : Last battle concluded at : Mon May 20 00:11:20 EDT 2002 # %W/ %L/ %T Name Author Score Age 1 45/ 37/ 18 Oneshot '88 John Metcalf 153 1 2 36/ 21/ 43 Freight Train David Moore 152 80 3 35/ 21/ 45 Test Alexander (Sasha) Wa 149 19 4 34/ 23/ 43 sIMPly.Red v0.95 Leonardo Humberto 144 37 5 33/ 22/ 45 Guardian Ian Oversby 143 79 6 43/ 44/ 13 Foggy Swamp Beppe Bezzi 142 76 7 43/ 44/ 14 Blur '88 Anton Marsden 141 117 8 35/ 30/ 36 vala John Metcalf 140 2 9 37/ 38/ 24 Tangle Trap David Moore 137 153 10 38/ 41/ 21 Stasis David Moore 136 187 11 37/ 39/ 23 PacMan David Moore 136 109 12 26/ 17/ 57 EV Paper John K Wilkinson 136 93 13 33/ 32/ 35 Frog Sticker P.Kline 134 29 14 29/ 23/ 48 Shish-Ka-Bob Ben Ford 134 35 15 27/ 20/ 52 Jinglo John Metcalf 134 4 16 27/ 20/ 53 Test I Ian Oversby 134 136 17 27/ 22/ 50 Evoltmp 88 John K W 132 130 18 39/ 47/ 14 Iron Gate Wayne Sheppard 130 405 19 37/ 44/ 19 Beholder's Eye V1.7 W. Mintardjo 129 355 20 39/ 48/ 13 ig Wayne Sheppard 129 7 21 7/ 73/ 20 Pseudo Ring Simon Kitson 41 0 From: Paul-V Khuong Subject: Re: New beginners website Date: 3 Jun 2002 08:49:43 -0400 Message-ID: <20020603111514.71772.qmail@web11607.mail.yahoo.com> --- John B Everitt wrote: > I'm a beginner so none of my own info on this site, > yet. I got peeved > with print outs from HTML and TXT been cut off two > lines prematurely or > improperly formatted, so during my reading I have > been converting to PDF, > adding hyphenation where appropriate and building up > a beginners reference > collection. [...] > http://www.firetrench.com/corewar/ Thank you very much :) I'm sure many people will appreciate it. __________________________________________________ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com From: metcalf@uboot.com Subject: Misc, Tournament and more Date: 4 Jun 2002 19:20:34 -0400 Message-ID: <20020604172900.D629A921E@Mail01.Uboot.com> Hi, Does anyone know the exact age of any of the warriors below when they were pushed off of the '94nop hill? They are the only warriors which survived more than 100 challenges for which I do not have an exact figure. Head or Tail between 148 and 173 Floody River between 126 and 151 Red Carpet between 118 and 143 If anyone would like the warriors from round 1 of the tournament sending to them, please let me know. I have already sent them to Christoph and Planar. Remember the deadline for round 2 is approaching, there are just under two weeks left, the deadline being on Saturday the 15th of June. For anyone who hadn't yet noticed, there is now a beginners' hill at corewars.sourceforge.net as well as a new tiny hill which is open to hand-written warriors. Regards, John _____________________________________________________________ new: now with cheeez! the foto community of uboot.com http://www.uboot.com - who r U? From: John B Everitt Subject: Random tools Date: Tue, 4 Jun 2002 19:45:39 +0000 Message-ID: <20020604194539.5de2472f.everitt@dircon.co.uk> Hi All I have written a couple of tools in Perl with regards of Corewar. One produces random bots, the other takes a directory full of bots and runs them using Phillip Kendall's Koth tool and filters the results. For it to work you need Koth with a working .kothrc. I've excluded P-Space operands but everything else, including all modifiers is left in. The spiel is below. 1) ./randbot Random Redcode Generator. Version 0.1 -h help (this). -d directory to write to. -n number of bots. -l number of lines 2) ./tally Ranbot Redcode Koth Plugin. Version 0.1 -h help (this). -d bots directory. * -k /path/filename Path and filename of koth. * -b name Benchmark i.e. wilmoo. * -n N Number of rounds. * -a N Display scores above N. * * mandatory I've made them available here: http://www.everitt.dircon.co.uk/random.tgz I'm hoping to begin another Perl program with evolution features but I've got some reading to do yet. The above are very rough but I'll improve on them as I get time. I'm pretty interested in collaborating on a Perl based evolver so feel free to email me. Regards - John From: "tbone" Subject: Re: New beginners website Message-ID: Date: Wed, 05 Jun 2002 02:13:41 GMT thnaks "John B Everitt" wrote in message news:20020602192442.0d448202.everitt@dircon.co.uk... > Hi All > > I'm a beginner so none of my own info on this site, yet. I got peeved > with print outs from HTML and TXT been cut off two lines prematurely or > improperly formatted, so during my reading I have been converting to PDF, > adding hyphenation where appropriate and building up a beginners reference > collection. It has also allowed me to save much paper in a agreeable way > because the PDF screen fonts are nicer than staring at a text-editor, > terminal display or web browser. > > I've compiled these and incorporated into an easy to use HTML 3.2 > web-site. > > http://www.firetrench.com/corewar/ > > There is probably much missing, and some of the quick links which I > intended to be as concise as possible, are probably improperly placed or > have entries missing. > > If you have any suggestions as to what is missing, or of a text that is > ripe for conversion please email me direct or post here. > > Also, authors, I have added the following notice above the PDF files: > > "PDF conversions for ease of printing. None of these are mine, all content > belongs to the respective owners unless otherwise explicitly stated within > the document." > > If you want more explicit notice of ownership email me and I'll add it or > remove your document if you so wish. > > Also if you have information that you want made available to the public > but don't want to go to the trouble of creating and maintaining a website > I am happy to facilitate this for you. > > Regards > > - John From: M Joonas Pihlaja Subject: Re: Useful techniques for bootstrapping Date: 5 Jun 2002 07:18:46 -0400 Message-ID: On Sun, 2 Jun 2002, Robert Macrae wrote: > Linear scan for two bombs should give you a modest integer > multiple; store the result a few times and some common-factor > maths should get the step provided it is a single value. Could you be more specific about what you have in mind? I don't understand how you can infer the step from sampling the distance between two bombs you find, except in simple cases (small steps) where the found distance really is the step. How does it work for a step of 3039, say? From: Paul-V Khuong Subject: Re: Useful techniques for bootstrapping Date: 5 Jun 2002 08:20:19 -0400 Message-ID: <20020605113052.81471.qmail@web11605.mail.yahoo.com> --- M Joonas Pihlaja wrote: > > On Sun, 2 Jun 2002, Robert Macrae wrote: > > > Linear scan for two bombs should give you a modest > integer > > multiple; store the result a few times and some > common-factor > > maths should get the step provided it is a single > value. > > Could you be more specific about what you have in > mind? I don't > understand how you can infer the step from sampling > the distance > between two bombs you find, except in simple cases > (small steps) > where the found distance really is the step. How > does it work > for a step of 3039, say? 3039 is (pseudo) step-1, right? I think that's a bit harder. Here's what i think Robert means: find the distance between a few bombs, once you have a few, you should have very few (2 in an ideal case) common factors between those distances. Then, use a LUT(look-up table - see buncha dats ;) to find the step. Surely linearly scanning for a bomb will find one relatively early in the game, so that the odds that adding or substracting a number which isn't the step would yield the location of a bomb are pretty slim. So, once we have found the mod-number(stored in P-SPACE, of course), we ahve a warrior which does that: 1. linear scan for a non-zero loc 2. save the pointer. For Each LUT Entry : see if ptr+entry is nonzero. If yes, exit loop, store the step in p-space, etc. see if ptr-entry is nonzero. If yes, exit loop, store the step in p-space, etc. Rof 3. Start backward bombing. Of course there are a few detail to iron out. For example, it would probably be better to take the distance between a bomb and the second one we find after it (not consecutive ones, to avoid having to deal with overlapping bombing patterns using a and b fields of the mov line). The check to see if the step used is right could also be a lot better if we also check if ptr+2step is non-zero. __________________________________________________ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com From: Lukasz Grabun Subject: Re: New beginners website Date: Wed, 5 Jun 2002 12:04:53 +0000 (UTC) Message-ID: �ro, 05 cze 2002 o 02:13 GMT, tbone: > thnaks don't quote the whole message just to add your one tiny line. -- Lukasz Grabun (reply-to field is scrambled, remove NOSPAM) GM d+ s: a-- C++ UL P L++ E---- W-- N++ o? K- w-- O@ M@ V- PS+ PE+ Y PGP t-@ 5@ X++(+++) R tv-() b+++ DI+ D- G++ e++ h! r++ y+ From: ff95@dial.pipex.com Subject: Re: Useful techniques for bootstrapping Date: 5 Jun 2002 16:23:57 -0400 Message-ID: <1023286987.3cfe1ecb9152b@netmail.pipex.net> Quoting M Joonas Pihlaja : > > Linear scan for two bombs should give you a modest integer > > multiple; store the result a few times and some common-factor > > maths should get the step provided it is a single value. > > Could you be more specific about what you have in mind? I don't > understand how you can infer the step from sampling the distance > between two bombs you find, except in simple cases (small steps) > where the found distance really is the step. How does it work > for a step of 3039, say? Err... the simple answer is that I'm wrong because I have ignored the problem that you have to handle all the maths mod 8000. The gaps all obey the integer (Diophantine?) equation G + k x 8000 = j x S for step S and unknown j,k that are different for every distinct G. |j| and |k| are bounded in terms of the time at which you scan the second bomb, so in theory you could do an exhaustive search through k (looking for factors each time) but I doubt it is easy to do the maths in Redcode. OK, how about a revised suggestion. Linear scan for a pair as before and note G. Suicide into next round. Linear scan for a single bomb. Scan forwards and backwards in steps of G until an unbombed site is found at each end. Wait until one is bombed. Scan forwards and backwards by 1 more Gap. Start timer. Wait site is bombed. Stop timer. Use time to calculate the possible values of j in above equation -- there will be several corresponding to different bombing rates and perhaps timing errors. Loop through js, seeking a k for which the integer equation works and store the implied S. Repeat until you can complete all this without being bombed! All this might be more practical in large core... Hmmmm... Robert From: pak21@cam.ac.uk (Philip Kendall) Subject: Re: Random tools Date: 5 Jun 2002 17:02:13 +0100 Message-ID: In article <20020604194539.5de2472f.everitt@dircon.co.uk>, John B Everitt wrote: >Hi All > >I have written a couple of tools in Perl with regards of Corewar. One >produces random bots, the other takes a directory full of bots and runs >them using Phillip Kendall's Koth tool and filters the results. Personally, I'd advise dumping the rubbish that is koth.c and using the Perl scripts which someone else has recently written. Can't remember who, but it'll be on Google if they don't pop up and plug them now :-) Phil -- Philip Kendall http://www.srcf.ucam.org/~pak21/ From: pagaltzis@gmx.de (Aristoteles Pagaltzis) Subject: Re: Random tools Date: 5 Jun 2002 17:20:01 -0700 Message-ID: <872a85cc.0206051620.5b0c17ba@posting.google.com> pak21@cam.ac.uk (Philip Kendall) wrote in message news:... > Personally, I'd advise dumping the rubbish that is koth.c and using the > Perl scripts which someone else has recently written. Can't remember who, > but it'll be on Google if they don't pop up and plug them now :-) I'm not sure if that's referring to me, but if so, the latest one is http://groups.google.com/groups?selm=872a85cc.0205071424.31609b9d%40posting.gogle.com (URL may have been broken into multiple lines by the time you're reading this message.) For some reason this latest version doesn't show up in a subject search for "bench.pl" in Google's r.g.c archive - somewhat irritating. I just noticed an oopsie in the usage text. It doesn't any longer assume all files in the benchmark directory to be warriors regardless of extension; it specifically looks for files with an extension of .red (irrespective of capitalization). From: John B Everitt Subject: Re: Random tools Date: Wed, 5 Jun 2002 17:26:02 +0000 Message-ID: <20020605172602.0d78df80.everitt@dircon.co.uk> On 5 Jun 2002 17:02:13 +0100 pak21@cam.ac.uk (Philip Kendall) wrote: > In article <20020604194539.5de2472f.everitt@dircon.co.uk>, > John B Everitt wrote: > >Hi All > > > >I have written a couple of tools in Perl with regards of Corewar. One > >produces random bots, the other takes a directory full of bots and runs > >them using Phillip Kendall's Koth tool and filters the results. > > Personally, I'd advise dumping the rubbish that is koth.c and using the > Perl scripts which someone else has recently written. Can't remember > who, but it'll be on Google if they don't pop up and plug them now :-) Ah the author! ;-). My scripts should easy to adapt to anything. I did have a good search but I kept coming across some horrid Dos (or DOS) batch scripts and it put me off. I shall do another search though, unless the authors plug them. - John From: John B Everitt Subject: Re: Random tools Date: Wed, 5 Jun 2002 17:32:43 +0000 Message-ID: <20020605173243.02f97cd6.everitt@dircon.co.uk> On Wed, 5 Jun 2002 17:26:02 +0000 John B Everitt wrote: > My scripts should easy to adapt to anything. I did have a good search > but I kept coming across some horrid Dos (or DOS) batch scripts and it > put me off. I shall do another search though, unless the authors plug > them. > > - John Following on from this, if they don't have a static place to host them I'm quite happy for them to email them to me and I'll put them up on my site [0] as they fit into the whole beginners remit because beginners need something less down-heartening than a public hill to test their code with. - John [0] http://www.firetrench.com/corewar/ From: waknuk@yahoo.com (Philip Thorne) Subject: Re: Random tools Date: 5 Jun 2002 23:26:05 -0700 Message-ID: <4ee41bd6.0206052226.abb9b4d@posting.google.com> pak21@cam.ac.uk (Philip Kendall) wrote in message > > [...] > Personally, I'd advise dumping the rubbish that is koth.c and using the > Perl scripts which someone else has recently written. Can't remember who, > but it'll be on Google if they don't pop up and plug them now :-) > > Phil I prefer the koth layout but it is nice to be able to make quick changes. I tried using bench.pl under Windows recently and found it useful but couldn't quite follow thefinal results so bypassed the score_mutliplier variable to work out the average (and changed the output to be more koth-like). koth vs unchanged bench.pl (same input and test suite) === pbt@waknuk:~/corewar/bench$ ./koth ../bv/zclearL.red 100 w ../bv/zclearL.red pmars -b -r 100 -f - - - - - - - - - - - - - - - W L T Score time.red : 31 22 47 140 nobody.red : 34 34 32 134 paperone.red : 76 5 19 247 marcia13.red : 52 26 22 178 bluefunk.red : 26 40 34 112 cannon.red : 30 41 29 119 tornado.red : 50 38 12 162 fstorm.red : 41 42 17 140 rave.red : 6 93 1 19 irongate.red : 23 72 5 74 pswing.red : 18 77 5 59 thermite.red : 24 42 34 106 - - - - - - - - - - - - - - - - - - - - - - - - - Total wins = 411 Total losses = 532 Total ties = 257 Overall score is 124.166664 [I live for the day I get to .166665 ] === bench pbt@waknuk:~/corewar/paga$ ./bench.pl -r 100 -b wilkies ../bv/zclearL.red Benchmarking zclearL in 100 rounds each against: Blue Funk 3 (scored 112/300), Cannonade (scored 119/300), Fire Storm v1.1 (scored 140/300), Iron Gate (scored 74/300), Marcia Trionfale 1.3 (scored 178/300), nobody special (scored 134/300), Paperone (scored 247/300), Porch Swing (scored 59/300), Rave (scored 19/300), Thermite 1.0 (scored 106/300), TimeScape (1.0) (scored 140/300), Tornado (scored 162/300), done. Benchmark score: 119.20 === modified bench.pl pbt@waknuk:~/corewar/bv/paga2/PBT/cw$ ./bench.pl -r 100 -b wilkies ../../../zclearL.red Benchmarking zclearL in 100 rounds each against: Blue Funk 3 26/ 40/ 34 : 112.00 Cannonade 30/ 41/ 29 : 119.00 Fire Storm v1.1 41/ 42/ 17 : 140.00 Iron Gate 23/ 72/ 5 : 74.00 Marcia Trionfale 1.3 52/ 26/ 22 : 178.00 nobody special 34/ 34/ 32 : 134.00 Paperone 76/ 5/ 19 : 247.00 Porch Swing 18/ 77/ 5 : 59.00 Rave 6/ 93/ 1 : 19.00 Thermite 1.0 24/ 42/ 34 : 106.00 TimeScape (1.0) 31/ 22/ 47 : 140.00 Tornado 50/ 38/ 12 : 162.00 Benchmark score: 124.17 == pbt@waknuk:~/corewar/bv/paga2/PBT/cw$ diff -Naur bench1 bench2 diff -Naur bench1/bench.pl bench2/bench.pl --- bench1/bench.pl Thu Jun 6 00:49:21 2002 +++ bench2/bench.pl Thu Jun 6 00:49:05 2002 @@ -69,22 +69,25 @@ my $cur_warrior = $info{$opponent}; - print " $cur_warrior->{name} "; + printf " %24.24s", $cur_warrior->{name}; my @battle = split " ",`$pmars "$warrior" "$opponent" 2> /dev/null`; @$cur_warrior{qw(win tie loss score)} = ( - @battle[0,1], + @battle[0,1], $config{rounds} - $battle[0] - $battle[1], $battle[0] * $config{score_win} + $battle[1] ); - print "(scored $cur_warrior->{score}/$max_battle_score),\n"; + printf " %3d/%3d/%3d : %6.2f\n", + $cur_warrior->{win},$cur_warrior->{loss}, + $cur_warrior->{tie},$cur_warrior->{score}*100/$config{rounds}; + #print "(scored $cur_warrior->{score}/$max_battle_score),\n"; } -print "done.\n\n"; +#print "done.\n\n"; -printf "Benchmark score: %.2f\n\n", bench_score(\%info); +printf "Benchmark score: %.2f\n", bench_score(\%info); exit; @@ -244,6 +247,7 @@ sub bench_score { my ($info, $total_score) = @_; $total_score = total_score($info) unless defined $total_score; - return $total_score*$config{score_multiplier}/$config{rounds}; + return (100*$total_score/$config{rounds})/(scalar(keys(%info))-1); + #return $total_score*$config{score_multiplier}/$config{rounds}; } === You can't see it here but Bench needs <=8 char file names on Windows. A problem with koth is that the .kothrc file has a limited size. I know Wilkies is dated and unbalanced. tx Anyone get Phil Knights GUI tester to work on W2K? Just curious. Anyone see my cw ad a few weeks back? Anyone else envy Fizmo getting a warrior with score 5.14 onto the 94nop hill? [Ok s/t/he/y did a kill first but ...] Phil B. From: dhillismail@netscape.net (Dave Hillis) Subject: Re: Random tools Date: 6 Jun 2002 20:50:00 -0700 Message-ID: <5d6847b2.0206061950.487346e5@posting.google.com> John B Everitt wrote in message news:<20020604194539.5de2472f.everitt@dircon.co.uk>... > Hi All snip > I'm hoping to begin another Perl program with evolution features but I've > got some reading to do yet. The above are very rough but I'll improve on > them as I get time. > Check out SYS4 by George Lebl ftp://ftp.5z.com/pub/ga/ PERL based redcode evolver. Many good ideas, but my favorite is his naming scheme. The great thing about writing redcode evolvers is that there's always so much room left for improvement 8) For SYS4 I'd start with the fitness function. Also look at Terry Newton's site. http://www.nc5.infi.net/~wtnewton/corewar/ Dave Hillis Message-ID: From: anton@paradise.net.nz (Anton Marsden) Subject: Core War Frequently Asked Questions (rec.games.corewar FAQ) Date: 07 Jun 2002 13:24:41 GMT Archive-name: games/corewar-faq Last-Modified: September 4, 1999 Version: 4.2 URL: http://homepages.paradise.net.nz/~anton/cw/corewar-faq.html Copyright: (c) 1999 Anton Marsden Maintainer: Anton Marsden Posting-Frequency: once every 2 weeks Core War Frequently Asked Questions (rec.games.corewar FAQ) These are the Frequently Asked Questions (and answers) from the Usenet newsgroup rec.games.corewar. A plain text version of this document is posted every two weeks. The latest hypertext version is available at http://homepages.paradise.net.nz/~anton/cw/corewar-faq.html and the latest plain text version is available at http://homepages.paradise.net.nz/~anton/cw/corewar-faq.txt. This document is currently being maintained by Anton Marsden (anton@paradise.net.nz). Last modified: Sat Sep 4 00:22:22 NZST 1999 ------------------------------------------------------------------------ To Do * Add the new No-PSpace '94 hill location * Add online location of Dewdney's articles * Make question 17 easier to understand. Add a state diagram? * Add info about infinite hills, related games (C-Robots, Tierra?, ...) * New question: How do I know if my warrior is any good? Refer to beginners' benchmarks, etc. * Add a Who's Who list? * Would very much like someone to compile a collection of the "revolutionary" warriors so that beginners can see how the game has developed over the years. Mail me if interested. ------------------------------------------------------------------------ What's New * Changed primary location of FAQ (again!) * Changed Philip Kendall's home page address. * Updated list server information * Changed primary location of FAQ * Vector-launching code was fixed thanks to Ting Hsu. * Changed the location of Ryan Coleman's paper (LaunchPad -> Launchpad) * Changed pauillac.inria.fr to para.inria.fr ------------------------------------------------------------------------ Table of Contents 1. What is Core War 2. Is it "Core War" or "Core Wars"? 3. Where can I find more information about Core War? 4. Core War has changed since Dewdney's articles. Where do I get a copy of the current instruction set? 5. What is ICWS'94? Which simulators support ICWS'94? 6. What is the ICWS? 7. What is Core Warrior? 8. Where are the Core War archives? 9. Where can I find a Core War system for ...? 10. Where can I find warrior code? 11. I do not have FTP. How do I get all this great stuff? 12. I do not have access to Usenet. How do I post and receive news? 13. Are there any Core War related WWW sites? 14. What is KotH? How do I enter? 15. Is it DAT 0, 0 or DAT #0, #0? How do I compare to core? 16. How does SLT (Skip if Less Than) work? 17. What is the difference between in-register and in-memory evaluation? 18. What is P-space? 19. What does "Missing ;assert .." in my message from KotH mean? 20. How should I format my code? 21. Are there any other Core War related resources I should know about? 22. What does (expression or term of your choice) mean? 23. Other questions? ------------------------------------------------------------------------ 1. What is Core War? 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 processes of the opposing program to terminate, leaving your program in sole posession of the machine. There are Core War systems available for most computer platforms. Redcode has been standardised by the ICWS, and is therefore transportable between all standard Core War systems. The system in which the programs run is quite simple. The core (the memory of the simulated computer) is a continuous array of instructions, empty except for the competing programs. The core wraps around, so that after the last instruction comes the first one again. There are no absolute addresses in Core War. That is, the address 0 doesn't mean the first instruction in the memory, but the instruction that contains the address 0. The next instruction is 1, and the previous one obviously -1. However, all numbers are treated as positive, and are in the range 0 to CORESIZE-1 where CORESIZE is the amount of memory locations in the core - this means that -1 would be treated as CORESIZE-1 in any arithmetic operations, eg. 3218 + 7856 = (3218 + 7856) mod CORESIZE. Many people get confused by this, and it is particularly important when using the SLT instruction. Note that the source code of a program can still contain negative numbers, but if you start using instructions like DIV #-2, #5 it is important to know what effect they will have when executed. The basic unit of memory in Core War is one instruction. Each Redcode instruction contains three parts: * the opcode * the source address (a.k.a. the A-field) * the destination address (a.k.a. the B-field) The execution of the programs is equally simple. The MARS executes one instruction at a time, and then proceeds to the next one in the memory, unless the instruction explicitly tells it to jump to another address. If there is more than one program running, (as is usual) the programs execute alternately, one instruction at a time. The execution of each instruction takes the same time, one cycle, whether it is MOV, DIV or even DAT (which kills the process). Each program may have several processes running. These processes are stored in a task queue. When it is the program's turn to execute an instruction it dequeues a process and executes the corresponding instruction. Processes that are not killed during the execution of the instruction are put back into the task queue. Processes created by a SPL instruction are added to the task queue after the creating process is put back into the task queue. [ToC] ------------------------------------------------------------------------ 2. Is it "Core War" or "Core Wars"? 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. [ToC] ------------------------------------------------------------------------ 3. Where can I find more information about Core War? 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 two anthologies: Library of Author Title Published ISBN Congress Call Number The Armchair Dewdney, Universe: An New York: W. QA76.6 .D517 A. K. Exploration of H. Freeman �0-7167-1939-8 1988 Computer Worlds 1988 The Magic 0-7167-2125-2 Dewdney, Machine: A New York: W.(Hardcover), QA76.6 A. K. Handbook of H. Freeman �0-7167-2144-9 .D5173 1990 Computer Sorcery 1990 (Paperback) A.K. Dewdney's articles are still the most readable introduction to Core War, even though the Redcode dialect described in there is no longer current. For those who are interested, Dewdney has a home page at http://www.csd.uwo.ca/faculty/akd/. [ToC] ------------------------------------------------------------------------ 4. Core War has changed since Dewdney's articles. Where do I get a copy of the current instruction set? A draft of the official standard (ICWS'88) is available as ftp://www.koth.org/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 Mark Durham's tutorials, ftp://www.koth.org/corewar/documents/tutorial.1.Z and ftp://www.koth.org/corewar/documents/tutorial.2.Z. Steven Morrell has prepared a more practically oriented Redcode tutorial that discusses different warrior classes with lots of example code. This and various other tutorials can be found at http://www.koth.org/papers.html. Even though ICWS'88 is still the "official" standard, you will find that most people are playing by ICWS'94 draft rules and extensions. [ToC] ------------------------------------------------------------------------ 5. What is ICWS'94? Which simulators support ICWS'94? There is an ongoing discussion about future enhancements to the Redcode language. A proposed new standard, dubbed ICWS'94, is currently being evaluated. A major change is the addition of "instruction modifiers" that allow instructions to modify A-field, B-field or both. Also new is a new addressing modes and unrestricted opcode and addressing mode combination ("no illegal instructions"). ICWS'94 is backwards compatible; i.e. ICWS'88 warriors will run correctly on an ICWS'94 system. Take a look at the ICWS'94 draft at ftp://www.koth.org/corewar/documents/icws94.0202.Z for more information. There is a HTML version of this document available at http://www.koth.org/info/icws94.html. You can try out the new standard by submitting warriors to the '94 hills of the KotH servers. Two corewar systems currently support ICWS'94, pMARS (many platforms) and Redcoder (Mac), both available at ftp://www.koth.org/corewar. Note that Redcoder only supports a subset of ICWS'94. [ToC] ------------------------------------------------------------------------ 6. What is the ICWS? About one year after Core War first appeared in Scientific American, 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). The ICWS is no longer active. [ToC] ------------------------------------------------------------------------ 7. What is Core Warrior? Following in the tradition of the Core War News Letter, Push Off, and The 94 Warrior, Core Warrior is a newsletter about strategies and current standings in Core War. Started in October 1995, back issues of Core Warrior (and the other newsletters) are available at http://para.inria.fr/~doligez/corewar/. There is also a Core Warrior index page at http://www.kendalls.demon.co.uk/pak21/corewar/warrior.html which has a summary of the contents of each issue of Core Warrior. Many of the earlier issues contain useful information for beginners. [ToC] ------------------------------------------------------------------------ 8. Where are the Core War archives? 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 ftp://ftp.csua.berkeley.edu/pub/corewar. Also, most of past rec.games.corewar postings (including Redcode source listings) are archived there. Jon Blow (blojo@csua.berkeley.edu) is the archive administrator. When uploading to /pub/corewar/incoming, ask Jon to move your upload to the appropriate directory and announce it on the net. This site is mirrored at: * http://www.koth.org/corewar/ * ftp://www.koth.org/corewar/ * ftp://ftp.inria.fr/INRIA/Projects/para/doligez/cw/mirror The plain text version of this FAQ is automatically archived by news.answers (but this version is probably out-of-date). [ToC] ------------------------------------------------------------------------ 9. Where can I find a Core War system for . . . ? Core War systems are available via anonymous FTP from www.koth.org in the corewar/systems directory. Currently, there are UNIX, IBM PC-compatible, Macintosh, and Amiga Core War systems available there. It is a good idea to check ftp://www.koth.org/corewar/incoming for program updates first. 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 www.koth.org. Generally, the older the program - the less likely it will be ICWS compatible. If you are looking for an ICWS'94 simulator, get pMARS, which is available for many platforms and can be downloaded from: * ftp://ftp.csua.berkeley.edu/pub/corewar (original site) * ftp://www.koth.org/corewar (koth.org mirror) * ftp://ftp.inria.fr/INRIA/Projects/para/doligez/cw/mirror (Planar mirror) * http://www.nc5.infi.net/~wtnewton/corewar/ (Terry Newton) * ftp://members.aol.com/ofechner/corewar (Fechter) Notes: * If you have trouble running pMARS with a graphical display under Win95 then check out http://www.koth.org/pmars.html which should have a pointer to the latest compilation of pMARS for this environment. * RPMs for the Alpha, PowerPC, Sparc and i386 can be found at ftp://ftp.inria.fr/INRIA/Projects/para/doligez/cw/pmars-rpm/ Reviews of Core War systems would be greatly appreciated in the newsgroup and in the newsletter. Below is a not necessarily complete or up-to-date list of what's available at www.koth.org: MADgic41.lzh corewar for the Amiga, v4.1 MAD4041.lzh older version? MAD50B.lha corewar for the Amiga, beta version 5.0 Redcoder-21.hqx corewar for the Mac, supports ICWS'88 and '94 (without extensions) core-11.hqx corewar for the Mac core-wars-simulator.hqx same as core-11.hqx? corewar_unix_x11.tar.Z corewar for UNIX/X-windows, ICWS'86 but not ICWS'88 compatible koth31.tar.Z corewar for UNIX/X-windows. This program ran the former KotH server at intel.com koth.shar.Z older version kothpc.zip port of older version of KotH to the PC deluxe20c.tar.Z corewar for UNIX (broken X-windows or curses) and PC mars.tar.Z corewar for UNIX, likely not ICWS'88 compatible icons.zip corewar icons for MS-Windows macrored.zip a redcode macro-preprocessor (PC) c88v49.zip PC corewar, textmode display mars88.zip PC corewar, graphics mode display corwp302.zip PC corewar, textmode display, slowish mercury2.zip PC corewar written in assembly, fast! mtourn11.zip tournament scheduler for mercury (req. 4DOS) pmars08s.zip portable system, ICWS'88 and '94, runs on UNIX, PC, Mac, Amiga. C source archive pmars08s.tar.Z same as above pmars08.zip PC executables with graphics display, req 386+ macpmars02.sit.hqx pMARS executable for Mac (port of version 0.2) buggy, no display MacpMARS1.99a.cpt.hqx port of v0.8 for the Mac, with display and debugger MacpMARS1.0s.cpt.hqx C source (MPW, ThinkC) for Mac frontend pvms08.zip pMARS v0.8 for VMS build files/help (req. pmars08s.zip) ApMARS03.lha pMARS executable for Amiga (port of version 0.3.1) wincor11.zip MS-Windows system, shareware ($15) [ToC] ------------------------------------------------------------------------ 10. Where can I find warrior code? To learn the game, it is a good idea to study previously posted warrior code. The FTP archives have code in the ftp://www.koth.org/corewar/redcode directory. A clearly organized on-line warrior collection is available at the Core War web sites (see below). [ToC] ------------------------------------------------------------------------ 11. I do not have FTP. How do I get all this great stuff? There is an FTP email server at bitftp@pucc.princeton.edu. This address may no longer exist. I haven't tested it yet. Send email with a subject and body text of "help" (without the quotes) for more information on its usage. Note that many FTP email gateways are shutting down due to abuse. To get a current list of FTP email servers, look at the Accessing the Internet by E-mail FAQ posted to news.answers. If you don't have access to Usenet, you can retrieve this FAQ one of the following ways: * Send mail to mail-server@rtfm.mit.edu with the body containing "send usenet/news.answers/internet-services/access-via-email". * Send mail to mailbase@mailbase.ac.uk with the body containing "send lis-iis e-access-inet.txt". [ToC] ------------------------------------------------------------------------ 12. I do not have access to Usenet. How do I post and receive news? To receive rec.games.corewar articles by email, join the COREWAR-L list run on the Koth.Org list processor. To join, send the message SUB COREWAR-L FirstName LastName to listproc@koth.org. You can send mail to corewar-l@koth.org to post even if you are not a member of the list. Responsible for the listserver is Scott J. Ellentuch (ttsg@ttsg.com). Servers that allow you to post (but not receive) articles are available. Refer to the Accessing the Internet by E-Mail FAQ for more information. [ToC] ------------------------------------------------------------------------ 13. Are there any Core War related WWW sites? You bet. Each of the two KotH sites sport a world-wide web server. Stormking's Core War page is http://www.koth.org; pizza's is http://www.ecst.csuchico.edu/~pizza/koth . Damien Doligez (a.k.a. Planar) has a web page that features convenient access to regular newsletters (Push Off, The '94 Warrior, Core Warrior) and a well organized library of warriors: http://para.inria.fr/~doligez/corewar/. Convenient for U.S. users, this site is also mirrored at koth.org. [ToC] ------------------------------------------------------------------------ 14. What is KotH? How do I enter? King Of The Hill (KotH) is an ongoing Core War tournament available to anyone with email. You enter by submitting via email a Redcode program (warrior) with special comment lines. You will receive a reply indicating how well your program did against the current top programs "on the hill". There are two styles of KotH tournaments, "classical" and "multi-warrior". The "classical" KotH is a one-on-one tournament, that is your warrior 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. In "multi-warrior" KotH, all warriors on the hill fight each other at the same time. Score calculation is a bit more complex than for the one-on-one tournament. Briefly, points are awarded based on how many warriors survive until the end of a round. A warrior that survives by itself gets more points than a warrior that survives together with other warriors. Points are calculated from the formula (W*W-1)/S, where W is the total number of warriors and S the number of surviving warriors. The pMARS documentation has more information on multi-warrior scoring. The idea for an email-based Core War server came from David Lee. The original KotH was developed and run by William Shubert at Intel starting in 1991, and discontinued after almost three years of service. Currently, KotHs based on Bill's UNIX scripts but offering a wider variety of hills are are running at two sites: koth@koth.org is maintained by Scott J. Ellentuch (tuc@ttsg.com) and pizza@ecst.csuchico.edu by Thomas H. Davies (sd@ecst.csuchico.edu). Up until May '95, the two sites provided overlapping services, i.e. the some of the hill types were offered by both "pizza" and "stormking". To conserve resources, the different hill types are now divided up among the sites. The way you submit warriors to both KotHs is pretty much the same. Therefore, the entry rules described below apply to both "pizza" and "stormking" unless otherwise noted. Entry Rules for King of the Hill Corewar * Write a corewar program. KotH is fully ICWS '88 compatible, EXCEPT that a comma (",") is required between two arguments. * Put a line starting with ";redcode" (or ";redcode-94", etc., see below) 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. 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. Using ";name" is mandatory on the Pizza hills. In addition, it would be nice if you have lines beginning with ";strategy" that describe the algorithm you use. There are currently seven separate hills you can select by starting your program with ;redcode-94, ;redcode-b, ;redcode-lp, ;redcode-x, ;redcode, ;redcode-94x or ;redcode-94m. The former four run at "pizza", the latter three at "stormking". More information on these hills is listed below. * Mail this file to koth@koth.org or pizza@ecst.csuchico.edu. "Pizza" requires a subject of "koth" (use the -s flag on most mailers). * 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. * In an hour or so you should get more mail telling you how your program performed against the current top 20 (or 10) programs. If no news arrives during that time, 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 25 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 25 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. The server kills programs by assigning an impossibly low score; it may therefore take another successful challenge before a killed program is actually removed from the hill. 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. Duration Max. Hill Name Hill Core Max. Before Entry Min. Rounds Instr. Size Size Processes Distance Fought Set Tie Length Pizza's ICWS '94 Draft Hill Extended (Accessed with 25 8000 8000 80000 100 100 200 ICWS '94 ";redcode-94") Draft Pizza's Beginner's Extended Hill (Accessed 25 8000 8000 80000 100 100 200 ICWS '94 with ";redcode-b") Draft Pizza's Experimental Extended (Small) Hill 25 800 800 8000 20 20 200 ICWS '94 (Accessed with Draft ";redcode-x") Pizza's Limited Process (LP) Hill Extended (Accessed with 25 8000 8 80000 200 200 200 ICWS '94 ";redcode-lp") Draft Stormking's ICWS '88 Standard Hill (Accessed with 20 8000 8000 80000 100 100 250 ICWS '88 ";redcode") Stormking's ICWS '94 No Pspace Hill (Accessed with 20 8000 8000 80000 100 100 250 ICWS '94 ";redcode-94nop") Stormking's ICWS '94 Experimental Extended (Big) Hill 20 55440 55440 500000 200 200 250 ICWS '94 (Accessed with Draft ";redcode-94x") Stormking's ICWS '94 Multi-Warrior Extended Hill (Accessed 10 8000 8000 80000 100 100 200 ICWS '94 with Draft ";redcode-94m") Note: Warriors on the beginner's hill are retired at age 100. If you just want to get a status report without actually challenging the hills, send email with ";status" as the message body (and don't forget "Subject: koth" for "pizza"). If you send mail to "pizza" with "Subject: koth help" you will receive instructions that may be more up to date than those contained in this document. At "stormking", a message body with ";help" will return brief instructions. If you submit code containing a ";test" line, your warrior will be assembled but not actually pitted against the warriors on the hill. At "pizza", you can use ";redcode[-??] test" to do a test challenge of the Hill without affecting the status of the Hill. These challenges can be used to see how well your warrior does against the current Hill warriors. All hills run portable MARS (pMARS) version 0.8, a platform-independent Core War system available at www.koth.org. The '94 and '94x hills allow five experimental opcodes and three experimental addressing modes currently not covered in the ICWS'94 draft document: * LDP - Load P-Space * STP - Store P-Space * SEQ - Skip if EQual (synonym for CMP) * SNE - Skip if Not Equal * NOP - (No OPeration) * * - indirect using A-field as pointer * { - predecrement indirect using A-field * } - postincrement indirect using A-field [ToC] ------------------------------------------------------------------------ 15. Is it DAT 0, 0 or DAT #0, #0? How do I compare to core? Core is initialized to DAT 0, 0. This is an illegal instruction (in source code) under ICWS'88 rules and strictly compliant assemblers (such as KotH or pmars -8) will not let you have a DAT 0, 0 instruction in your source code - 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. Note that under ICWS'94, DAT 0, 0 is a legal instruction. [ToC] ------------------------------------------------------------------------ 16. How does SLT (Skip if Less Than) work? 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 (core 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. [ToC] ------------------------------------------------------------------------ 17. What is the difference between in-register and in-memory evaluation? These terms refer to the way instruction operands are evaluated. The '88 Redcode standard ICWS'88 is unclear about whether a simulator should "buffer" the result of A-operand evaluation before the B-operand is evaluated. Simulators that do buffer are said to use in-register evaluation, those that don't, in-memory evaluation. ICWS'94 clears this confusion by mandating in-register evaluation. Instructions that execute differently under these two forms of evaluation are MOV, ADD, SUB, MUL, DIV and MOD where the effective address of the A-operand is modified by evaluation of the B-operand. This is best illustrated by an example: L1 mov L2, mov.i #0, impsize 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 Colour 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. Decrement Resistant Property of warriors making them functional (or at least partially functional) when overrun by a DJN-stream. DJN-Stream (also DJN-Train) Using a DJN command to rapidly decrement core locations. example ... ... djn example, <4000 Dwarf The prototypical small bomber. Gate-busting (also gate-crashing) technique to "interweave" a decrement-resistant imp-spiral (e.g. MOV 0, 2668) with a standard one to overrun imp-gates. Hybrids warriors that combine two or more of the basic strategies, either in sequence (e.g. stone->paper) or in parallel (e.g. imp/stone). 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, mov.i #0,IMPSIZE Mirror see reflection. On-axis/off-axis On-axis scanners compare two locations M/2 apart, where M is the memory size. Off-axis scanners use some other separation. Optimal Constants (also optima-type constants) Bomb or scan increments chosen to cover core most effectively, i.e. leaving gaps of uniform size. Programs to calculate optimal constants and lists of optimal numbers are available at www.koth.org. Paper A Paper-like program is one which replicates itself many times. Part of the Scissors (beats) Paper (beats) Stone (beats Scissors) analogy. P-Warrior A warrior which uses the results of previous round(s) in order to determine which strategy it will use. Pit-Trapper (also Slaver, Vampire). A program which enslaves another. Usually accomplished by bombing with JMPs to a SPL 0 pit with an optional core-clear routine. Q^2 Scan A modern version of the Quick Scan where anything found is attacked almost immediately. Quick Scan 2c scan of a set group of core locations with bombing if anything is found. Both of the following codes snips scan 16 locations and check for a find. If anything is found, it is attacked, otherwise 16 more locations are scanned. Example: start s1 for 8 ;'88 scan cmp start+100*s1, start+100*s1+4000 ;check two locations mov #start+100*s1-found, found ;they differ so set pointer rof jmn attack, found ;if we have something, get it s2 for 8 cmp start+100*(s2+6), start+100*(s2+6)+4000 mov #start+100*(s2+6)-found, found rof found jmz moveme, #0 ;skip attack if qscan found nothing attack cmp @found, start-1 ;does found points to empty space? add #4000, found ;no, so point to correct location mov start-1, @found ;move a bomb moveme jmp 0, 0 In ICWS'94, the quick scan code is more compact because of the SNE opcode: start ;'94 scan s1 for 4 sne start+400*s1, start+400*s1+100 ;check two locations seq start+400*s1+200, start+400*s1+300 ;check two locations mov #start+400*s1-found, found ;they differ so set pointer rof jmn which, found ;if we have something, get it s2 for 4 sne start+400*(s2+4), start+400*(s2+4)+100 seq start+400*(s2+4)+200, start+400*(s2+4)+300 mov #start+400*(s2+4)-found-100, found rof found jmz moveme, #0 ;skip attack if qscan found nothing add #100, -1 ;increment pointer till we get the which jmn -1, @found ;right place mov start-1, @found ;move a bomb moveme jmp 0, 0 Reflection Copy of a program or program part, positioned to make the active program invisible to a CMP-scanner. Replicator Generic for Paper. A program which makes many copies of itself, each copy also making copies. Self-Splitting Strategy of amplifying the number of processes executing a piece of code. example spl 0 loop add #10, example mov example, @example jmp loop Scanner A program which searches through core for an opponent rather than bombing blindly. Scissors A program designed to beat replicators, usually a (B-field scanning) vampire. Part of the Paper-Scissors-Stone analogy. Self-Repair Ability of a program to fix it's own code after attack. Silk A replicator which splits off a process to each new copy before actually copying the code. This allows it to replicate extremely quickly. This technique is only possible under the '94 draft, because it requires post-increment indirect addressing. Example: spl 1 mov -1, 0 spl 1 ;generate 6 consecutive processes silk spl 3620, #0 ;split to new copy mov >-1, }-1 ;copy self to new location mov bomb, >2000 ;linear bombing mov bomb, }2042 ;A-indirect bombing for anti-vamp jmp silk, {silk ;reset source pointer, make new copy bomb dat >2667, >5334 ;anti-imp bomb Slaver see Pit-Trapper. Stealth Property of programs, or program parts, which are invisible to scanners, accomplished by using zero B-fields and reflections. Stone A Stone-like program designed to be a small bomber. Part of the Paper-Scissors-Stone analogy. Stun A type of bomb which makes the opponent multiply useless processes, thus slowing it down. Example is referred to as a SPL-JMP bomb. example spl 0 jmp -1 Two-Pass Core-Clear (also SPL/DAT Core-Clear) core clear that fills core first with SPL instructions, then with DATs. This is very effective in killing paper and certain imp-spiral variations. Vampire see Pit-Trapper. Vector Launch one of several means to start an imp-spiral running. As fast as Binary Launch, but requiring much less code. See also JMP/ADD Launch and Binary Launch. This example is one form of a Vector Launch: sz EQU 2667 spl 1 spl 1 jmp @vt, }0 vt dat #0, imp+0*sz ; start of vector table dat #0, imp+1*sz dat #0, imp+2*sz dat #0, imp+3*sz ; end of vector table imp mov.i #0, sz [ToC] ------------------------------------------------------------------------ 23. Other questions? Just ask in the rec.games.corewar newsgroup or contact me. If you are shy, check out the Core War archives first to see if your question has been answered before. [ToC] ------------------------------------------------------------------------ Credits Additions, corrections, etc. to this document are solicited. Thanks in particular to the following people who have contributed major portions of this document: * Mark Durham (wrote the original version of the FAQ) * Paul Kline * Randy Graham * Stefan Strack (maintained a recent version of the FAQ) ------------------------------------------------------------------------ Copyright � 1999 Anton Marsden. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ------------------------------------------------------------------------ From: John B Everitt Subject: Re: Random tools Date: Fri, 7 Jun 2002 14:04:53 +0000 Message-ID: <20020607140453.268155ea.everitt@dircon.co.uk> On 6 Jun 2002 20:50:00 -0700 dhillismail@netscape.net (Dave Hillis) wrote: > The great thing about writing redcode evolvers is that there's > always so much room left for improvement 8) For SYS4 I'd start with > the fitness function. Nice pun ;-). I am currently 50% through my own eccentric evolver. It's licensed under the GPL and will be finished within a week. In my first post I stated I wanted to work collaboratively on an evolver but I got tired of waiting so thought I'd start coding my own. The code is designed to make it very easy to build complex functions from simple primitives and designed to be very easy to read. So anyone can add to it or correct it (within the terms of the GPL). You can check out the code here: http://www.firetrench.com/corewar/corewar-evolver.tgz It is very well documented so even a non-Perl person should be able to read it. Still to do: Cutting and mixing functions, return bots with scores above N and front end functions. > Also look at Terry Newton's site. > http://www.nc5.infi.net/~wtnewton/corewar/ Already have thankyou ;-). Cheers - John From: "Brant Thomsen" Subject: Re: A corewar timeline Date: Sat, 8 Jun 2002 19:51:19 -0600 Message-ID: Thanks for the plug, Paul! I probably did have several good ideas, but Wimps were the only one that did well on the hill. If I can think of anything else, I'll be sure to brag about it! Brant Thomsen bdthomsen@yahoo.com "P. Kline" wrote in message news:92b0a3d6.0204011441.2acb390@posting.google.com... > * Self-repair Five Musketeers (author?) > * Stone+Paper Flash Paper (Matt Hastings) > * Intelligence Bombs CIA (Anders Ivner) > * Wimp Brant Thomsen > * Silk Silk Warrior (J. Pohjalainen) > > Brant had a lot of good ideas, hope he doesn't get credit > just for Wimp :-) > > When Silk first appeared on the Hill, and just before J.P. > posted the code, several folks had worked out the basic > algorithm and may have published ahead of him. But he deserves > all the credit! ";strategy one tiny paper" indeed!!! Closest > thing to zero losses since The Impire Strikes Back, which gets > my vote for: > * Best Named Warrior Anders Ivner > > from the '87 tournament (someone should do a complete inventory > of the '86-89 contests to find the earliest types): > * Spl/Dat Clear More than one in the '87 tournament > * CMP Scanner Ferret (Robert Reed III) > > Not sure I was the first one-shot scanner, it is too obvious > a strategy for it not to have appeared somewhere before my time. > My work was to speed up the scan to .75, .8 and 2c (quick-scan). > > Perhaps my all-time favorite, AntiVamp. Solved the vampire > problem completely in its day, almost 100% wins and easily > incorporated into stones and papers. > * Antivamp Paul Kline > > It is going to be a long list, there are many, many innovations, > small and great. > > Paul Kline From: Koth Subject: KOTH.ORG: Status - 94 No Pspace 06/10/02 Date: 10 Jun 2002 08:40:53 -0400 Message-ID: <200206100409.AAA09303@gevjon.ttsg.com> Weekly Status on 06/10/02 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG 94 No Pspace CoreWar Hill: Last battle concluded at : Sun Jun 9 06:47:12 EDT 2002 # %W/ %L/ %T Name Author Score Age 1 35/ 19/ 46 Son of Vain Oversby/Pihlaja 152 690 2 44/ 38/ 18 Hazy Lazy ... again Steve Gunnell 151 136 3 46/ 42/ 12 Blade Fizmo 150 7 4 44/ 40/ 15 Behemot Michal Janeczek 148 924 5 34/ 21/ 45 Candy Lukasz Grabun 148 1 6 45/ 41/ 14 oneshot test Simon Wainwright 148 25 7 36/ 25/ 39 pTest G/M 147 29 8 34/ 22/ 44 nPaper II Paul-V Khuong 146 1101 9 35/ 26/ 39 Uninvited John Metcalf 145 783 10 34/ 24/ 42 Olivia Ben Ford 144 829 11 35/ 26/ 39 Inky Ian Oversby 143 580 12 42/ 41/ 17 Vanquisher Lukasz Grabun 143 192 13 33/ 24/ 43 Purifier Lukasz Grabun 142 111 14 36/ 32/ 32 Blacken Ian Oversby 140 1348 15 42/ 46/ 12 G3-b David Moore 139 371 16 30/ 20/ 50 Qsilk Fizmo 139 16 17 36/ 35/ 29 Keyser Soze Anton Marsden 138 802 18 40/ 45/ 15 pre75-z47a John Metcalf 136 43 19 39/ 42/ 19 QSOS Fizmo 135 39 20 33/ 49/ 18 Snail-DVD Philip Thorne 117 2 21 2/ 98/ 0 Dummy Lukasz Grabun 7 0 From: Koth Subject: KOTH.ORG: Status - ICWS Experimental 94 06/10/02 Date: 10 Jun 2002 08:42:18 -0400 Message-ID: <200206100406.AAA09247@gevjon.ttsg.com> Weekly Status on 06/10/02 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG ICWS Experimental 94 CoreWar Hill: Last battle concluded at : Sun Jun 9 02:17:48 EDT 2002 # %W/ %L/ %T Name Author Score Age 1 54/ 34/ 12 Fire and Ice II David Moore 174 4 2 34/ 21/ 45 KAT v5 Dave Hillis 146 36 3 23/ 8/ 68 Evol Cap 4 X John Wilkinson 138 173 4 23/ 9/ 68 Denial David Moore 137 45 5 27/ 17/ 56 Katafutr Michal Janeczek 137 44 6 35/ 34/ 31 Controlled Aggression Ian Oversby 137 104 7 37/ 37/ 25 Black Moods Ian Oversby 137 100 8 39/ 44/ 17 Greetings From Asbury Par JKW 134 64 9 25/ 17/ 58 Kin John Metcalf 133 12 10 32/ 32/ 36 Big I.F.F.S. Dave Hillis 131 33 11 25/ 21/ 54 Venom v0.2b Christian Schmidt 130 126 12 28/ 28/ 44 Damage Inflicted Robert Macrae 128 43 13 18/ 7/ 75 Evolve X v4.0 John Wilkinson 128 121 14 17/ 7/ 75 Black Box v1.1 JKW 127 67 15 32/ 39/ 29 Ogre Christian Schmidt 126 52 16 32/ 48/ 19 Mischief John Metcalf 117 1 17 26/ 38/ 36 test CS 113 61 18 29/ 46/ 25 Pagan John K W 112 158 19 22/ 32/ 46 Disaster Area 2.8 Stefan Foerster 111 31 20 25/ 39/ 36 La Vibra 19 Lukasz Grabun 111 2 21 25/ 44/ 31 Snail-DVD Philip Thorne 106 0 From: Koth Subject: KOTH.ORG: Status - MultiWarrior 94 06/10/02 Date: 10 Jun 2002 08:43:42 -0400 Message-ID: <200206100403.AAA09155@gevjon.ttsg.com> Weekly Status on 06/10/02 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG Multiwarrior 94 CoreWar Hill: Last battle concluded at : Sun May 26 14:10:15 EDT 2002 # Name Author Score Age 1 D-clearM Ken Espiritu 72 88 2 test John Metcalf 55 16 3 fclear Brian Haskin 54 72 4 Tinyshot John Metcalf 46 1 5 Her Majesty P.Kline 39 107 6 8thTest Gino Oblena 34 19 7 clock strikes twelve John Metcalf 31 2 8 Xord Monominer XOSC:01 Gino Oblena 26 27 9 QuiVa John Metcalf 18 181 10 Pitbull Christian Schmidt 14 44 11 Downpour John Everitt 1 0 From: Koth Subject: KOTH.ORG: Status - Standard 06/10/02 Date: 10 Jun 2002 08:45:07 -0400 Message-ID: <200206100400.AAA09090@gevjon.ttsg.com> Weekly Status on 06/10/02 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG Standard KotH CoreWar Hill : Last battle concluded at : Mon May 20 00:11:20 EDT 2002 # %W/ %L/ %T Name Author Score Age 1 45/ 37/ 18 Oneshot '88 John Metcalf 153 1 2 36/ 21/ 43 Freight Train David Moore 152 80 3 35/ 21/ 45 Test Alexander (Sasha) Wa 149 19 4 34/ 23/ 43 sIMPly.Red v0.95 Leonardo Humberto 144 37 5 33/ 22/ 45 Guardian Ian Oversby 143 79 6 43/ 44/ 13 Foggy Swamp Beppe Bezzi 142 76 7 43/ 44/ 14 Blur '88 Anton Marsden 141 117 8 35/ 30/ 36 vala John Metcalf 140 2 9 37/ 38/ 24 Tangle Trap David Moore 137 153 10 38/ 41/ 21 Stasis David Moore 136 187 11 37/ 39/ 23 PacMan David Moore 136 109 12 26/ 17/ 57 EV Paper John K Wilkinson 136 93 13 33/ 32/ 35 Frog Sticker P.Kline 134 29 14 29/ 23/ 48 Shish-Ka-Bob Ben Ford 134 35 15 27/ 20/ 52 Jinglo John Metcalf 134 4 16 27/ 20/ 53 Test I Ian Oversby 134 136 17 27/ 22/ 50 Evoltmp 88 John K W 132 130 18 39/ 47/ 14 Iron Gate Wayne Sheppard 130 405 19 37/ 44/ 19 Beholder's Eye V1.7 W. Mintardjo 129 355 20 39/ 48/ 13 ig Wayne Sheppard 129 7 21 7/ 73/ 20 Pseudo Ring Simon Kitson 41 0 From: Lukasz Grabun Subject: Candy Date: Mon, 10 Jun 2002 09:42:03 +0000 (UTC) Message-ID: Hi, Let me introduce Candy, my first stone/imp of (a little) success. Candy combines a quick (<0.5c) stone and very heavy imps. Although there's nothing in such a combination, I think that stone might be of your interest. Imp launcher was stolen from Metcalf's Uninvited. Here is a tale for newcommers how this warrior was created and what are its main dis- and advantages. Stone/imp is a very common technique: stone (a frenzy killer) is used for scanner and complex bombers killing, while imps make s/i not-so-fragile against paper-like warriors (especially heavy - with a lot of processes, that is - imps). There're three main things a programmer should take care of in the process of creating s/i warrior: [1]. Stone; [2]. Imp launcher; [3]. Length of imp spiral. ad. [1]. Here's stone that is used in Candy step equ 4289 time equ 1217 hop equ 17 spl #0 , #0 ptr mov bomb , }-(step*time)+1 hit mov bomb , @ptr a add #step , @-1 djn.f ptr , {-4000 for 6 dat 0 , 0 rof bomb dat >hop , >1 as you can see it's a basic <0.5 c bomber (because it delivers two bombs in four instruction loop). The "<" means that the warrior itself runs a little bit slower since it has "spl #0, #0" line before it. The most important thing here is that instructions, due to the leading spl line, are executed in reverse order. As single process 0.5 stone (Vanquisher e.g.) uses the following structure: mov bomb , @1 mov bomb , *start_point add #step , -1 bomb:dat hop , 0 As you can see it's all the other way around in Candy's body. You may wonder how I managed to find constants for the stone. Well, I used my favourite method: I've made a simple C program with a virtual core; I've programmed it to find all such constants that the first bomb that hits warrior's body lands on the "hit" line. For what reason? Well, check the stone's body after such a "modification": spl #0 , #0 ptr mov bomb , }1 hit dat >hop , >1 a add #step , @-1 djn.f ptr , {-4000 First, obvious thing is that now warrior enters the core-clear phase. Since spl #0, #0 works like a little process factory the first three lines perform a simple core-clear: mov bomb , }1 post-increment the a-field of hit line and moves dat lines hop lines+ away from hit line... The second, more subtle observation is that we still have some processes "trapped" in add and djn line. Let's assume the a line would look like this a add #step , ptr Since there's one (or maybe more) process alive this would mean that ptr line would be modified and the core-clear would omit some of cells of the core (which is not good, you know). However, the indirect adressing mode assures that it's not the case here. hit dat >hop , >1 a add #step , @-1 I've never have checked exactly how many processes there're in the a line; hovewever, I think it's of no such imprortance. a line is auto-modified and then (is there any "then"?) it adds #step in a quasi-random fashion... [2]. Imp launcher - nothing new here. [3]. Length of imp-spiral. Oh, that was pain in the neck. You know, low-process spiral leaves the stone quick, however a warrior is an easy prey for anti-imp papers. OTOH heavy imps slow down the stone. One has to check very carefully the offset between stone's body and imp launcher to make sure all they get along :) After many, many (a hundred or so) trials I didn't manage to find a proper constant. Being frustrated I've decieded to use the mini-hill technique for testing _random_ constants. It worked just fine! Though launcher is not killed and there're some processes trapped the warrior works fine (currently 5th place on nop hill). Without any delay: here's Candy. Abuse and modify it in the way you like. ;redcode-94nop ;author Lukasz Grabun ;name Candy ;assert CORESIZE==8000 ;strategy MiniQ^3 -> Stone/Imp org qGo sStp equ 4289 sTme equ 1217 sHop equ 17 sDjn equ 4000 sAway equ 6000 bOff equ 6 iStp equ 2667 iAway equ 4779 bBot mov sBmb , sAway-CURLINE+bOff iSrc spl }2 , iImp+1 sDst spl *1 , sAway-CURLINE iDst spl 0 , iAway-CURLINE mov sHop , >1 ;Uninvited's Imps iPmp spl #iImp , >-20 sub.f #-iStp-1 , iJmp mov iImp , }iPmp iJmp jmp iImp-2*(iStp+1) , >iImp+2*iStp-1 iImp mov.i #-1 , iStp for 54 dat 0 , 0 rof qf equ qKil qs equ 200 qd equ 4000 qi equ 7 qr equ 8 qGo seq qd+qf+qs , qf+qs ; 1 djn.f qSki , {qd+qf+qs+qi+2 sne qd+qf+5*qs , qf+5*qs ; B+1 seq qf+4*qs , qTab sne qd+qf+8*qs , qf+8*qs ; A seq qf+7*qs , Subject: New to Corewar... Message-ID: Date: Sat, 15 Jun 2002 10:15:17 GMT It's a bit intimidating getting into this, but it's still fun. I'm working on a comp sci degree and it's nice throwing all the style guidelines to the wind and just programming for fun again. From: waknuk@yahoo.com (Philip Thorne) Subject: Re: multiline EQU Date: 16 Jun 2002 11:43:34 -0700 Message-ID: <4ee41bd6.0206161043.4294708e@posting.google.com> "Stefan M?ler" wrote in message news:... > hello, > i'm trying to make some fun with multiline equ's. now i found something that > i'm not expected. using pmarsv 0.8: > The same occurs with pMARS v0.9.2, 25/12/00 This works: qaz EQU mov.i label EQU #1,#1 EQU mov.i #2,#2 EQU mov.i #3,#3 qaz label From: "Stefan M�ller" Subject: multiline EQU Date: Sun, 16 Jun 2002 15:13:58 +0200 Message-ID: hello, i'm trying to make some fun with multiline equ's. now i found something that i'm not expected. using pmarsv 0.8: label EQU #1,#1 EQU mov.i #2,#2 EQU mov.i #3,#3 mov.i label its result in: mov.i #2, #2 mov.i #3, #3 mov.a #0, #0 <-- ???? and not: mov.i #1, #1 mov.i #2, #2 mov.i #3, #3 From: Koth Subject: KOTH.ORG: Status - 94 No Pspace 06/17/02 Date: 17 Jun 2002 11:28:54 -0400 Message-ID: <200206170409.AAA16797@gevjon.ttsg.com> Weekly Status on 06/17/02 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG 94 No Pspace CoreWar Hill: Last battle concluded at : Sun Jun 16 06:25:18 EDT 2002 # %W/ %L/ %T Name Author Score Age 1 48/ 40/ 12 oneshot test Simon Wainwright 156 43 2 44/ 38/ 18 Hazy Lazy ... again Steve Gunnell 149 154 3 45/ 44/ 11 G3-b David Moore 145 389 4 42/ 40/ 18 QSOS Fizmo 143 57 5 44/ 44/ 12 Blade Fizmo 143 25 6 43/ 43/ 14 pre75-z47a John Metcalf 142 61 7 29/ 22/ 49 Son of Vain Oversby/Pihlaja 137 708 8 28/ 21/ 51 Candy Lukasz Grabun 136 19 9 30/ 24/ 46 pTest3 G/M 135 2 10 39/ 43/ 18 Vanquisher Lukasz Grabun 135 210 11 28/ 20/ 52 paper test John Metcalf 135 3 12 40/ 44/ 16 Behemot Michal Janeczek 135 942 13 29/ 25/ 46 Olivia Ben Ford 132 847 14 34/ 35/ 31 Keyser Soze Anton Marsden 132 820 15 29/ 27/ 43 Uninvited John Metcalf 132 801 16 28/ 25/ 47 Inky Ian Oversby 131 598 17 26/ 23/ 51 Qsilk 2 Fizmo 130 7 18 26/ 22/ 51 Purifier Lukasz Grabun 130 129 19 26/ 22/ 53 nPaper II Paul-V Khuong 130 1119 20 2/ 57/ 41 Togar Anthony Roberts 47 1 21 3/ 0/ 11 paper test John Metcalf 19 4 From: Koth Subject: KOTH.ORG: Status - ICWS Experimental 94 06/17/02 Date: 17 Jun 2002 11:30:19 -0400 Message-ID: <200206170406.AAA16730@gevjon.ttsg.com> Weekly Status on 06/17/02 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG ICWS Experimental 94 CoreWar Hill: Last battle concluded at : Sun Jun 16 22:55:40 EDT 2002 # %W/ %L/ %T Name Author Score Age 1 52/ 35/ 13 Fire and Ice II David Moore 169 6 2 32/ 25/ 43 KAT v5 Dave Hillis 140 38 3 24/ 9/ 67 Denial David Moore 139 47 4 23/ 9/ 68 Evol Cap 4 X John Wilkinson 137 175 5 35/ 34/ 31 Controlled Aggression Ian Oversby 137 106 6 37/ 37/ 26 Black Moods Ian Oversby 137 102 7 25/ 16/ 59 Kin John Metcalf 134 14 8 26/ 17/ 57 Katafutr Michal Janeczek 134 46 9 27/ 21/ 52 Venom v0.2b Christian Schmidt 132 128 10 32/ 33/ 36 Big I.F.F.S. Dave Hillis 131 35 11 38/ 46/ 16 Greetings From Asbury Par JKW 131 66 12 33/ 38/ 28 Ogre Christian Schmidt 129 54 13 29/ 30/ 41 Damage Inflicted Robert Macrae 128 45 14 17/ 7/ 76 Evolve X v4.0 John Wilkinson 127 123 15 17/ 7/ 76 Black Box v1.1 JKW 126 69 16 32/ 39/ 29 Exsnail Philip Thorne 125 1 17 33/ 49/ 18 Mischief John Metcalf 116 3 18 23/ 30/ 47 Disaster Area 2.8 Stefan Foerster 115 33 19 26/ 38/ 36 test CS 114 63 20 29/ 46/ 25 Pagan John K W 111 160 21 2/ 2/ 1 Exsnail Philip Thorne 6 2 From: Koth Subject: KOTH.ORG: Status - MultiWarrior 94 06/17/02 Date: 17 Jun 2002 11:31:44 -0400 Message-ID: <200206170403.AAA16673@gevjon.ttsg.com> Weekly Status on 06/17/02 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG Multiwarrior 94 CoreWar Hill: Last battle concluded at : Sun May 26 14:10:15 EDT 2002 # Name Author Score Age 1 D-clearM Ken Espiritu 72 88 2 test John Metcalf 55 16 3 fclear Brian Haskin 54 72 4 Tinyshot John Metcalf 46 1 5 Her Majesty P.Kline 39 107 6 8thTest Gino Oblena 34 19 7 clock strikes twelve John Metcalf 31 2 8 Xord Monominer XOSC:01 Gino Oblena 26 27 9 QuiVa John Metcalf 18 181 10 Pitbull Christian Schmidt 14 44 11 Downpour John Everitt 1 0 From: Koth Subject: KOTH.ORG: Status - Standard 06/17/02 Date: 17 Jun 2002 11:39:13 -0400 Message-ID: <200206170400.AAA16583@gevjon.ttsg.com> Weekly Status on 06/17/02 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG Standard KotH CoreWar Hill : Last battle concluded at : Mon May 20 00:11:20 EDT 2002 # %W/ %L/ %T Name Author Score Age 1 45/ 37/ 18 Oneshot '88 John Metcalf 153 1 2 36/ 21/ 43 Freight Train David Moore 152 80 3 35/ 21/ 45 Test Alexander (Sasha) Wa 149 19 4 34/ 23/ 43 sIMPly.Red v0.95 Leonardo Humberto 144 37 5 33/ 22/ 45 Guardian Ian Oversby 143 79 6 43/ 44/ 13 Foggy Swamp Beppe Bezzi 142 76 7 43/ 44/ 14 Blur '88 Anton Marsden 141 117 8 35/ 30/ 36 vala John Metcalf 140 2 9 37/ 38/ 24 Tangle Trap David Moore 137 153 10 38/ 41/ 21 Stasis David Moore 136 187 11 37/ 39/ 23 PacMan David Moore 136 109 12 26/ 17/ 57 EV Paper John K Wilkinson 136 93 13 33/ 32/ 35 Frog Sticker P.Kline 134 29 14 29/ 23/ 48 Shish-Ka-Bob Ben Ford 134 35 15 27/ 20/ 52 Jinglo John Metcalf 134 4 16 27/ 20/ 53 Test I Ian Oversby 134 136 17 27/ 22/ 50 Evoltmp 88 John K W 132 130 18 39/ 47/ 14 Iron Gate Wayne Sheppard 130 405 19 37/ 44/ 19 Beholder's Eye V1.7 W. Mintardjo 129 355 20 39/ 48/ 13 ig Wayne Sheppard 129 7 21 7/ 73/ 20 Pseudo Ring Simon Kitson 41 0 From: bdonlan@maine.rr.com (bdonlan) Subject: Newbie needs help Date: 18 Jun 2002 18:54:37 -0700 Message-ID: I have the following warrior: ; Xerox v0.1 ; bd start: mov *ptr,@ptr cond: jmz.a next, ptr nop {ptr, "Mattiuzzo Riccardo" wrote in message news:... > Hi! > I would like to run a Corewar server (like the Pizza/Koth server) where to > play in my company with our warriors.... Where can I find a server to > download (for Linux)? > > Tank you all, > Riccardo I think pmars has a linux source package; patch it to be non-interactive and to output results of battles in the return code. Then use a scripting language to tie it all together. From: "Mattiuzzo Riccardo" Subject: Corewar Server Date: Tue, 18 Jun 2002 21:35:37 +0200 Message-ID: Hi! I would like to run a Corewar server (like the Pizza/Koth server) where to play in my company with our warriors.... Where can I find a server to download (for Linux)? Tank you all, Riccardo From: waknuk@yahoo.com (Philip Thorne) Subject: Virtual machine / Sourceforge Date: 18 Jun 2002 22:05:58 -0700 Message-ID: <4ee41bd6.0206182105.df257da@posting.google.com> Anyone here involved/know about this Sourceforge project? "A virtual machine that emulates 'champions' for the corewar project." http://sourceforge.net/projects/vm42/ Philb From: Randy Graham Subject: Re: Newbie needs help Message-ID: Date: Wed, 19 Jun 2002 03:58:17 GMT On 18 Jun 2002 18:54:37 -0700, bdonlan@maine.rr.com (bdonlan) wrote: >I have the following warrior: > >; Xerox v0.1 >; bd >start: mov *ptr,@ptr >cond: jmz.a next, ptr > nop {ptr, jmp start >; relative to start, dat: dat,(dat)*2 +1 >ptr: dat #4,#9 >next: dat 0,0 > >However, it dosen't actually copy itself. pmars shows that the mov >command executes, and the ptr decreases as it should. However, nothing >gets copied. Why? Well, let's expand your code to see what happens (note, this post will be long because of this). Here is what your program looks like in memory: ; Xerox v0.1 ; bd start: mov *ptr,@ptr cond: jmz.a next, ptr nop {ptr,ptr ; hehe, tricky, huh? jmp start ; relative to start, dat: dat,(dat)*2 +1 ptr: dat #-4,#1 next: dat 0,0 Except once it is finished, your new ptr line will not have correct values. Hopefully, you can figure out how to fix that and move on. Try running the above program step by step in pmars, and I think everything might work a little better for you. Let me know if that isn't clear. Also, there are ways of copying a moving a program that are huge speed improvements over what you are trying to do. Once you understand the basics, hopefully you'll be able to start figuring those ways out. RagManX http://www.gamingideas.com/ - an "I could make a better game" forum. From: bd Subject: Re: Newbie needs help Message-ID: Date: Wed, 19 Jun 2002 04:34:44 GMT Randy Graham wrote: > On 18 Jun 2002 18:54:37 -0700, bdonlan@maine.rr.com (bdonlan) wrote: > >>I have the following warrior: >> >>; Xerox v0.1 >>; bd >>start: mov *ptr,@ptr >>cond: jmz.a next, ptr >>nop {ptr,>jmp start >>; relative to start, dat: dat,(dat)*2 +1 >>ptr: dat #4,#9 >>next: dat 0,0 >> >>However, it dosen't actually copy itself. pmars shows that the mov >>command executes, and the ptr decreases as it should. However, nothing >>gets copied. Why? > > Well, let's expand your code to see what happens (note, this post will > be long because of this). Here is what your program looks like in > memory: > > ; Xerox v0.1 > ; bd > start: mov *ptr,@ptr > cond: jmz.a next, ptr > nop {ptr, jmp start > ; relative to start, dat: dat,(dat)*2 +1 > ptr: dat #4,#9 > next: dat 0,0 > dat 0,0 > dat 0,0 > dat 0,0 > dat 0,0 > dat 0,0 > dat 0,0 > dat 0,0 > dat 0,0 > > Now, your first command executes: > > mov *ptr, @ptr > > So, let's look at ptr, and see what *ptr and @ptr represent. > > ptr: dat #4,#9 > ptr+1 dat 0,0 > ptr+2 dat 0,0 > ptr+3 dat 0,0 > ptr+4 dat 0,0 > ptr+5 dat 0,0 > ptr+6 dat 0,0 > ptr+7 dat 0,0 > ptr+8 dat 0,0 > ptr+9 dat 0,0 > > So, you've told the program to copy ptr+4 to ptr+9. So, you copy dat > 0,0 at ptr+4 to ptr+9. Your first four lines will run for a while, > until you get to a ptr line that looks like: Oh, I get it. Indirects are relative the the middle layer. Now I get it! Seems so obvious in retrospect... > ptr: dat #0,#5 > > That line will get copied 5 lines forward, then your jmz condition > will kick in, jumping you to an empty dat line. > > You might have more success with a program that looks like: > > ; Xerox v0.1 > ; bd > start: mov *ptr,@ptr > cond: jmz.a next, ptr > nop }ptr,>ptr ; hehe, tricky, huh? > jmp start > ; relative to start, dat: dat,(dat)*2 +1 > ptr: dat #-4,#1 > next: dat 0,0 > > Except once it is finished, your new ptr line will not have correct > values. Hopefully, you can figure out how to fix that and move on. > Try running the above program step by step in pmars, and I think > everything might work a little better for you. Let me know if that > isn't clear. Also, there are ways of copying a moving a program that > are huge speed improvements over what you are trying to do. Once you > understand the basics, hopefully you'll be able to start figuring > those ways out. I found the problem. This one works: ; Xerox v0.1 ; bd start: mov *ptr,@ptr cond: jmz.b next, ptr nop {ptr, Subject: Re: Newbie needs help Date: 19 Jun 2002 09:00:00 -0400 Message-ID: <20020619035701.33778.qmail@web11605.mail.yahoo.com> --- bdonlan wrote: > I have the following warrior: > > ; Xerox v0.1 > ; bd > start: mov *ptr,@ptr > cond: jmz.a next, ptr > nop {ptr, jmp start > ; relative to start, dat: dat,(dat)*2 +1 > ptr: dat #4,#9 > next: dat 0,0 > > However, it dosen't actually copy itself. pmars > shows that the mov > command executes, and the ptr decreases as it > should. However, nothing > gets copied. Why? Actually, it does copy... empty core, that is. Remember that every addressing is relative. When you use indirect addressing, you end up doing this: *a points to where a's a-field point in the core. So, when the mov *ptr, @ptr is executed, it copies [ptr+4] to [ptr+9] Note: you can use indirect addressing with pre-decrementing (mov {ptr, Hi, I won't be able to run Round 2 until after the weekend, so if anyone missed the deadline but would still like to enter, you have until Monday morning. Regards, John From: metcalf@uboot.com (John Metcalf) Subject: Tournament Date: 20 Jun 2002 10:41:14 -0700 Message-ID: Hi, I won't be able to run Round 2 until after the weekend, so if anyone missed the deadline but would still like to enter, you have until Monday morning. Regards, John From: otackozoy@yahoo.com (sss) Subject: CoreWarrior Date: 21 Jun 2002 13:05:10 -0700 Message-ID: my name is ingo s kacza, Gomjabbar VI and Caladan III are my warrior in the pizza b-hill. i have not been active for a while and want to keep up with the newest stuff. WHERE CAN I GET THE LATEST NEWSLETTERS (corewarroirs) ????? From: Paul-V Khuong Subject: Re: CoreWarrior Date: 21 Jun 2002 22:59:15 -0400 Message-ID: <20020621214919.85225.qmail@web11605.mail.yahoo.com> google keeps an active archive of newgroups, including rec.games.corewar. __________________________________________________ Do You Yahoo!? Yahoo! - Official partner of 2002 FIFA World Cup http://fifaworldcup.yahoo.com From: Philip Thorne Subject: Re: OT: Re: CoreWarrior Date: Sat, 22 Jun 2002 02:55:16 -0500 Message-ID: <3D142D64.9040900@yahoo.com> bd wrote: > Paul-V Khuong wrote: > > >>google keeps an active archive of newgroups, including rec.games.corewar. > > > Erm... Where's the References: header? > Philip Kendall keeps an index to/copies of Issues #1 through 77 at http://www.srcf.ucam.org/~pak21/corewar/warrior.html For more recent issues [the most recent is #81] a start would be: http://groups.google.com/groups?scoring=d&q=%22Core+Warrior%22+Issue+group%3Arec.games.corewar [Just seen HiEv's - much better use his] Of the many intro sites the most recent is http://www.firetrench.com/corewar/ === The pizza server has been down for approximately a year. The main alternatives are http://koth.org and http://corewars.sourceforge.net -- Philb From: bd Subject: OT: Re: CoreWarrior Message-ID: <07SQ8.26$bb4.29069@twister.maine.rr.com> Date: Sat, 22 Jun 2002 03:25:48 GMT Paul-V Khuong wrote: > google keeps an active archive of newgroups, including rec.games.corewar. Erm... Where's the References: header? -- "Even nowadays a man can't step up and kill a woman without feeling just a bit unchivalrous ..." -- Robert Benchley Message-ID: <3D141A1C.7A8377FA@someoneelse.com> From: HiEv Subject: Re: OT: Re: CoreWarrior Date: Sat, 22 Jun 2002 06:31:36 GMT bd wrote: > Paul-V Khuong wrote: > > google keeps an active archive of newgroups, including rec.games.corewar. > > Erm... Where's the References: header? Sorry for the incredibly long link, but you can find them here: http://groups.google.com/groups?as_q=&num=10&as_scoring=d&hl=en&ie=ISO-8859-1&btnG=Google+Search&as_epq=&as_oq=newsletter&as_eq=&as_ugroup=rec.games.corewar&as_usubject=Core+Warrior&as_uauthors=&as_umsgid=&lr=&as_drrb=q&as_qdr=&as_mind=12&as_minm=5&as_miny=1981&as_maxd=21&as_maxm=6&as_maxy=2002 Hope that helps! -- The difference between intelligence and stupidity is that intelligence has its limits. Message-ID: From: anton@paradise.net.nz (Anton Marsden) Subject: Core War Frequently Asked Questions (rec.games.corewar FAQ) Date: 22 Jun 2002 10:05:55 GMT Archive-name: games/corewar-faq Last-Modified: September 4, 1999 Version: 4.2 URL: http://homepages.paradise.net.nz/~anton/cw/corewar-faq.html Copyright: (c) 1999 Anton Marsden Maintainer: Anton Marsden Posting-Frequency: once every 2 weeks Core War Frequently Asked Questions (rec.games.corewar FAQ) These are the Frequently Asked Questions (and answers) from the Usenet newsgroup rec.games.corewar. A plain text version of this document is posted every two weeks. The latest hypertext version is available at http://homepages.paradise.net.nz/~anton/cw/corewar-faq.html and the latest plain text version is available at http://homepages.paradise.net.nz/~anton/cw/corewar-faq.txt. This document is currently being maintained by Anton Marsden (anton@paradise.net.nz). Last modified: Sat Sep 4 00:22:22 NZST 1999 ------------------------------------------------------------------------ To Do * Add the new No-PSpace '94 hill location * Add online location of Dewdney's articles * Make question 17 easier to understand. Add a state diagram? * Add info about infinite hills, related games (C-Robots, Tierra?, ...) * New question: How do I know if my warrior is any good? Refer to beginners' benchmarks, etc. * Add a Who's Who list? * Would very much like someone to compile a collection of the "revolutionary" warriors so that beginners can see how the game has developed over the years. Mail me if interested. ------------------------------------------------------------------------ What's New * Changed primary location of FAQ (again!) * Changed Philip Kendall's home page address. * Updated list server information * Changed primary location of FAQ * Vector-launching code was fixed thanks to Ting Hsu. * Changed the location of Ryan Coleman's paper (LaunchPad -> Launchpad) * Changed pauillac.inria.fr to para.inria.fr ------------------------------------------------------------------------ Table of Contents 1. What is Core War 2. Is it "Core War" or "Core Wars"? 3. Where can I find more information about Core War? 4. Core War has changed since Dewdney's articles. Where do I get a copy of the current instruction set? 5. What is ICWS'94? Which simulators support ICWS'94? 6. What is the ICWS? 7. What is Core Warrior? 8. Where are the Core War archives? 9. Where can I find a Core War system for ...? 10. Where can I find warrior code? 11. I do not have FTP. How do I get all this great stuff? 12. I do not have access to Usenet. How do I post and receive news? 13. Are there any Core War related WWW sites? 14. What is KotH? How do I enter? 15. Is it DAT 0, 0 or DAT #0, #0? How do I compare to core? 16. How does SLT (Skip if Less Than) work? 17. What is the difference between in-register and in-memory evaluation? 18. What is P-space? 19. What does "Missing ;assert .." in my message from KotH mean? 20. How should I format my code? 21. Are there any other Core War related resources I should know about? 22. What does (expression or term of your choice) mean? 23. Other questions? ------------------------------------------------------------------------ 1. What is Core War? 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 processes of the opposing program to terminate, leaving your program in sole posession of the machine. There are Core War systems available for most computer platforms. Redcode has been standardised by the ICWS, and is therefore transportable between all standard Core War systems. The system in which the programs run is quite simple. The core (the memory of the simulated computer) is a continuous array of instructions, empty except for the competing programs. The core wraps around, so that after the last instruction comes the first one again. There are no absolute addresses in Core War. That is, the address 0 doesn't mean the first instruction in the memory, but the instruction that contains the address 0. The next instruction is 1, and the previous one obviously -1. However, all numbers are treated as positive, and are in the range 0 to CORESIZE-1 where CORESIZE is the amount of memory locations in the core - this means that -1 would be treated as CORESIZE-1 in any arithmetic operations, eg. 3218 + 7856 = (3218 + 7856) mod CORESIZE. Many people get confused by this, and it is particularly important when using the SLT instruction. Note that the source code of a program can still contain negative numbers, but if you start using instructions like DIV #-2, #5 it is important to know what effect they will have when executed. The basic unit of memory in Core War is one instruction. Each Redcode instruction contains three parts: * the opcode * the source address (a.k.a. the A-field) * the destination address (a.k.a. the B-field) The execution of the programs is equally simple. The MARS executes one instruction at a time, and then proceeds to the next one in the memory, unless the instruction explicitly tells it to jump to another address. If there is more than one program running, (as is usual) the programs execute alternately, one instruction at a time. The execution of each instruction takes the same time, one cycle, whether it is MOV, DIV or even DAT (which kills the process). Each program may have several processes running. These processes are stored in a task queue. When it is the program's turn to execute an instruction it dequeues a process and executes the corresponding instruction. Processes that are not killed during the execution of the instruction are put back into the task queue. Processes created by a SPL instruction are added to the task queue after the creating process is put back into the task queue. [ToC] ------------------------------------------------------------------------ 2. Is it "Core War" or "Core Wars"? 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. [ToC] ------------------------------------------------------------------------ 3. Where can I find more information about Core War? 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 two anthologies: Library of Author Title Published ISBN Congress Call Number The Armchair Dewdney, Universe: An New York: W. QA76.6 .D517 A. K. Exploration of H. Freeman �0-7167-1939-8 1988 Computer Worlds 1988 The Magic 0-7167-2125-2 Dewdney, Machine: A New York: W.(Hardcover), QA76.6 A. K. Handbook of H. Freeman �0-7167-2144-9 .D5173 1990 Computer Sorcery 1990 (Paperback) A.K. Dewdney's articles are still the most readable introduction to Core War, even though the Redcode dialect described in there is no longer current. For those who are interested, Dewdney has a home page at http://www.csd.uwo.ca/faculty/akd/. [ToC] ------------------------------------------------------------------------ 4. Core War has changed since Dewdney's articles. Where do I get a copy of the current instruction set? A draft of the official standard (ICWS'88) is available as ftp://www.koth.org/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 Mark Durham's tutorials, ftp://www.koth.org/corewar/documents/tutorial.1.Z and ftp://www.koth.org/corewar/documents/tutorial.2.Z. Steven Morrell has prepared a more practically oriented Redcode tutorial that discusses different warrior classes with lots of example code. This and various other tutorials can be found at http://www.koth.org/papers.html. Even though ICWS'88 is still the "official" standard, you will find that most people are playing by ICWS'94 draft rules and extensions. [ToC] ------------------------------------------------------------------------ 5. What is ICWS'94? Which simulators support ICWS'94? There is an ongoing discussion about future enhancements to the Redcode language. A proposed new standard, dubbed ICWS'94, is currently being evaluated. A major change is the addition of "instruction modifiers" that allow instructions to modify A-field, B-field or both. Also new is a new addressing modes and unrestricted opcode and addressing mode combination ("no illegal instructions"). ICWS'94 is backwards compatible; i.e. ICWS'88 warriors will run correctly on an ICWS'94 system. Take a look at the ICWS'94 draft at ftp://www.koth.org/corewar/documents/icws94.0202.Z for more information. There is a HTML version of this document available at http://www.koth.org/info/icws94.html. You can try out the new standard by submitting warriors to the '94 hills of the KotH servers. Two corewar systems currently support ICWS'94, pMARS (many platforms) and Redcoder (Mac), both available at ftp://www.koth.org/corewar. Note that Redcoder only supports a subset of ICWS'94. [ToC] ------------------------------------------------------------------------ 6. What is the ICWS? About one year after Core War first appeared in Scientific American, 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). The ICWS is no longer active. [ToC] ------------------------------------------------------------------------ 7. What is Core Warrior? Following in the tradition of the Core War News Letter, Push Off, and The 94 Warrior, Core Warrior is a newsletter about strategies and current standings in Core War. Started in October 1995, back issues of Core Warrior (and the other newsletters) are available at http://para.inria.fr/~doligez/corewar/. There is also a Core Warrior index page at http://www.kendalls.demon.co.uk/pak21/corewar/warrior.html which has a summary of the contents of each issue of Core Warrior. Many of the earlier issues contain useful information for beginners. [ToC] ------------------------------------------------------------------------ 8. Where are the Core War archives? 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 ftp://ftp.csua.berkeley.edu/pub/corewar. Also, most of past rec.games.corewar postings (including Redcode source listings) are archived there. Jon Blow (blojo@csua.berkeley.edu) is the archive administrator. When uploading to /pub/corewar/incoming, ask Jon to move your upload to the appropriate directory and announce it on the net. This site is mirrored at: * http://www.koth.org/corewar/ * ftp://www.koth.org/corewar/ * ftp://ftp.inria.fr/INRIA/Projects/para/doligez/cw/mirror The plain text version of this FAQ is automatically archived by news.answers (but this version is probably out-of-date). [ToC] ------------------------------------------------------------------------ 9. Where can I find a Core War system for . . . ? Core War systems are available via anonymous FTP from www.koth.org in the corewar/systems directory. Currently, there are UNIX, IBM PC-compatible, Macintosh, and Amiga Core War systems available there. It is a good idea to check ftp://www.koth.org/corewar/incoming for program updates first. 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 www.koth.org. Generally, the older the program - the less likely it will be ICWS compatible. If you are looking for an ICWS'94 simulator, get pMARS, which is available for many platforms and can be downloaded from: * ftp://ftp.csua.berkeley.edu/pub/corewar (original site) * ftp://www.koth.org/corewar (koth.org mirror) * ftp://ftp.inria.fr/INRIA/Projects/para/doligez/cw/mirror (Planar mirror) * http://www.nc5.infi.net/~wtnewton/corewar/ (Terry Newton) * ftp://members.aol.com/ofechner/corewar (Fechter) Notes: * If you have trouble running pMARS with a graphical display under Win95 then check out http://www.koth.org/pmars.html which should have a pointer to the latest compilation of pMARS for this environment. * RPMs for the Alpha, PowerPC, Sparc and i386 can be found at ftp://ftp.inria.fr/INRIA/Projects/para/doligez/cw/pmars-rpm/ Reviews of Core War systems would be greatly appreciated in the newsgroup and in the newsletter. Below is a not necessarily complete or up-to-date list of what's available at www.koth.org: MADgic41.lzh corewar for the Amiga, v4.1 MAD4041.lzh older version? MAD50B.lha corewar for the Amiga, beta version 5.0 Redcoder-21.hqx corewar for the Mac, supports ICWS'88 and '94 (without extensions) core-11.hqx corewar for the Mac core-wars-simulator.hqx same as core-11.hqx? corewar_unix_x11.tar.Z corewar for UNIX/X-windows, ICWS'86 but not ICWS'88 compatible koth31.tar.Z corewar for UNIX/X-windows. This program ran the former KotH server at intel.com koth.shar.Z older version kothpc.zip port of older version of KotH to the PC deluxe20c.tar.Z corewar for UNIX (broken X-windows or curses) and PC mars.tar.Z corewar for UNIX, likely not ICWS'88 compatible icons.zip corewar icons for MS-Windows macrored.zip a redcode macro-preprocessor (PC) c88v49.zip PC corewar, textmode display mars88.zip PC corewar, graphics mode display corwp302.zip PC corewar, textmode display, slowish mercury2.zip PC corewar written in assembly, fast! mtourn11.zip tournament scheduler for mercury (req. 4DOS) pmars08s.zip portable system, ICWS'88 and '94, runs on UNIX, PC, Mac, Amiga. C source archive pmars08s.tar.Z same as above pmars08.zip PC executables with graphics display, req 386+ macpmars02.sit.hqx pMARS executable for Mac (port of version 0.2) buggy, no display MacpMARS1.99a.cpt.hqx port of v0.8 for the Mac, with display and debugger MacpMARS1.0s.cpt.hqx C source (MPW, ThinkC) for Mac frontend pvms08.zip pMARS v0.8 for VMS build files/help (req. pmars08s.zip) ApMARS03.lha pMARS executable for Amiga (port of version 0.3.1) wincor11.zip MS-Windows system, shareware ($15) [ToC] ------------------------------------------------------------------------ 10. Where can I find warrior code? To learn the game, it is a good idea to study previously posted warrior code. The FTP archives have code in the ftp://www.koth.org/corewar/redcode directory. A clearly organized on-line warrior collection is available at the Core War web sites (see below). [ToC] ------------------------------------------------------------------------ 11. I do not have FTP. How do I get all this great stuff? There is an FTP email server at bitftp@pucc.princeton.edu. This address may no longer exist. I haven't tested it yet. Send email with a subject and body text of "help" (without the quotes) for more information on its usage. Note that many FTP email gateways are shutting down due to abuse. To get a current list of FTP email servers, look at the Accessing the Internet by E-mail FAQ posted to news.answers. If you don't have access to Usenet, you can retrieve this FAQ one of the following ways: * Send mail to mail-server@rtfm.mit.edu with the body containing "send usenet/news.answers/internet-services/access-via-email". * Send mail to mailbase@mailbase.ac.uk with the body containing "send lis-iis e-access-inet.txt". [ToC] ------------------------------------------------------------------------ 12. I do not have access to Usenet. How do I post and receive news? To receive rec.games.corewar articles by email, join the COREWAR-L list run on the Koth.Org list processor. To join, send the message SUB COREWAR-L FirstName LastName to listproc@koth.org. You can send mail to corewar-l@koth.org to post even if you are not a member of the list. Responsible for the listserver is Scott J. Ellentuch (ttsg@ttsg.com). Servers that allow you to post (but not receive) articles are available. Refer to the Accessing the Internet by E-Mail FAQ for more information. [ToC] ------------------------------------------------------------------------ 13. Are there any Core War related WWW sites? You bet. Each of the two KotH sites sport a world-wide web server. Stormking's Core War page is http://www.koth.org; pizza's is http://www.ecst.csuchico.edu/~pizza/koth . Damien Doligez (a.k.a. Planar) has a web page that features convenient access to regular newsletters (Push Off, The '94 Warrior, Core Warrior) and a well organized library of warriors: http://para.inria.fr/~doligez/corewar/. Convenient for U.S. users, this site is also mirrored at koth.org. [ToC] ------------------------------------------------------------------------ 14. What is KotH? How do I enter? King Of The Hill (KotH) is an ongoing Core War tournament available to anyone with email. You enter by submitting via email a Redcode program (warrior) with special comment lines. You will receive a reply indicating how well your program did against the current top programs "on the hill". There are two styles of KotH tournaments, "classical" and "multi-warrior". The "classical" KotH is a one-on-one tournament, that is your warrior 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. In "multi-warrior" KotH, all warriors on the hill fight each other at the same time. Score calculation is a bit more complex than for the one-on-one tournament. Briefly, points are awarded based on how many warriors survive until the end of a round. A warrior that survives by itself gets more points than a warrior that survives together with other warriors. Points are calculated from the formula (W*W-1)/S, where W is the total number of warriors and S the number of surviving warriors. The pMARS documentation has more information on multi-warrior scoring. The idea for an email-based Core War server came from David Lee. The original KotH was developed and run by William Shubert at Intel starting in 1991, and discontinued after almost three years of service. Currently, KotHs based on Bill's UNIX scripts but offering a wider variety of hills are are running at two sites: koth@koth.org is maintained by Scott J. Ellentuch (tuc@ttsg.com) and pizza@ecst.csuchico.edu by Thomas H. Davies (sd@ecst.csuchico.edu). Up until May '95, the two sites provided overlapping services, i.e. the some of the hill types were offered by both "pizza" and "stormking". To conserve resources, the different hill types are now divided up among the sites. The way you submit warriors to both KotHs is pretty much the same. Therefore, the entry rules described below apply to both "pizza" and "stormking" unless otherwise noted. Entry Rules for King of the Hill Corewar * Write a corewar program. KotH is fully ICWS '88 compatible, EXCEPT that a comma (",") is required between two arguments. * Put a line starting with ";redcode" (or ";redcode-94", etc., see below) 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. 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. Using ";name" is mandatory on the Pizza hills. In addition, it would be nice if you have lines beginning with ";strategy" that describe the algorithm you use. There are currently seven separate hills you can select by starting your program with ;redcode-94, ;redcode-b, ;redcode-lp, ;redcode-x, ;redcode, ;redcode-94x or ;redcode-94m. The former four run at "pizza", the latter three at "stormking". More information on these hills is listed below. * Mail this file to koth@koth.org or pizza@ecst.csuchico.edu. "Pizza" requires a subject of "koth" (use the -s flag on most mailers). * 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. * In an hour or so you should get more mail telling you how your program performed against the current top 20 (or 10) programs. If no news arrives during that time, 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 25 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 25 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. The server kills programs by assigning an impossibly low score; it may therefore take another successful challenge before a killed program is actually removed from the hill. 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. Duration Max. Hill Name Hill Core Max. Before Entry Min. Rounds Instr. Size Size Processes Distance Fought Set Tie Length Pizza's ICWS '94 Draft Hill Extended (Accessed with 25 8000 8000 80000 100 100 200 ICWS '94 ";redcode-94") Draft Pizza's Beginner's Extended Hill (Accessed 25 8000 8000 80000 100 100 200 ICWS '94 with ";redcode-b") Draft Pizza's Experimental Extended (Small) Hill 25 800 800 8000 20 20 200 ICWS '94 (Accessed with Draft ";redcode-x") Pizza's Limited Process (LP) Hill Extended (Accessed with 25 8000 8 80000 200 200 200 ICWS '94 ";redcode-lp") Draft Stormking's ICWS '88 Standard Hill (Accessed with 20 8000 8000 80000 100 100 250 ICWS '88 ";redcode") Stormking's ICWS '94 No Pspace Hill (Accessed with 20 8000 8000 80000 100 100 250 ICWS '94 ";redcode-94nop") Stormking's ICWS '94 Experimental Extended (Big) Hill 20 55440 55440 500000 200 200 250 ICWS '94 (Accessed with Draft ";redcode-94x") Stormking's ICWS '94 Multi-Warrior Extended Hill (Accessed 10 8000 8000 80000 100 100 200 ICWS '94 with Draft ";redcode-94m") Note: Warriors on the beginner's hill are retired at age 100. If you just want to get a status report without actually challenging the hills, send email with ";status" as the message body (and don't forget "Subject: koth" for "pizza"). If you send mail to "pizza" with "Subject: koth help" you will receive instructions that may be more up to date than those contained in this document. At "stormking", a message body with ";help" will return brief instructions. If you submit code containing a ";test" line, your warrior will be assembled but not actually pitted against the warriors on the hill. At "pizza", you can use ";redcode[-??] test" to do a test challenge of the Hill without affecting the status of the Hill. These challenges can be used to see how well your warrior does against the current Hill warriors. All hills run portable MARS (pMARS) version 0.8, a platform-independent Core War system available at www.koth.org. The '94 and '94x hills allow five experimental opcodes and three experimental addressing modes currently not covered in the ICWS'94 draft document: * LDP - Load P-Space * STP - Store P-Space * SEQ - Skip if EQual (synonym for CMP) * SNE - Skip if Not Equal * NOP - (No OPeration) * * - indirect using A-field as pointer * { - predecrement indirect using A-field * } - postincrement indirect using A-field [ToC] ------------------------------------------------------------------------ 15. Is it DAT 0, 0 or DAT #0, #0? How do I compare to core? Core is initialized to DAT 0, 0. This is an illegal instruction (in source code) under ICWS'88 rules and strictly compliant assemblers (such as KotH or pmars -8) will not let you have a DAT 0, 0 instruction in your source code - 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. Note that under ICWS'94, DAT 0, 0 is a legal instruction. [ToC] ------------------------------------------------------------------------ 16. How does SLT (Skip if Less Than) work? 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 (core 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. [ToC] ------------------------------------------------------------------------ 17. What is the difference between in-register and in-memory evaluation? These terms refer to the way instruction operands are evaluated. The '88 Redcode standard ICWS'88 is unclear about whether a simulator should "buffer" the result of A-operand evaluation before the B-operand is evaluated. Simulators that do buffer are said to use in-register evaluation, those that don't, in-memory evaluation. ICWS'94 clears this confusion by mandating in-register evaluation. Instructions that execute differently under these two forms of evaluation are MOV, ADD, SUB, MUL, DIV and MOD where the effective address of the A-operand is modified by evaluation of the B-operand. This is best illustrated by an example: L1 mov L2, mov.i #0, impsize 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 Colour 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. Decrement Resistant Property of warriors making them functional (or at least partially functional) when overrun by a DJN-stream. DJN-Stream (also DJN-Train) Using a DJN command to rapidly decrement core locations. example ... ... djn example, <4000 Dwarf The prototypical small bomber. Gate-busting (also gate-crashing) technique to "interweave" a decrement-resistant imp-spiral (e.g. MOV 0, 2668) with a standard one to overrun imp-gates. Hybrids warriors that combine two or more of the basic strategies, either in sequence (e.g. stone->paper) or in parallel (e.g. imp/stone). 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, mov.i #0,IMPSIZE Mirror see reflection. On-axis/off-axis On-axis scanners compare two locations M/2 apart, where M is the memory size. Off-axis scanners use some other separation. Optimal Constants (also optima-type constants) Bomb or scan increments chosen to cover core most effectively, i.e. leaving gaps of uniform size. Programs to calculate optimal constants and lists of optimal numbers are available at www.koth.org. Paper A Paper-like program is one which replicates itself many times. Part of the Scissors (beats) Paper (beats) Stone (beats Scissors) analogy. P-Warrior A warrior which uses the results of previous round(s) in order to determine which strategy it will use. Pit-Trapper (also Slaver, Vampire). A program which enslaves another. Usually accomplished by bombing with JMPs to a SPL 0 pit with an optional core-clear routine. Q^2 Scan A modern version of the Quick Scan where anything found is attacked almost immediately. Quick Scan 2c scan of a set group of core locations with bombing if anything is found. Both of the following codes snips scan 16 locations and check for a find. If anything is found, it is attacked, otherwise 16 more locations are scanned. Example: start s1 for 8 ;'88 scan cmp start+100*s1, start+100*s1+4000 ;check two locations mov #start+100*s1-found, found ;they differ so set pointer rof jmn attack, found ;if we have something, get it s2 for 8 cmp start+100*(s2+6), start+100*(s2+6)+4000 mov #start+100*(s2+6)-found, found rof found jmz moveme, #0 ;skip attack if qscan found nothing attack cmp @found, start-1 ;does found points to empty space? add #4000, found ;no, so point to correct location mov start-1, @found ;move a bomb moveme jmp 0, 0 In ICWS'94, the quick scan code is more compact because of the SNE opcode: start ;'94 scan s1 for 4 sne start+400*s1, start+400*s1+100 ;check two locations seq start+400*s1+200, start+400*s1+300 ;check two locations mov #start+400*s1-found, found ;they differ so set pointer rof jmn which, found ;if we have something, get it s2 for 4 sne start+400*(s2+4), start+400*(s2+4)+100 seq start+400*(s2+4)+200, start+400*(s2+4)+300 mov #start+400*(s2+4)-found-100, found rof found jmz moveme, #0 ;skip attack if qscan found nothing add #100, -1 ;increment pointer till we get the which jmn -1, @found ;right place mov start-1, @found ;move a bomb moveme jmp 0, 0 Reflection Copy of a program or program part, positioned to make the active program invisible to a CMP-scanner. Replicator Generic for Paper. A program which makes many copies of itself, each copy also making copies. Self-Splitting Strategy of amplifying the number of processes executing a piece of code. example spl 0 loop add #10, example mov example, @example jmp loop Scanner A program which searches through core for an opponent rather than bombing blindly. Scissors A program designed to beat replicators, usually a (B-field scanning) vampire. Part of the Paper-Scissors-Stone analogy. Self-Repair Ability of a program to fix it's own code after attack. Silk A replicator which splits off a process to each new copy before actually copying the code. This allows it to replicate extremely quickly. This technique is only possible under the '94 draft, because it requires post-increment indirect addressing. Example: spl 1 mov -1, 0 spl 1 ;generate 6 consecutive processes silk spl 3620, #0 ;split to new copy mov >-1, }-1 ;copy self to new location mov bomb, >2000 ;linear bombing mov bomb, }2042 ;A-indirect bombing for anti-vamp jmp silk, {silk ;reset source pointer, make new copy bomb dat >2667, >5334 ;anti-imp bomb Slaver see Pit-Trapper. Stealth Property of programs, or program parts, which are invisible to scanners, accomplished by using zero B-fields and reflections. Stone A Stone-like program designed to be a small bomber. Part of the Paper-Scissors-Stone analogy. Stun A type of bomb which makes the opponent multiply useless processes, thus slowing it down. Example is referred to as a SPL-JMP bomb. example spl 0 jmp -1 Two-Pass Core-Clear (also SPL/DAT Core-Clear) core clear that fills core first with SPL instructions, then with DATs. This is very effective in killing paper and certain imp-spiral variations. Vampire see Pit-Trapper. Vector Launch one of several means to start an imp-spiral running. As fast as Binary Launch, but requiring much less code. See also JMP/ADD Launch and Binary Launch. This example is one form of a Vector Launch: sz EQU 2667 spl 1 spl 1 jmp @vt, }0 vt dat #0, imp+0*sz ; start of vector table dat #0, imp+1*sz dat #0, imp+2*sz dat #0, imp+3*sz ; end of vector table imp mov.i #0, sz [ToC] ------------------------------------------------------------------------ 23. Other questions? Just ask in the rec.games.corewar newsgroup or contact me. If you are shy, check out the Core War archives first to see if your question has been answered before. [ToC] ------------------------------------------------------------------------ Credits Additions, corrections, etc. to this document are solicited. Thanks in particular to the following people who have contributed major portions of this document: * Mark Durham (wrote the original version of the FAQ) * Paul Kline * Randy Graham * Stefan Strack (maintained a recent version of the FAQ) ------------------------------------------------------------------------ Copyright � 1999 Anton Marsden. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ------------------------------------------------------------------------ From: Koth Subject: KOTH.ORG: Status - 94 No Pspace 06/24/02 Date: 24 Jun 2002 08:58:23 -0400 Message-ID: <200206240409.AAA28171@gevjon.ttsg.com> Weekly Status on 06/24/02 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG 94 No Pspace CoreWar Hill: Last battle concluded at : Fri Jun 21 22:13:38 EDT 2002 # %W/ %L/ %T Name Author Score Age 1 44/ 44/ 11 oneshot test Simon Wainwright 145 58 2 42/ 41/ 17 Hazy Lazy ... again Steve Gunnell 144 169 3 33/ 23/ 44 Candy Lukasz Grabun 144 34 4 35/ 26/ 39 pTest3 G/M 143 17 5 32/ 23/ 44 Son of Vain Oversby/Pihlaja 142 723 6 43/ 46/ 11 Blade Fizmo 139 40 7 42/ 45/ 13 Terra Fizmo 139 2 8 34/ 29/ 37 Uninvited John Metcalf 139 816 9 42/ 47/ 11 G3-b David Moore 137 404 10 31/ 26/ 44 Purifier Lukasz Grabun 136 144 11 40/ 45/ 15 Behemot Michal Janeczek 135 957 12 39/ 43/ 17 QSOS Fizmo 135 72 13 40/ 46/ 13 pre75-z47a John Metcalf 134 76 14 30/ 25/ 45 paper test John Metcalf 134 18 15 39/ 43/ 18 Vanquisher Lukasz Grabun 134 225 16 31/ 28/ 41 Olivia Ben Ford 133 862 17 31/ 29/ 40 Inky Ian Oversby 132 613 18 40/ 49/ 11 scan test Lukasz Grabun 132 1 19 29/ 27/ 45 nPaper II Paul-V Khuong 131 1134 20 29/ 28/ 43 Qsilk 2 Fizmo 130 22 21 41/ 53/ 7 Aoshi Test A 1 Steve Gunnell 129 0 From: Koth Subject: KOTH.ORG: Status - ICWS Experimental 94 06/24/02 Date: 24 Jun 2002 08:59:48 -0400 Message-ID: <200206240406.AAA28120@gevjon.ttsg.com> Weekly Status on 06/24/02 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG ICWS Experimental 94 CoreWar Hill: Last battle concluded at : Wed Jun 19 01:11:31 EDT 2002 # %W/ %L/ %T Name Author Score Age 1 54/ 33/ 12 Fire and Ice II David Moore 175 6 2 34/ 24/ 42 KAT v5 Dave Hillis 144 38 3 39/ 35/ 26 Black Moods Ian Oversby 143 102 4 37/ 32/ 31 Controlled Aggression Ian Oversby 142 106 5 25/ 8/ 66 Evol Cap 4 X John Wilkinson 142 175 6 28/ 17/ 55 Katafutr Michal Janeczek 140 46 7 24/ 9/ 67 Denial David Moore 140 47 8 28/ 20/ 51 Venom v0.2b Christian Schmidt 137 128 9 40/ 44/ 16 Greetings From Asbury Par JKW 136 66 10 36/ 36/ 28 Ogre Christian Schmidt 135 54 11 31/ 28/ 41 Damage Inflicted Robert Macrae 134 45 12 33/ 32/ 34 Big I.F.F.S. Dave Hillis 134 35 13 24/ 15/ 62 Kin John Metcalf 132 14 14 34/ 37/ 28 Exsnail Philip Thorne 131 1 15 35/ 46/ 18 Mischief John Metcalf 124 3 16 16/ 7/ 77 Evolve X v4.0 John Wilkinson 124 123 17 16/ 7/ 77 Black Box v1.1 JKW 124 69 18 28/ 36/ 36 test CS 120 63 19 32/ 44/ 24 Pagan John K W 119 160 20 21/ 29/ 50 Disaster Area 2.8 Stefan Foerster 114 33 21 0/ 69/ 31 Xerox on fire v0.1 bd Subject: KOTH.ORG: Status - MultiWarrior 94 06/24/02 Date: 24 Jun 2002 09:01:13 -0400 Message-ID: <200206240403.AAA28058@gevjon.ttsg.com> Weekly Status on 06/24/02 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG Multiwarrior 94 CoreWar Hill: Last battle concluded at : Sun May 26 14:10:15 EDT 2002 # Name Author Score Age 1 D-clearM Ken Espiritu 72 88 2 test John Metcalf 55 16 3 fclear Brian Haskin 54 72 4 Tinyshot John Metcalf 46 1 5 Her Majesty P.Kline 39 107 6 8thTest Gino Oblena 34 19 7 clock strikes twelve John Metcalf 31 2 8 Xord Monominer XOSC:01 Gino Oblena 26 27 9 QuiVa John Metcalf 18 181 10 Pitbull Christian Schmidt 14 44 11 Downpour John Everitt 1 0 From: Koth Subject: KOTH.ORG: Status - Standard 06/24/02 Date: 24 Jun 2002 09:02:38 -0400 Message-ID: <200206240400.AAA27992@gevjon.ttsg.com> Weekly Status on 06/24/02 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG Standard KotH CoreWar Hill : Last battle concluded at : Mon May 20 00:11:20 EDT 2002 # %W/ %L/ %T Name Author Score Age 1 45/ 37/ 18 Oneshot '88 John Metcalf 153 1 2 36/ 21/ 43 Freight Train David Moore 152 80 3 35/ 21/ 45 Test Alexander (Sasha) Wa 149 19 4 34/ 23/ 43 sIMPly.Red v0.95 Leonardo Humberto 144 37 5 33/ 22/ 45 Guardian Ian Oversby 143 79 6 43/ 44/ 13 Foggy Swamp Beppe Bezzi 142 76 7 43/ 44/ 14 Blur '88 Anton Marsden 141 117 8 35/ 30/ 36 vala John Metcalf 140 2 9 37/ 38/ 24 Tangle Trap David Moore 137 153 10 38/ 41/ 21 Stasis David Moore 136 187 11 37/ 39/ 23 PacMan David Moore 136 109 12 26/ 17/ 57 EV Paper John K Wilkinson 136 93 13 33/ 32/ 35 Frog Sticker P.Kline 134 29 14 29/ 23/ 48 Shish-Ka-Bob Ben Ford 134 35 15 27/ 20/ 52 Jinglo John Metcalf 134 4 16 27/ 20/ 53 Test I Ian Oversby 134 136 17 27/ 22/ 50 Evoltmp 88 John K W 132 130 18 39/ 47/ 14 Iron Gate Wayne Sheppard 130 405 19 37/ 44/ 19 Beholder's Eye V1.7 W. Mintardjo 129 355 20 39/ 48/ 13 ig Wayne Sheppard 129 7 21 7/ 73/ 20 Pseudo Ring Simon Kitson 41 0 From: "Csaba Biro" Subject: Re: CoreWarrior Date: Mon, 24 Jun 2002 15:58:43 +0200 Message-ID: You can download all issues in one tar.gz file from http://vnet.hu/csbiro/corewar/cw.tar.gz You also can find a CoreWar home page (unfortunately in Hungarian) at http://vnet.hu/csbiro/corewar/corewar.html "sss" wrote in message news:ad5c3eec.0206211205.13baa9e8@posting.google.com... > my name is ingo s kacza, Gomjabbar VI and Caladan III are my warrior > in the pizza b-hill. i have not been active for a while and want to > keep up with the newest stuff. > > WHERE CAN I GET THE LATEST NEWSLETTERS (corewarroirs) ????? From: shemond@hotmail.com (Zteev) Subject: CoreView ??? Date: 28 Jun 2002 13:13:55 -0700 Message-ID: Hi there, I am new to CoreWars. I try to see the behaviour of the programs in pmarsv's coreview but it's really too fast and I can't see anything! I don't even know what's going on with all that characters. Anyone can explain me how to correctly understand the program's behaviors? Thanks in advance, Zteev From: M Joonas Pihlaja Subject: Re: CoreView ??? Date: Sat, 29 Jun 2002 14:57:22 +0300 Message-ID: Hi Zteev, On 28 Jun 2002, Zteev wrote: > I am new to CoreWars. I try to see the behaviour of the programs in > pmarsv's coreview but it's really too fast and I can't see anything! I > don't even know what's going on with all that characters. Anyone can > explain me how to correctly understand the program's behaviors? If you're seeing characters then you're probably running under text mode only. You'll want to change to graphics mode by giving pmars the -v 114 option: $ pmarsv -v 114 warrior1.red warrior2.red The first digit of the number after -v is the speed of the simulation. It goes from 1 to 7, with 7 being the slowest. The second digit is the graphics mode you want -- it's platform dependent, but '1' always works for me. The last digit goes from 1 to 4 and sets the level of detail you see on the screen. IIRC, the codes are: 1 show cells where a warrior executes or dies 2 also show cells where warrior writes 3 also show cells where warrior decrements/increments 4 also show cells where warrior reads Try the different levels of detail with the warriors aeka.red and rave.red that come with pmars and you'll see what executions, reads, writes, ... look like. You might also want to give the options -b -e and -r <#rounds>: $ pmarsv -v 114 -b -e -r 100 warrior1.red warrior2.red The -b flag suppresses the assembly listing from pmars, the -r option gives the number of rounds to play, and the -e option drops you straight into the core debugger. The most useful commands in cdb to look at warriors are: g play and display one round. c continue playing all rounds. s single step one instruction. q quit The early issues of Core Warrior had a great tutorial on cdb by Planar. Parts 1-3 are here: http://para.inria.fr/~doligez/corewar/corewarrior/009.txt http://para.inria.fr/~doligez/corewar/corewarrior/010.txt http://para.inria.fr/~doligez/corewar/corewarrior/012.txt The pmars man page that should have come with pmars is also a good read. HTH, Joonas