From corewar-l@stormking.com Fri Mar 1 06:08:11 1996 Received: by couchey.inria.fr (5.57/Ultrix3.0-C) id AA10927; Fri, 1 Mar 96 06:08:11 +0100 Received: from valhalla.stormking.com (root@valhalla.stormking.com [204.141.14.1]) by nez-perce.inria.fr (8.7.1/8.7.1) with SMTP id GAA16445 for ; Fri, 1 Mar 1996 06:07:49 +0100 (MET) Received: from (server@localhost [127.0.0.1]) by valhalla.stormking.com (8.6.12/8.6.12) with SMTP id AAA23552; Fri, 1 Mar 1996 00:01:19 -0500 Date: Fri, 1 Mar 1996 00:01:19 -0500 Message-Id: Errors-To: tuc@stormking.com Reply-To: morrell@math.utah.edu Originator: corewar-l@stormking.com Sender: corewar-l@stormking.com Precedence: bulk From: "Steven C. Morrell" To: Multiple recipients of list Subject: Everything. (A bit long) X-Listprocessor-Version: 6.0b -- ListProcessor by Anastasios Kotsikonas X-Comment: Usenet News "rec.games.corewar" Oh No! Not another... XXXXX XXXXX XXXXX X X XXXXX X X X XXXXX XXXXX XXXXX XXXXX XXXXX X X X X X X XX X X X X X X X X X X X X X X X X X X X X X X X X X XXXXX X XXXXX X X XXXXX X XX XXXXX XXXXX XXXXX X XXX XXXXX X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X XXXXX X XXXXX X XXXXX X X XXXXX X X X XXXXX XXXXX A pathetic attempt to give Corewar fans something to read even though they have much better things to do. Dedicated to decreasing the signal-to- noise ratio of the group. Steven's Page is published whenever I feel like it. For information about the ASCII art used in the title, consult the TRS-80 operator's manual. --- I apologize for my delay in sending in my picture to the corewar hall of fame. Getting a picture suitable for such an honor was quite an ordeal. Of course, I thought about sending in a Paulina pin-up or an AstroGIF ("This is a picture of me from Very Far Away"), but I was looking for something a little more personal. I had a really good idea for this picture, but the Bohemians at kinko's wouldn't let me get a color copy of my face. My parents suggested the picture at my brother's wedding, so that you could chose your favorite physiognomy from the 30+ people in it. My wife, the artist, suggested that she draw a Buzz Lightyear with my face. After looking around town for Toy Story pictures, we finally found something on a Burger King Kid's Club french fry envelope. This afternoon, in exasperation, I sat my wife down and told her to draw this thing once and for all. Things went well until she got to my nose. She asked me to pose for her, but she still couldn't get the nose right, so she found a portrait of me and traced the nose from that. She then decided that my head and Buzz Lightyear's head were shaped differently. We scrapped that idea, much to the joy of copyright owners everywhere, but it did provide inspiration for the final portrait of me, which I will commit to hard disk and network as soon as I can convince the scanner at school not to crash. --- As for the epitaph under my name, the best one I could come up with is "He won Nandor's and Stefan's Fall Core War Tournament when he should have been writing chapter 3." Does anyone have anything better? --- The thing that got me writing this soapbox speech in the first place was the recent discussion on artificially inflated scores. Yes, people could submit the same warrior with a ;kill line again and again just to inflate scores. On the other hand, I could dig up a copy of Torch and submit it over and over, and assuming it had more self-wins than losses, the real one would fall off the hill in at most 25 turns! We don't do that here, of course, so I would expect nobody is trying to cheat in other ways. What is happening is people are comparing different versions of programs to see what kills the best programs the most often. If ;kill lines didn't age the hill, then essentially every program that Paul Kline submitted would land in the top 3 on the hill (and push my favorite warrior down 10 places) and this would artificially deflate the scores. I would like to make a pithy observation: This aging system has been used, complete with ;kill lines, for as long as I have played corewar. Back then, Flash Paper was the undisputed king of the hill, and people were speculating that paper-stone combo's would rule evermore. This incremental approach to improvements was used widely by many authors, and this contributed to the high ages of many, if not all of the classics in the same way that it contributes to the high ages of current warriors. I spent about 6 months trying to get my first warrior on the hill. I was ecstatic that it aged 2 or 3 before it was pushed off. When I got my first competitive program on the hill, it aged about 15 (and 2 real fights) before it got pushed off. I was a bit disappointed to find that aging was sometimes that easy, but after submitting a successful program so I could watch the hill in action for a while, I got over it. So should you. (Spoken by a programmer whose warrior just passed 800.) (Actually, I can't see the point of 30 different versions of a program for each one that you leave on the hill, but to each his own. Especially when he isn't aging any of his programs.) --- One of the funniest things about corewar programming is seeing a warrior succeed on the hill after experts on that type of warrior have declared it dead. When Brant Thomsen and I were working with vampires and A-field indirection was introduced, vampires got thrashed badly, and we couldn't fix them up well enough to get back on the hill. A few weeks later, against virtually the same warriors, Paulsson came up with MyVamp, which went on to find remarkable success. I really admire that kind of brashness, and hope he can get another version to stay on very soon. --- Last time I was foolish enough to write one of these things, I put in some code that would always lose to itself. I am very impressed by the new two-liner that always does that. Handshaking for a higher score seems a lot tougher. I can see how to proceed after the first battle (Suicide if I lost the last battle to myself), but making sure the right copy wins the first round seems chancy at best. --- Wayne Sheppard has noted that the stone-paper-scissors relationship is messed up on the current hill. Paper started arguing with scissors a long time ago about whether one could kill the other. The only way stones can get in the argument is by becoming more scissor-like so the paper doesn't trounce them. Also, the current scissors have a way of turning stonelike if threatened, so classic stones have even more of a disadvantage. I tried a dumb bomber with Blue Funk 5, which stayed on the hill twice for a suprisingly long time. This is a dumb bomber because not only does it skip searching and go right into the destroying bit, but it doesn't even worry about what kind of bombs it drops. Philisophicallly, it is indistinguishable from Night Crawler, except that its "core-clear" works in '94 redcode. Even the step-size is the same! Well, it fought very well against all the scanners and bombers, and it fought very poorly against all the paper. I don't really want to post it, because there is not much more optimizing that is possible with this thing. It's still the same basic SPL #/MOV >,/ADD -2,-1/DJN -2 stone, but I figured out how to make it bomb mod 1 or 2 and have each location bombed almost two times without killing itself. And a hint for paper: 2234 is not a good constant to use. Blue Funk 5 went from 7/39/154 to 186/4/10 against one opponent just by changing step-sizes. --- The source for Frontwards v2 should appear in a an issue Corewarrior very soon. I'm always reluctant to post a scanner to this group because they get beat up and kicked off very quickly. But, most people have already guessed that it uses a step size of 12, so I won't be giving away any dark secrets. Besides, it has been available for months (!) at Planar's page as my round 8 tournament submission. Well, it was fun while it lasted. --- If you've read this far, you may be the kind of poor sucker that would enjoy a paper I am writing on the mathmatics behind step-sizes. Originally it was going to just show that imp-pairs have the same optima score, but I found a couple of cute applications of Fibonacci numbers that might actually be useful. Eventually, this will become a .dvi file, but for right now it is just in plain-text, which makes all of the formulas quite difficult to read. I should have it finished and ready for peer review (?) within the next week. If you are interested in an evaluation copy, send me email. --- The origin of imp-rings has been called into question. It looks like Anders Ivner and Jonathan Roy invented this thing independently. Clearly, Anders was the first to make them succesful, but Jonathan's SuperImp certainly qualifies as an imp-ring. After Jonathan read chapter one of my book, he pointed this out to me, but I think he sent me the wrong file, because the code I got from him didn't look like one, so I dismissed it. Oops. Well, chapter 1 could use some patches now. --- ObCode: In the last issue, I presented some silly code that always lost. Keeping in this spirit, I now present the following for your amusement: ;redcode-94 verbose ;name test ;author Steven Morrell ;strategy Score low. ;strategy Sort of a Nimbus rip-off. org boot step equ 381 impoff equ 7015+2667 ccoff equ 7000 for 57 stp #0,-5 djn.f -1,{-2 imp mov.i #step,*0 boot mov imp,cc+impoff mov cc+4,cc+ccoff+4 mov {-1,<-1 mov {-2,<-2 mov {-3,<-3 mov {-4,<-4 spl 1 mov -1,0 spl 1 spl 1 spl 1 spl <0,last+1 jmp @last,{0 jmp cc+ccoff+4,cc+ccoff+3 jmp cc+impoff+step*45,cc+impoff+step*44 jmp cc+impoff+step*43,cc+impoff+step*42 jmp cc+impoff+step*41,cc+impoff+step*40 jmp cc+impoff+step*39,cc+impoff+step*38 jmp cc+impoff+step*37,cc+impoff+step*36 jmp cc+impoff+step*35,cc+impoff+step*34 jmp cc+impoff+step*33,cc+impoff+step*32 jmp cc+impoff+step*31,cc+impoff+step*30 jmp cc+impoff+step*29,cc+impoff+step*28 jmp cc+impoff+step*27,cc+impoff+step*26 jmp cc+impoff+step*25,cc+impoff+step*24 jmp cc+impoff+step*23,cc+impoff+step*22 jmp cc+impoff+step*21,cc+impoff+step*20 jmp cc+impoff+step*19,cc+impoff+step*18 jmp cc+impoff+step*17,cc+impoff+step*16 jmp cc+impoff+step*15,cc+impoff+step*14 jmp cc+impoff+step*13,cc+impoff+step*12 jmp cc+impoff+step*11,cc+impoff+step*10 jmp cc+impoff+step*9,cc+impoff+step*8 jmp cc+impoff+step*7,cc+impoff+step*6 jmp cc+impoff+step*5,cc+impoff+step*4 jmp cc+impoff+step*3,cc+impoff+step*2 last jmp cc+impoff+step,cc+impoff end This is just a big imp-ring and a core-clear. The first thing you will notice when you run this is that the timing is all wrong if you want to win against paper, scissors or stones. However, it does very well against heavy 3-pt or 7-pt imps and actually beat Impfinity! I used this idea in the first warrior I ever entered into a tournament, and because none of the programs were Impfinity, I scored very low. The results and source code from that tournament seem to have disappeared, thankfully. But I still think it would be a clever idea for a warrior if the timing could be fixed. --- If you are wondering why I put all of this tripe into one unconscionable posting rather than dividing it into many pathetic posts, I shall explain. I haven't figured out how to reply to posts via the Stormking server, and writing well-formed sentences on a remote computer is difficult at 2400 baud. By the time the screen is uptaded after a page move, I have forgotten what the last screen was even takling about. --- My corewar input will dwindle for the next few weeks as I spend all my time studying for oral exams. I may have to hack a few programs to stay on the hill, but the really clever ideas that I have, like an optimal quick-scan or an on-axis scanner/imp killer will probably have to stay on hold for a while. I hope everybody is still around in May! --- Well, that concludes another newsletter. You made it all the way through. Congratulations! Have John Wilkinson give you a kudos bar! --- John K. Morrell (to avoid confusion) morrell@math.utah.edu --- Finally, a newsletter all about ME!!!