From news-rocq.inria.fr!univ-lyon1.fr!jussieu.fr!math.ohio-state.edu!howland.reston.ans.net!agate!dog.ee.lbl.gov!hellgate.utah.edu!peruvian.cs.utah.edu!bdthomse Wed Apr 20 15:07:27 1994 Article: 665 of rec.games.corewar Newsgroups: rec.games.corewar Path: news-rocq.inria.fr!univ-lyon1.fr!jussieu.fr!math.ohio-state.edu!howland.reston.ans.net!agate!dog.ee.lbl.gov!hellgate.utah.edu!peruvian.cs.utah.edu!bdthomse From: bdthomse%peruvian.cs.utah.edu@cs.utah.edu (Brant Thomsen) Subject: The '94 Warrior Date: 18 Apr 94 23:46:26 MDT Message-ID: <1994Apr18.234626.6872@hellgate.utah.edu> Originator: bdthomse@peruvian.cs.utah.edu Organization: University of Utah CS Dept Lines: 400 __ __| | ) _ \ | | \ \ / _) | __ \ _ \ / ( | | | \ \ \ / _` | __| __| | _ \ __| | | | | __/ \__ |___ __| \ \ \ / ( | | | | ( | | _| _| |_|\___| _/ _| \_/\_/ \__,_|_| _| _|\___/ _| April 18, 1994 Issue #6 ______________________________________________________________________________ This newletter covers the current status of the ICWS '94 Draft hills, and also attempts to keep up with the latest ideas in how the new standard will affect corewars in general. I hope you enjoy it! If you are unfamiliar with the '94 draft standard, you can learn more about it by reading the FAQ for this newsgroup. In addition, the program pMARS includes a highly recommended tutorial on the new standard. Feel free to send me e-mail if you have any difficulty finding either of them, if you need to have a corewar item mailed to you, or if you have any other questions. The FAQ is available through anonymous FTP to rtfm.mit.edu, as /pub/usenet/news.answers/games/corewar-faq.Z ______________________________________________________________________________ CHANGES and CORRECTIONS: There have been several changes since the last issue of _The_'94_Warrior_ came off the electronic presses. With luck, I'll manage to get most of them. The first big event is the addition of two (or three) new opcodes for version 0.5 of pMARS. It was recently downloaded to soda.berkeley.edu (in the pub/corewar/incoming directory). Even if you don't think you will ever need to use SEQ, SNE, or NOP, there are a couple of bug fixes that make it worth the effort to upgrade. The another big event is the creation of a new hill server, "pizza". "Pizza" is operated by Thomas Davies, and he's doing a great job at it! Most of the programs residing at the "Intel KotH" and "stormking" have already managed to migrate over, and there are several new programs on "pizza" as well. The "pizza" hills eliminate the major complaint users had with the "stormking" hills: you no longer need to wait a day or two to get back the results of a warrior submission. (The process of submitting a warrior to a hill on "pizza" is covered in the latest FAQ for the rec.games.corewar newsgroup. Send me mail if you didn't receive a copy of it.) Along with the creation of the "pizza" server came the passing of the Bill Shubert's hill at Intel. Thanks, Bill, for the many years you have used your resources to allow the rest of us to hone our corewars skills. The game has improved greatly because of your efforts! You'll also want to catch the first chapter of Steven Morrell's "MY FIRST COREWAR BOOK". It's on soda.berkeley.edu in the pub/corewar/incoming directory as "chapter1.Z". Even if Steven didn't mention my name in it and he attended some school other than the University of Utah, I would still recommend it. It's that good! For those of you developing warriors in large core sizes, the upgraded version of Optima I mentioned in the last issue is now available on soda. If you are experimenting with different core sizes (like the small core on "pizza", this program is a necessity.) And, for those of you with a competitive streak, I would highly encourage you to enter Stefan Strack's upcoming corewar tournament. In case you missed the announcement, here it is again: In the meantime, I am going to hold a double-elimination tournament with weekly rounds, just like the summer and fall tourneys of last year (soda.berkeley.edu:/pub/corewar/redcode/st93warriors.zip includes a rapport of this kind of tourney). Rules will alternate between '94 (coresize=8000) and '94x (coresize=55440) hill specs. If there's demand, I'll also throw in a pure '88 round. If there are enough participants, I'll divide them up into an A- and B-league (verterans and beginners). The submission deadline for round 1 is Friday, April 22nd. Rules are '94x (big) hill specs, and you may use the new opcodes. Your opponent in round 1 will be chosen randomly. And as though the fame was not enough incentive already, the tournament winner will receive a free ICWS membership and subscription to the newsletter for one year. -Stefan (stst@vuse.vanderbilt.edu) Just in case those prizes are not good enough for you, I will also throw in a free one-year subscription to _The_'94_Warrior_ for the winner. Seriously though, Stefan always does a great job with his tournaments, and I heartily recommend you give this one a try. ______________________________________________________________________________ The ICWS '94 Draft Hill: Core size: 8000 instrucitons Max processes: 8000 per program Duration: After 80,000 cycles, a tie is declared. Max entry length: 100 instructions The current ICWS '94 Draft hill: # %W/ %L/ %T Name Author Score Age 1 45/ 20/ 34 Der Zweite Blitzkrieg - 9 Mike Nonemacher 170 13 2 47/ 31/ 21 Sauron v1.7 Michael Constant 163 3 3 42/ 30/ 28 Killer instinct Anders Ivner 154 64 4 46/ 41/ 13 Dragon Spear c w blue 151 63 5 36/ 22/ 42 Lucky 3 Stefan Strack 150 23 6 43/ 36/ 21 Request v2.0 Brant D. Thomsen 149 61 7 45/ 43/ 12 Iron Gate 1.5 Wayne Sheppard 148 7 8 31/ 17/ 53 Blue Funk Steven Morrell 145 30 9 33/ 21/ 46 Twimpede+/8000-E.2c Jay Han 144 17 10 32/ 21/ 47 Imperfection v3.1 Michael Constant 142 15 11 34/ 26/ 40 NC 94 Wayne Sheppard 142 43 12 31/ 24/ 44 Splash Jay Han 139 1 13 38/ 38/ 25 NTA 94 Wayne Sheppard 137 51 14 40/ 43/ 17 Test Stefan Strack 137 26 15 40/ 42/ 18 Sylvester v1.0 Brant D. Thomsen 137 60 16 38/ 41/ 22 Fast Food v2.1 Brant D. Thomsen 134 58 17 34/ 34/ 32 Match Stick c w blue 133 41 18 31/ 32/ 37 Little Flea v1.2 Michael Constant 129 5 19 38/ 49/ 13 Dagger v6.0 Michael Constant 126 67 20 32/ 45/ 23 Assassin v1.0 Michael Constant 119 20 For this issue, I was planning to post the results of both the "stormking" and "pizza" '94 hills. However, as I haven't gotten back the results of the queries I sent to "stormking" almost four days ago, I decided to simply make a clean switch to pizza this month. Send any complaints to the editorial board. I believe most of the programs that are on the '94 draft hill on "stormking" have made it over to "pizza". Next issue, after things have settled down a little bit on the new hills, I will attempt to analyze what is happening. ______________________________________________________________________________ The ICWS '94 Draft Experimental Hill: Core size: 55,440 instructions Max processes: 10,000 per program Duration: After 500,000 cycles, a tie is declared. Max entry length: 200 instructions The current ICWS '94 Experimental (Big) hill: # %W/ %L/ %T Name Author Score Age 1 49/ 15/ 36 Variation G-1 Jay Han 182 1 2 47/ 15/ 38 Variation E-2.c Jay Han 178 13 3 44/ 16/ 39 Splash 1 Jay Han 172 2 4 45/ 22/ 32 Lucky 13 Stefan Strack 168 43 5 49/ 32/ 20 Request-55440 Brant D. Thomsen 165 37 6 35/ 18/ 47 Imperfection v2.4 Michael Constant 153 8 7 47/ 41/ 12 Rave B4 Stefan Strack 153 29 8 45/ 42/ 13 Virus Jay Han 148 3 9 44/ 43/ 13 bigproba nandor sieben 145 41 10 42/ 46/ 12 Scanalyzer-W Jay Han 138 4 11 42/ 46/ 13 Scanalyzer-V.3b Jay Han 138 11 12 35/ 33/ 32 Big Flea v1.1 Michael Constant 137 7 13 38/ 46/ 15 amoeba v82 Richard van der Brug 131 18 14 38/ 47/ 15 Dagger v8.0 Michael Constant 130 24 15 38/ 46/ 16 Sunburst 33 Jay Han 130 31 16 30/ 31/ 38 Nova-A.1b Jay 129 12 17 29/ 32/ 39 Skimp 127 Jay Han 127 30 18 34/ 42/ 23 IceCube 1.4 Richard van der Brug 126 17 19 32/ 40/ 28 Veeble Jr. T. H. Davies 125 27 20 36/ 51/ 13 Kill Imps!!! Steven Morrell 121 26 The comments for the other hill apply here as well. ______________________________________________________________________________ HINTS and HELPS: For today's hint, I will be using the source code to "Request v2.0" for the 55440 size '94 hill. "Request" is very similar to my earlier "Distance" vampires (I know, I'm stuck in a rut ...) with the exception that the fangs use indirect addressing instead of direct addressing to send the processes to the pit. By using a two line piece of code that contuously rewrites the reference value used by the fangs, I can "undo" any damage caused by standard anti-vampire programs. * * * Writing code for a large coresize provides an interesting challenge. Possibly the most frustrating thing about it is that it is hard to display and analyze 55440 locations. I find that, more than ever, I am forced to rely on other programs to help me generate the information I want for my corewars warriors. For instance, when I wanted to make the '94 version of my vampire "Request" run in the 55440 coresize, I tried several things to make the process easier. As you may have guessed by reading the last issue of _The_'94_Warrior_, one of the first programs I used was "Optima" by Michael Constant. This, however, was just the beginning. Take a look at the following "c" code: /* Determine coverage with different RedCode spacing for bombers */ #include #include #define WIDTH 80 int main(int argc, char *argv[]) { long sp, coresize, first, step, lines = WIDTH+1, printed, count; int i, core[WIDTH]; if (argc < 4 || argc > 5) { printf("\nUsage: %s coresize step first [lines]\n", argv[0]); return 0; } coresize = atol(argv[1]); step = atol(argv[2]); if(step < 0) step += coresize; first = atol(argv[3]); if(argc > 4) lines = atol(argv[4]); for(i = 0; i < WIDTH; i++) core[i] = 0; printed = 0; sp = first; count = 0; printf("%ld:\n", step); do { if(sp >= 0 && sp < WIDTH) { core[sp] = 1; for(i = 0; i < WIDTH; i++) if(i == first) printf("@"); else printf("%c", core[i] ? '*' : ' '); printed++; } sp += step; sp %= coresize; count++; } while(sp != first && printed < lines); printf("\nMod: %ld\n", coresize / count); return 0; } This program simply takes an imaginary chunk of computer core with a given starting point and step size, and plots how that piece of core will be hit up as the bombing progresses. Then I was able to simply take the pieces of request and fit them into the spaces that were hit latest. (Since my computer screen is 80 columns wide, I simply used that size of core. Feel free to change WIDTH as appropriate.) In the output, the "@" indicates the very first location bombed (if it is in the range printed). Of course, you can also make that the last location bombed by simply adding one step value to your starting value. Also, take a look at the bootstrapping code itself. By using the "FOR" macro, and using the "SUB" statements in my bootstrapping code, it is trivial to change the locations of the different parts of the vampire, because the distances between them are automatically computed by the boot-strapping code based on the number of "DAT" statements between the segments. I can even change the order of the segments without touching my bootstrapping code; I simply use the cut an paste tools in my editor to rearrange the segments as I wanted them. The end result: a competitive program that I have never run inside of a size 55440 core. Is this a good way to go about it? I have no idea. It is, however, an excellent example about how much trouble some people will go to to avoid a little bit of work. * * * ;redcode-94x ;name Request-55440 ;author Brant D. Thomsen ;strategy '94 Vampire ;strategy The latest program in my "quest" ;strategy to yield less wins to anti-vampiric programs. ;strategy Submitted: @date@ step equ 9719 init equ (pit+1+step) gate equ (jump-12) decoy equ (gate-1+step) FOR 132 dat #start*10, #1 ; Provide a large decoy. ROF start mov jump, adder-2 FOR 9 dat #start*10, #1 ROF help mov #pit-decoy, decoy jmp help,