From: Paul-V Khuong Subject: Re: Round 8 rules and deadline Date: 1999/03/01 Message-ID: <19990301215335.17752.rocketmail@send1e.yahoomail.com>#1/1 Ian Oversby wrote: > > Round 8 Rules > > The final round of the tournament is a slight variation on the > standard '94 rules. However, it is perhaps enough of a variation > to make things interesting. Processes are limited to 64 and the > coresize is 8001. Otherwise, the parameters are the same as the > '94 draft hill - 80000 cycles, 100 warrior length, p-space > allowed, 3 points for a win, 1 point for a tie... > > Each warrior will fight 400 battles against each other warrior. > 200 will be as first warrior, 200 as second. The average of > the two scores will be the score for the warrior. There will > be no self-fights. This is standard... > > The deadline for this round is: > _Thursday_ 11th March 1999 23:59:59 > > Does anyone have any hints, any mod-numbers? I noticed that in > the other two rounds where authors provided hints, those authors > came first. Perhaps this is something to think about. First, no imps, right? Second, expect any good strategy in 94 to be good there... Sooo, do a Q^2 -> stone+paper(paper instead of imp...) so that i can all beat you!! Ahahaha!!! Really, i'm thinking of something like that 8) Shit! gave my strategy! 8( == Vive le Qu�bec libre... d� souverainistes!!! _________________________________________________________ DO YOU YAHOO!? Get your free @yahoo.com address at http://mail.yahoo.com From: "Ian Oversby" Subject: Round 8 rules and deadline Date: 1999/03/01 Message-ID: #1/1 Round 8 Rules The final round of the tournament is a slight variation on the standard '94 rules. However, it is perhaps enough of a variation to make things interesting. Processes are limited to 64 and the coresize is 8001. Otherwise, the parameters are the same as the '94 draft hill - 80000 cycles, 100 warrior length, p-space allowed, 3 points for a win, 1 point for a tie... Each warrior will fight 400 battles against each other warrior. 200 will be as first warrior, 200 as second. The average of the two scores will be the score for the warrior. There will be no self-fights. The deadline for this round is: _Thursday_ 11th March 1999 23:59:59 Does anyone have any hints, any mod-numbers? I noticed that in the other two rounds where authors provided hints, those authors came first. Perhaps this is something to think about. Ian ______________________________________________________ Get Your Private, Free Email at http://www.hotmail.com From: "Ian Oversby" Subject: Round 7 Results and Commentary Date: 1999/03/01 Message-ID: #1/1 Round 7 Results and Commentary Just four people entered round 7. They were Robert Macrae, John Metcalf, Paul_V Khuong and Christian Schmidt. Congratulations to John Metcalf for winning this round. Laugh-all-you-like scored 100% wins over sliver. Christian Schmidt wasn't too far behind which placed him in first place overall with almost a 15 point lead over 2nd place Macrae. This means that there are three contendors for 1st place. Pihlaja has only 5 scores so his next warrior counts full. If he scores more than 75, he wins. Macrae must score 15 points more than Schmidt and more than 85 and have Pihlaja score less than 61 (or not enter). I hope this has clarified everything. The score table and strategy lines are below and the rules and deadline for Round 8, the final round should also appear shortly in the newsgroup. Regards, Ian ;redcode-94 ;name Last Laugh 2 ;author Robert Macrae ;strategy Quickvamp + Tiny Vamp with Thorough Trap ;strategy -- Hope that, once I win, I win for good! ; Hmmm... with only 20 minutes to the deadline, I don't have much ; room to get clever. I have moved some code a little in case ; anyone picks a tuned counter. Shame really -- this strategy can ; be improved enormously. My favourite would be a really heavy ; defensive Silk-Imp to cover the losses, and something like a ; washing HSA to follow up the wins... Ho hum. ; If I'm losing, I launch a small vampire. ; If I'm winning, I try a small quickvamp first. ; Hope I haven't missed a killer strategy... ;redcode ;name Laugh-all-you-like ;author John Metcalf ;strategy Trying to write something unexpected again! Comprehensive ;strategy testing showed it neither suicides or refuses to assemble. for 0 Unrolled stun bombing loop with p-spaced entry-point, -> dclear. Slightly better scorewise than no enty at all! Doesn't throw a bomb until the four cycle and no doubt everyone else will throw a bomb on their second by storing the location to bomb in p-space :-( However, it probably has one advantage over all other entries! It took me 20 mins to write, and I can go cycling while everyone else is still coding ;-) rof ;redcode ;name sliver ;assert 1 ;author Paul-V Khuong ;email: pkhuong@technologist.com ;strat 2 clear, 1 big and 1 little. The big one checks for incoming clears ;redcode-94 ;name Digital DNA ;author Christian Schmidt ;strategy stone,clear ;assert 1 ;After loading the gameclock, two 2c Quickbomber try to hit ;the enemy before booting. In the meanwhile two d-clears are ;booted away to a point which is set by the gameclock. The ;start of them are delayed until the qbombers are finished. Scores after Round 7 Rank Author Round 7 Normalised Normalised Score Round 7 Score Total Score 1. Christian Schmidt 1413 92.84 515.02 2. Robert Macrae 829 54.47 501.32 3. Joonas Pihlaja 0 0 470.8 4. W. F. B. 0 0 378.26 5. Paul-V Khuong 650 42.71 307.91 6. Steve Gunnell 0 0 270.06 7. Andrew Mehlos 0 0 252.99 8. Robert Hale 0 0 245.24 9. David Moore 0 0 225.97 10. Josh Yeager 0 0 163.73 11. John Metcalf 1522 100 139.96 12. Philip Kendall 0 0 128.27 13. Simon Duff 0 0 63.57 ______________________________________________________ Get Your Private, Free Email at http://www.hotmail.com From: Richard Rognlie Subject: C++Robots Standings -- 1999.03.01 Date: 1999/03/01 Message-ID: <36DAA45C.55452040@gamerz.net>#1/1 Program Name Score W / L / T Age Author ================ ===== =========== === ===================================== 1 katty 249 83/ 17/ 0 41 cfrim@ac.tuiasi.ro (catalin ifrim) 2 shogun 246 82/ 18/ 0 4 3r5k1n3@mail.rivnet.net (Michael J. E 3 ess 240 80/ 20/ 0 1 3r5k1n3@mail.rivnet.net (Michael J. E 4 ttr3 228 76/ 24/ 0 40 traber@cosinet.de (Thomas Traber) 5 tommy 216 72/ 28/ 0 65 zcewj@cnfd.pgh.wec.com (Elliot W. Jac 6 bedtime 168 56/ 44/ 0 18 btb@micron.net (TheRooster) 7 angus2 162 53/ 44/ 3 11 andy_grant@adc.com (Andy Grant) 8 trex 159 53/ 47/ 0 24 jerome.dumonteil@capway.com (Jerome D 9 ssm4 150 50/ 50/ 0 223 enpch@bath.ac.uk (C Harrison) 9 polarbear 150 50/ 50/ 0 13 flandar@yahoo.com (Aaron Judd) 11 kiilbot1 141 47/ 53/ 0 194 bob2@goplay.com (bob2) 12 shooter 138 46/ 54/ 0 255 itdcjr@mail1.hants.gov.uk (Justin Row 13 mariner 126 42/ 58/ 0 286 zcpjm@cnfd.pgh.wec.com (Paul J. Melko 13 chaos 126 42/ 58/ 0 191 agondare@hotmail.com (alex gondarenko 13 krom 126 42/ 58/ 0 163 tdavis@gate.net (Thomas E. Davis) 16 knownaim00 123 41/ 59/ 0 108 c.d.wright@solipsys.compulink.co.uk ( 17 prio.2 118 39/ 60/ 1 151 oliver@jowett.manawatu.planet.co.nz ( 18 doubleshooter 97 30/ 63/ 7 175 mario.deweerd@ibm.net (Mario De Weerd 19 raystonn 93 29/ 65/ 6 130 svincent@a.crl.com (Samuel Vincent) 20 fodder0 78 26/ 74/ 0 85 christopher.meehan@reuters.com (C_MEE Visit http://www.gamerz.net/c++robots/ for details on playing C++Robots. -- / \__ | Richard Rognlie / Sendmail Consultant / Sendmail, Inc. \__/ \ | URL: http://www.gamerz.net/rrognlie/ / \__/ | Give a man a fish, and he'll be hungry tomorrow. Teach a \__/ | man to fish, and he'll be at the river all day drinking beer. From: KOTH Subject: KOTH.ORG: Status - ICWS Experimental 94 03/01/99 Date: 1999/03/01 Message-ID: <199903010500.AAA28619@midgaard.ttsg.com>#1/1 Weekly Status on 03/01/99 -=- www.KOTH.org is now hosting a '94 No Pspace Hill. -=- View the stats of all the Hills at: www.KOTH.org/standings.html -=- *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 Dec 23 11:27:59 EST 1998 # %W/ %L/ %T Name Author Score Age 1 55/ 32/ 14 Black Moods Ian Oversby 178 3 2 53/ 29/ 17 Controlled Aggression Ian Oversby 177 7 3 39/ 16/ 45 Venom v0.2b Christian Schmidt 161 29 4 31/ 6/ 64 Evol Cap 4 X John Wilkinson 156 76 5 28/ 2/ 69 Evolve X v4.0 John Wilkinson 154 24 6 31/ 19/ 50 Rosebud Beppe 142 55 7 38/ 38/ 24 Dr. Gate X Franz 139 47 8 38/ 44/ 18 Tsunami v0.3 X Ian Oversby 132 1 9 34/ 38/ 28 BigBoy Robert Macrae 130 101 10 39/ 49/ 13 S.E.T.I. 4-X JKW 129 77 11 35/ 42/ 23 Stepping Stone 94x Kurt Franke 127 62 12 38/ 49/ 14 BiShot Christian Schmidt 127 15 13 33/ 41/ 26 Dr. Recover Franz 126 46 14 22/ 20/ 58 Sphere v0.2 Christian Schmidt 125 18 15 35/ 46/ 20 Pagan John K W 124 61 16 35/ 46/ 19 Memories Beppe Bezzi 124 83 17 31/ 38/ 31 Lithium X 8 John K Wilkinson 123 67 18 23/ 24/ 53 Purple v0.1 Christian Schmidt 123 28 19 37/ 55/ 8 HSA Copy 55440 Robert Macrae 120 44 20 33/ 45/ 22 13 Christian Schmidt 120 14 21 31/ 49/ 19 Clipped Star John Metcalf 114 0 From: KOTH Subject: KOTH.ORG: Status - MultiWarrior 94 03/01/99 Date: 1999/03/01 Message-ID: <199903010500.AAA28614@midgaard.ttsg.com>#1/1 Weekly Status on 03/01/99 -=- www.KOTH.org is now hosting a '94 No Pspace Hill. -=- View the stats of all the Hills at: www.KOTH.org/standings.html -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG Multiwarrior 94 CoreWar Hill: Last battle concluded at : Fri Feb 19 13:29:59 EST 1999 # Name Author Score Age 1 YoMaSoPoorBurglarsLeave$$ David Moore 40 8 2 YourMamaGotOneLegAndABike David Moore 38 11 3 YoMamaBeepsWhenSheBacksUp David Moore 35 5 4 YoMaSoUglySheMakeOnionCry dm 31 4 5 YourMamaSoFatSheWearATent David Moore 31 9 6 YoMamaLikeABus75cent/Ride David Moore 30 15 7 YoMamaSoFatSheShowOnRadar David Moore 29 14 8 YourMomSoFatSheSellsShade David Moore 27 12 9 YoMamaPutOnMakeupWithAMop Your Mom 26 3 10 YourPapaWorksForMicrosoft Someone Else 11 1 11 test CS 1 0 From: KOTH Subject: KOTH.ORG: Status - 94 No Pspace 03/01/99 Date: 1999/03/01 Message-ID: <199903010500.AAA28630@midgaard.ttsg.com>#1/1 Weekly Status on 03/01/99 -=- www.KOTH.org is now hosting a '94 No Pspace Hill. -=- View the stats of all the Hills at: www.KOTH.org/standings.html -=- *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 : Tue Feb 23 17:59:31 EST 1999 # %W/ %L/ %T Name Author Score Age 1 35/ 29/ 36 The Stormbringer Christian Schmidt 140 105 2 44/ 49/ 7 He Scans Alone P.Kline 140 17 3 34/ 29/ 37 Baseline Plus Ken Espiritu 140 152 4 34/ 30/ 36 Fixed Ken Espiritu 138 154 5 33/ 28/ 39 Vain Ian Oversby 138 171 6 33/ 29/ 37 Recovery Ian Oversby 137 94 7 33/ 30/ 37 Blacken Ian Oversby 136 81 8 41/ 47/ 13 Win! David Moore 135 69 9 25/ 14/ 61 _romanian_killah_ Costin Bontas rulez 135 63 10 38/ 41/ 22 Boys are Back in Town 1.1 Philip Kendall 134 96 11 42/ 50/ 8 He Scans Anew P.Kline 133 22 12 29/ 24/ 47 spooky wench+10 John Metcalf 133 1 13 24/ 14/ 62 The Fugitive David Moore 133 173 14 34/ 37/ 29 Liquid Fire Christian Schmidt 132 67 15 39/ 47/ 14 Red Carpet David Moore 130 112 16 35/ 40/ 25 Floody River P.Kline 130 120 17 34/ 38/ 29 BiShot v1.0 Christian Schmidt 129 3 18 31/ 33/ 36 Head or Tail Christian Schmidt 129 142 19 28/ 28/ 44 Brigadeer M Joonas Pihlaja 129 90 20 28/ 29/ 43 Gemini Dream John K Wilkinson 126 177 21 27/ 33/ 40 yat bjoern guenzel 121 0 From: KOTH Subject: KOTH.ORG: Status - Standard 03/01/99 Date: 1999/03/01 Message-ID: <199903010500.AAA28607@midgaard.ttsg.com>#1/1 Weekly Status on 03/01/99 -=- www.KOTH.org is now hosting a '94 No Pspace Hill. -=- View the stats of all the Hills at: www.KOTH.org/standings.html -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG Standard KotH CoreWar Hill : Last battle concluded at : Sat Feb 13 12:55:19 EST 1999 # %W/ %L/ %T Name Author Score Age 1 34/ 20/ 46 Freight Train David Moore 148 39 2 29/ 22/ 49 Guardian Ian Oversby 137 38 3 38/ 40/ 22 Stasis David Moore 135 146 4 28/ 22/ 50 sIMPly.Red v0.90 Leonardo Humberto 135 3 5 40/ 45/ 16 Iron Gate Wayne Sheppard 134 364 6 36/ 37/ 27 PacMan David Moore 134 68 7 40/ 46/ 15 Blurstone '88 M. J. Pihlaja 134 33 8 38/ 44/ 18 Foggy Swamp Beppe Bezzi 133 35 9 36/ 41/ 22 Beholder's Eye V1.7 W. Mintardjo 132 314 10 32/ 35/ 33 Leapfrog David Moore 130 67 11 35/ 39/ 26 Tangle Trap David Moore 131 112 12 38/ 44/ 18 Blur '88 Anton Marsden 131 76 13 26/ 21/ 53 The Marlboro Man 1.13 M Joonas Pihlaja 130 14 14 23/ 16/ 61 EV Paper John K Wilkinson 129 52 15 33/ 37/ 29 Kitchen Sink Robert Macrae 129 37 16 21/ 19/ 60 Test I Ian Oversby 124 95 17 22/ 21/ 58 Evoltmp 88 John K W 123 89 18 16/ 11/ 74 Trident^2 '88 John K W 120 62 19 20/ 19/ 61 Nightfall 2.1cc David Moore 120 2 20 21/ 24/ 55 Rocking-Chair v0.57 Leonardo Humberto 118 1 21 18/ 23/ 60 Rocking-Chair v0.58 Leonardo Humberto 113 0 From: Paul-V Khuong Subject: Re: Round 8 Date: 1999/03/02 Message-ID: <19990302134455.9828.rocketmail@send102.yahoomail.com>#1/1 John Metcalf wrote: > > > First, no imps, right? > > No standard 3 or 7 point imps, but: > > iStep = 4001 (2 point) iStep = 6401 (5 point) > iStep = 5819 (11 point) iStep = 1231 (13 point) Yeah, so no good imps, as there's only not-that-much-points imps(easily killed) and heavy imps(takes a big portion of your processes)... the 5 point one seems good, though. > > Second, expect any good strategy in 94 to be good there... > > Remember the 64 process limit though. Well, there's been papers in 8-process environment, right? There just won't be any silks, only good ol' mov/jmz/spl/dat papers, like "when i was young, in the times of the '88 standard and th youth of the '94 one... Not like now, bal bla bla..." 8), so that's better for bombers/scanners... And it's impossible to stun a well made warrior: Have 64 processes used and SPLs wil be just as NOPs. Oh, and the best bomb is Jmp #0 or any variant... > 2469, 2829, 1353 and 1173 look like okay mod-3 numbers, but > you'll probably want to calculate your own. > Mod 3!! Cool, my dream! == Vive le Qu�bec libre... d� souverainistes!!! _________________________________________________________ DO YOU YAHOO!? Get your free @yahoo.com address at http://mail.yahoo.com From: Benjamin C Ford Subject: Re: Round 8 rules and deadline Date: 1999/03/02 Message-ID: <199903021444.JAA02850@moe.rose-hulman.edu>#1/1 Pal wrote: > Ian Oversby wrote: > > > > Round 8 Rules > > > > The final round of the tournament is a slight variation on the > > standard '94 rules. However, it is perhaps enough of a variation > > to make things interesting. Processes are limited to 64 and the > > coresize is 8001. Otherwise, the parameters are the same as the > > '94 draft hill - 80000 cycles, 100 warrior length, p-space > > allowed, 3 points for a win, 1 point for a tie... > > Does anyone have any hints, any mod-numbers? I noticed that in > > the other two rounds where authors provided hints, those authors > > came first. Perhaps this is something to think about. > First, no imps, right? Sure there are imps. They just have to be either 2-point or 4001-point. Since the 4001 point imps aren't really workable, just have to worry about the 2-pointers (step size 4001). > Second, expect any good strategy in 94 to be good there... Well, with the 64 process max, I would think that good strategies would be closer to LP strategies. Normal paper and self-splitting stones don't work as well. The available mod numbers are 3, 7, 9, 21, 127, 147, and some other larger ones. That makes things interesting. Mod-3 is too small to avoid self-bombing for most existing bombers, but mod 7 or 9 misses a lot. The process limit could mean that jmp 0 bombs are better than spl 0 bombs. -Ben From: John Metcalf Subject: Re: Round 8 rules and deadline Date: 1999/03/02 Message-ID: #1/1 > First, no imps, right? No standard 3 or 7 point imps, but: iStep = 4001 (2 point) iStep = 6401 (5 point) iStep = 5819 (11 point) iStep = 1231 (13 point) > Second, expect any good strategy in 94 to be good there... Remember the 64 process limit though. 2469, 2829, 1353 and 1173 look like okay mod-3 numbers, but you'll probably want to calculate your own. Cheers, John From: David Matthew Moore Subject: Re: Round 8 rules and deadline Date: 1999/03/02 Message-ID: <7bgt7o$61o$1@msunews.cl.msu.edu>#1/1 Ian Oversby wrote: : Round 8 Rules... : Processes are limited to 64 and the coresize is 8001... : Does anyone have any hints? Ian, _______ _______ _______ _________ _______ _______ _ |\ /|( ___ )( )( ____ )\__ __/( ____ )( ____ \( ) | ) ( || ( ) || () () || ( )| ) ( | ( )|| ( \/| | | | | || (___) || || || || (____)| | | | (____)|| (__ | | ( ( ) )| ___ || |(_)| || _____) | | | __)| __) | | \ \_/ / | ( ) || | | || ( | | | (\ ( | ( (_) \ / | ) ( || ) ( || ) ___) (___| ) \ \__| (____/\ _ \_/ |/ \||/ \||/ \_______/|/ \__/(_______/(_) Sincerely, David. From: myrddin@iosys.net (Myrddin Emrys) Subject: Re: Beta testers wanted for new programming game Date: 1999/03/02 Message-ID: <36debe09.11384330@news.inc.net>#1/1 On Sun, 28 Feb 1999 19:12:43 -0500, we received this message from "Dan Pronovost" : >Would you like to play test a >new computer game that involves >programming robots with basic >survival strategy? Do you have >the talent to design a team >of robots in C or C++ that can >defeat your opponents? If so, >then take this opportunity to become >a Beta Tester for the programming >game RoboWars! The investment cost for creating a single bot is too high. I don't have a compiler, can't afford one, and I don't have the free time to learn how lcc or whatever works. If you intend on SELLING a bot game such as that (and want to actually make a profit) then I recommend making an interpreter. The idea of a ANSI C interpreter (such as is being used for Quake 3 Arena) appeals to me greatly. I recommend you use either Java (if you don't run afoul of the license) or a C interpreter. Neither are trivial tasks, both require much more work on your part than simply writing an API and expecting the buyer of your game to do the hard work of writing for your API. Both those languages (C or Java) are flexible and popular, thus you help teach programming technique, syntax, and style that is useful in the real world as well... unlike a proprietary language. Personally, I'd love to see such a game written for the Windows Scripting Host... there you have the ultimate in flexibility, with VB and JS standard, and several other languages available for download. However in such an environment controlling the time sharing could be a complicated thing, and several conveniences of more powerful programming languages are lost. Myrddin From: Paul Kline Subject: re: 3-line stones Date: 1999/03/03 Message-ID: <36DDE18E.5A9B@acad.drake.edu>#1/1 Benjamin Ford wrote: > I've got a few code snippets to share. They probably > are a bit simple for most but who knows. > The first is a slight improvement to the Alladin's > Cave style stone found in Recycled Bits--. > > old: new: > stone mov > 4414, 5428 | stone mov > 4414, 5428 > add.f 1, -1 | add.f 1, * 1 > jmp -2, 5427 | jmp -2, 5427 Actually that stone was independently derived. Alladin's stone was: sStep equ 4954 Stone mov {1601 ,1-sStep sub.x #sStep ,-1 jmp -2 ,}-2 There are several step-mutating Alladin-type stones such as: sStep equ 3054 Stone mov {1481 ,1-sStep sub.x #sStep ,-1 jmp -2 ,}-2 sStep equ 2046 Stone mov }1605 ,1-sStep sub.x #sStep ,-1 jmp -2 ,}-2 I made a laborious pass through the NUM8000.DAT spreadsheet looking for numbers that could be inc/decremented six times, each new number used to point 4000 bombs without bombing the original code. I do not have any notes on 5427 or 2573 (8000-5427), so obviously there are numerous steps available. I failed to find one that sequenced through any of the popular imp-steps - 2667, 889, 1143, or 5091, which might have been very interesting. Paul Kline pk6811s@acad.drake.edu From: Tony Subject: Newbie on the scene :) Date: 1999/03/03 Message-ID: <36DDBEFB.2FD8CF90@saffire.com>#1/1 Hello from a core wars newbie. While knowing OF core wars since 91 92, I just recently decided to try actually writing a warrior. I have read most of the guides and some FAQs, though I still have a few questions, either from bad examples or my lack of understanding redcode. (hopefully this is the right forum to post these). 1. Indirect addressing: It may just be I'm confused because of the way different opCodes handle their argument parsing. But if you the following code, which will be the final code? original A B ------- ------ ------- dat #2 #1 dat #2, #1 dat #2, #1 mov.i @-1, 1 mov.i @-1, 1 mov.i @-1,1 dat 0,0 dat #2, #1 dat 0,0 dat 0,0 dat 0,0 dat #2, #1 also would it make a difference if the MOV command was: mov >-1, 1 or mov }-1, 1. (other than any post incrementing that goes on) In otherwords, would sometimes this MOV command referece the A field to find which instruction to move and other times reference the B based on the indirect mode you use? 2. A quick question on a Stun bomb code I found in a FAQ: Incendiary Bomb A type of Stun bomb which creates a SPL 0 carpet. example spl 0, 8 mov -1, <-1 Wouldn't this code just put a bunch of SPL commands from 7 spaces away Backwards to example? thus overwriting your mov command? So the final code would look like this: example spl 0,0 spl 0, 1 spl 0,2 spl 0,3 spl 0, 4 spl 0, 5 spl 0,6 spl 0, 7 Thanx in advance for any help tony From: John Metcalf Subject: Multiwarrior hill Date: 1999/03/03 Message-ID: #1/1 Hmmm... looks like the killed strategy for the multi-warrior has been found by a GA! The current MultiWarrior ICWS '94 Draft hill: Last battle concluded at : Wed Mar 3 04:00:32 EST 1999 # Name Author Score Age 1 S-888 Genetic 174 1 2 YourMamaSoFatSheWearATent David Moore 7 11 3 YourMamaGotOneLegAndABike David Moore 6 13 4 YoMaSoUglySheMakeOnionCry dm 5 6 5 YoMaSoPoorBurglarsLeave$$ David Moore 4 10 6 Pattel's Virus Ben Ford 4 2 7 YourMomSoFatSheSellsShade David Moore 4 14 8 YoMamaSoFatSheShowOnRadar David Moore 3 16 9 YoMamaLikeABus75cent/Ride David Moore 2 17 10 YoMamaBeepsWhenSheBacksUp David Moore 2 7 11 0 0 0 0 From: "Ian Oversby" Subject: My other idea for round 8... Date: 1999/03/03 Message-ID: #1/1 I was actually considering specifying a core-size of 7993 or 8009. Do you think that would have been more interesting ? Ian ______________________________________________________ Get Your Private, Free Email at http://www.hotmail.com From: Paul-V Khuong Subject: Re: Beta testers wanted for new programming game[pretty much OT] Date: 1999/03/03 Message-ID: <19990303132557.18224.rocketmail@send104.yahoomail.com>#1/1 Myrddin Emrys wrote: > > On Sun, 28 Feb 1999 19:12:43 -0500, we received this message from > "Dan Pronovost" : > > >Would you like to play test a > >new computer game that involves > >programming robots with basic > >survival strategy? Do you have > >the talent to design a team > >of robots in C or C++ that can > >defeat your opponents? If so, > >then take this opportunity to become > >a Beta Tester for the programming > >game RoboWars! Sure. The concept is old, old, old... > The investment cost for creating a single bot is too high. I don't > have a compiler, can't afford one, and I don't have the free time to > learn how lcc or whatever works. GCC, about 3 hours to download. Use RHIDE go to the like 3rd menu and choose compile. It's that easy! > If you intend on SELLING a bot game such as that (and want to actually > make a profit) then I recommend making an interpreter. The idea of a > ANSI C interpreter (such as is being used for Quake 3 Arena) appeals > to me greatly. I recommend you use either Java (if you don't run afoul > of the license) or a C interpreter. Neither are trivial tasks, both > require much more work on your part than simply writing an API and > expecting the buyer of your game to do the hard work of writing for > your API. > > Both those languages (C or Java) are flexible and popular, thus you > help teach programming technique, syntax, and style that is useful in > the real world as well... unlike a proprietary language. Personally, > I'd love to see such a game written for the Windows Scripting Host... > there you have the ultimate in flexibility, with VB and JS standard, > and several other languages available for download. However in such an > environment controlling the time sharing could be a complicated thing, > and several conveniences of more powerful programming languages are > lost. No, it'd be better to use something like PCRobots, where the arena program traps for its software interrupt and echoes the rest to the program as a response. This way, you can use any language you like, even an interpreted one! though, it'd be better to use some memory location or a file for that, this way, even windows languages can be used... Oh, and is it me, or a pure dos game would be more fair than a windows one. See, you can change the priority windows gives to your program if you know the code... It's even possible to make your program have 100% processing power... It'd better to have you make a .lib of your program and link the two at play... == Vive le Qu�bec libre... d� souverainistes!!! _________________________________________________________ DO YOU YAHOO!? Get your free @yahoo.com address at http://mail.yahoo.com From: Paul-V Khuong Subject: Re: Beta testers wanted for new programming game[pretty much OT] Date: 1999/03/03 Message-ID: <19990303132609.18360.rocketmail@send104.yahoomail.com>#1/1 Myrddin Emrys wrote: > > On Sun, 28 Feb 1999 19:12:43 -0500, we received this message from > "Dan Pronovost" : > > >Would you like to play test a > >new computer game that involves > >programming robots with basic > >survival strategy? Do you have > >the talent to design a team > >of robots in C or C++ that can > >defeat your opponents? If so, > >then take this opportunity to become > >a Beta Tester for the programming > >game RoboWars! Sure. The concept is old, old, old... > The investment cost for creating a single bot is too high. I don't > have a compiler, can't afford one, and I don't have the free time to > learn how lcc or whatever works. GCC, about 3 hours to download. Use RHIDE go to the like 3rd menu and choose compile. It's that easy! > If you intend on SELLING a bot game such as that (and want to actually > make a profit) then I recommend making an interpreter. The idea of a > ANSI C interpreter (such as is being used for Quake 3 Arena) appeals > to me greatly. I recommend you use either Java (if you don't run afoul > of the license) or a C interpreter. Neither are trivial tasks, both > require much more work on your part than simply writing an API and > expecting the buyer of your game to do the hard work of writing for > your API. > > Both those languages (C or Java) are flexible and popular, thus you > help teach programming technique, syntax, and style that is useful in > the real world as well... unlike a proprietary language. Personally, > I'd love to see such a game written for the Windows Scripting Host... > there you have the ultimate in flexibility, with VB and JS standard, > and several other languages available for download. However in such an > environment controlling the time sharing could be a complicated thing, > and several conveniences of more powerful programming languages are > lost. No, it'd be better to use something like PCRobots, where the arena program traps for its software interrupt and echoes the rest to the program as a response. This way, you can use any language you like, even an interpreted one! though, it'd be better to use some memory location or a file for that, this way, even windows languages can be used... Oh, and is it me, or a pure dos game would be more fair than a windows one. See, you can change the priority windows gives to your program if you know the code... It's even possible to make your program have 100% processing power... It'd better to have you make a .lib of your program and link the two warrios to your program at play... == Vive le Qu�bec libre... d� souverainistes!!! _________________________________________________________ DO YOU YAHOO!? Get your free @yahoo.com address at http://mail.yahoo.com From: Paul-V Khuong Subject: Re: Round 8 Date: 1999/03/03 Message-ID: <19990303133622.24443.rocketmail@send104.yahoomail.com>#1/1 David Matthew Moore wrote: > > Ian Oversby wrote: > : Round 8 Rules... > > : Processes are limited to 64 and the coresize is 8001... > : Does anyone have any hints? > > > Ian, > > _______ _______ _______ _________ _______ _______ _ > |\ /|( ___ )( )( ____ )\__ __/( ____ )( ____ \( ) > | ) ( || ( ) || () () || ( )| ) ( | ( )|| ( \/| | > | | | || (___) || || || || (____)| | | | (____)|| (__ | | > ( ( ) )| ___ || |(_)| || _____) | | | __)| __) | | > \ \_/ / | ( ) || | | || ( | | | (\ ( | ( (_) > \ / | ) ( || ) ( || ) ___) (___| ) \ \__| (____/\ _ > \_/ |/ \||/ \||/ \_______/|/ \__/(_______/(_) > Cool graphics(Oh, if the vampire graphic is distorted "a bit", it's normal... Do you know what's the problem with vampire? Itr takes for line to attain process limit(this trick was used by pretty much everywarrior in other LP rounds in other tournaments). So, do some kind of multi part warrior(like QS-->bomber+paper). No vampire, clears can't slow you down much, scanners neither and bombers? right! == Vive le Qu�bec libre... d� souverainistes!!! _________________________________________________________ DO YOU YAHOO!? Get your free @yahoo.com address at http://mail.yahoo.com From: sylvester Subject: Re: Beta testers wanted for new programming game Date: 1999/03/03 Message-ID: <36DD9648.6DC45C3E@ns.sympatico.ca>#1/1 huh ? what game ? where ? From: TTSG Subject: STORMKING GOING AWAY TODAY!!!!! Date: 1999/03/04 Message-ID: <199903041455.JAA00750@heimdall.ttsg.com>#1/1 Hi, Sorry about this, but we just got word that Stormking is going to have a padlock put on the door Friday night. So, in a fire drill, we are trying to get everyone moved to the new list. Email : listproc@koth.org Subject: (Doesn't matter) Body : SUBSCRIBE COREWAR-L XXXXXXXXXX Where XXXXXXXX is your name, NOT email address You'll get duplicate messages for a day or two then it'll stop. Tuc/TTSG From: rgraham@hotmail.com (Randy Graham) Subject: Re: Newbie on the scene :) Date: 1999/03/04 Message-ID: <36de9306.252621340@enews.newsguy.com>#1/1 On 3 Mar 1999 22:32:31 -0500, Tony wrote: > Hello from a core wars newbie. While knowing OF core wars since 91 > 92, I > just recently decided to try actually writing a warrior. I have read > most of the guides > and some FAQs, though I still have a few questions, either from bad > examples or > my lack of understanding redcode. (hopefully this is the right forum >to > post these). I think almost all of us went through this same learning process and probably made most of the same mistakes. > 1. Indirect addressing: > It may just be I'm confused because of the way different opCodes > handle their argument parsing. But if you the following code, which > will be the final code? > > original A B > ------- ------ ------- > > dat #2 #1 dat #2, #1 dat #2, #1 > mov.i @-1, 1 mov.i @-1, 1 mov.i @-1,1 > dat 0,0 dat #2, #1 dat 0,0 > dat 0,0 dat 0,0 dat > #2, #1 Neither. You should end up with: dat #2, #1 mov.i @-1, 1 mov.i @-1,1 dat 0,0 That is, your mov command will look at the .b field of the instruction -1 from it (the dat #2, #1). It will take whatever that .b points to (which is one instruction forward from itself - thus the mov.i @-1,1), and move it one instruction forward from the original mov command. That sounds WAY confusing to me trying to write it out, so let me try another way. When the mars simulator runs the mov.i @-1,1 instruction, it gets decoded to say "Take whatever the .b field of the instruction 1 cell before me points to and move it to the cell one step past me." Hope that is good for something. I'm sure someone else will post a better answer. > also would it make a difference if the MOV command was: > mov >-1, 1 or mov }-1, 1. (other than any post incrementing that goes That would alter the .b field after the move in the first case but otherwise have no effect. For the second case, that would change what is moved (the instruction pointed to by the .a field instead of by the .b field) _AND_ increment the .a field after the move. > In otherwords, would sometimes this MOV command referece the A field > to find which instruction to move and other times reference the B based > on the indirect mode you use? The *,{, and } modes use the .a field as the pointer and the @, >, < modes use the .b field field as the pointer. > 2. A quick question on a Stun bomb code I found in a FAQ: > > Incendiary Bomb > A type of Stun bomb which creates a SPL 0 carpet. > > example spl 0, 8 > mov -1, <-1 > > Wouldn't this code just put a bunch of SPL commands from 7 spaces away > Backwards to example? thus overwriting your mov command? So the final > > code would look like this: > > example spl 0,0 > spl 0, 1 > spl 0,2 > spl 0,3 > spl 0, 4 > spl 0, 5 > spl 0,6 > spl 0, 7 That's exactly what that does. However, if that bomb gets planted in the middle of an opponent, the opponent will overwrites its own instructions with a bunch of spl commands, usually slowing it down so much that you could kill it later with a core-clear. > Thanx in advance for any help > > tony Randy From: Dan Ziegler Subject: Quick Newbie Question (forgive me!) Date: 1999/03/05 Message-ID: <36E07F3A.45B2@juno.com>#1/1 Hi there, I was wondering . . . is the starting locations for the two programs completely random? Or do they start half-way between each other? Thanks! --Dan From: iltzu@sci.fi (Ilmari Karonen) Subject: Re: My other idea for round 8... Date: 1999/03/05 Message-ID: <7bpk6g$qdk$1@tron.sci.fi>#1/1 On 3 Mar 1999 17:27:14 -0500, Ian Oversby (oversby@hotmail.com) wrote: : I was actually considering specifying a core-size of 7993 or 8009. : Do you think that would have been more interesting ? Or maybe 8191. And a low process limit just as a teaser, to make writing a stone in a prime coresize more attractive. Might be even more annoying if you made the limit so low that one can't have a decent spiral, like 16 or something.. -- Ilmari Karonen (iltzu@sci.fi) http://www.sci.fi/~iltzu/ From: John.Metcalf@p18.f94.chaos.camelot.co.uk (John Metcalf) Subject: Quick Newbie Question (forgive me!) Date: 1999/03/07 Message-ID: #1/1 Greetings... A> I was wondering . . . is the starting locations for the two A> programs completely random? Or do they start half-way between A> each other? The first program is placed in a fixed position at the first location of core and the second (and any further) programs are placed at a pseudo-random distance from this. You can set the seed for the random number generator so you can duplicate a sequence of start positions. This is useful for testing slightly different versions of your warrior to see which does best. Use the -F parameeter of pMars: pmarsv -F 1234 -r 500 hsa.red test1 pmarsv -F 1234 -r 500 hsa.red test2 From: Paul Kline Subject: Scanner test Date: 1999/03/07 Message-ID: <36E2AB99.CBD@acad.drake.edu>#1/1 I stumbled across a scanner strategy that held possibility for killing 3-point imps, and it works very well against Fugitive and "the romainian killah" (great name!) but not so well against other programs. The idea is that after finding something your next scan-step should be 2667, thus quickly wiping any 3-point imps out there, and permitting a simple one-pass dat-clear to finish. After finding dat-zero, use some optimal scan-step. The first person to post to rec.games.corewar an explanation of why this strategy has a fatal flaw against the Hill will receive a prize having the only true value in this game - code! I will send them a copy of clp-tiny, Curious Little Program in only nine lines. Here is the scanner that made a brief appearance on the no-pspace hill in last position: aStep equ (2667+4) aPtr aWipe mov aJmp ,1000 ; drop spl-jmp bomb mov aSpl , Archive-name: games/corewar-faq Last-Modified: August 5, 1998 =20 Version: 4.0 URL: http://www.mcs.vuw.ac.nz/~amarsden/corewars/corewar-faq.html Copyright: (c) 1998 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. The latest hypertext version is available at http://www.mcs.vuw.ac.nz/~amarsden/corewars/corewar-faq.html and the latest plain text version is available at=20 http://www.mcs.vuw.ac.nz/~amarsden/corewars/corewar-faq.txt. This document was last modified on August 5, 1998. It is currently being maintained by Anton Marsden (amarsden@mcs.vuw.ac.nz). ------------------------------------------------------------------------ To Do * Make question 17 easier to understand. Add a state diagram? * Upgrade to HTML 4.0, make FAQ easier to maintain in future (hopefully) * 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 the location of Ryan Coleman's paper (LaunchPad -> Launchpad) * Changed pauillac.inria.fr to para.inria.fr * Made some changes/additions/fixes based on a good FAQ review by Joonas Pihlaja. Not all of the suggestions have been dealt with yet, but the FAQ is now less ambiguous in some areas. Thanks Joonas! * Added stuff about pMARS under Win95 (question 9), and the location of = a HTML version of the ICWS'94 draft (question 5). * New definition: decrement resistant * Modified the answer to question 1 * Changed error in P-space question (location 0 can be written to). * Added links to genetic algorithm resources. * Added a link to Kendall's page. * Added new Q&A (code formatting). ------------------------------------------------------------------------ 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 o= f 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 virtua= l computer called MARS (for Memory Array Redcode Simulator). The object of th= e game is to cause all processes of the opposing program to terminate, leavin= g 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= =2E 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 =3D (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 i= s 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 th= e 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= =2E 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 =A90-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 =A90-7167-2144-9 .D5173 199= 0 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. 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 and ftp://www.koth.org/corewar/documents/tutorial.2. Steven Morrell has prepared a more practically oriented Redcode tutorial that discusses different warrior classes with lots of example code. This an= d 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'9= 4 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/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 onl= y 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 9= 4 Warrior, Core Warrior is a newsletter about strategies and current standing= s 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.geocities.com/SiliconValley/Park/5427/warrior.htm 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.answer= s (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 (Stormking 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 bod= y 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 Stormking.Com list processor. To join, send the message SUB COREWAR-L FirstName LastName to listproc@stormking.com. You can send mail to corewar-l@stormking.com to post even if you are not a member of the list. Responsible for the listserver is Scott J. Ellentuch (tuc@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 Stormking. [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 point= s 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 ha= s 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, KotH= s 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 overlappin= g 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 divide= d up among the sites. The way you submit warriors to both KotHs is pretty muc= h 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 tha= t 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 I= nstr. Size Size Processes Distance Fought = Set Tie Length Pizza's ICWS '94 Draft Hill Ex= tended (Accessed with 25 8000 8000 80000 100 100 200 IC= WS '94 ";redcode-94") Dr= aft Pizza's Beginner's Hill Ex= tended (Accessed with 25 8000 8000 80000 100 100 200 IC= WS '94 ";redcode-b") Dr= aft Pizza's Experimental Ex= tended (Small) Hill 25 800 800 8000 20 20 200 IC= WS '94 (Accessed with Dr= aft ";redcode-x") Pizza's Limited Process (LP) Ex= tended Hill (Accessed 25 8000 8 80000 200 200 200 IC= WS '94 with Dr= aft ";redcode-lp") Stormking's ICWS '88 Standard Hill 20 8000 8000 80000 100 100 250 IC= WS '88 (Accessed with ";redcode") Stormking's ICWS '94 Experimental Ex= tended (Big) Hill 20 55440 55440 500000 200 200 250 IC= WS '94 (Accessed with Dr= aft ";redcode-94x") Stormking's ICWS '94 Draft Multi-Warrior Ex= tended Hill (Accessed 10 8000 8000 80000 100 100 200 IC= WS '94 with Dr= aft ";redcode-94m") Notes: * 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 assemble= d 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 Cor= e 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 o= r 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, fo= r 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 tha= n 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 memor= y 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 o= f 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 p= ointer 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 nothin= g 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 locatio= ns seq start+400*s1+200, start+400*s1+300 ;check two locatio= ns 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 nothin= g 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 cop= y 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= =2E 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: IMPSIZE EQU 2667 example spl 1 ; extend by adding more spl = 1's spl 1 djn.a @imp, #0 ; jmp @ a series of pointers dat #0, imp+(3*IMPSIZE) dat #0, imp+(2*IMPSIZE) dat #0, imp+(1*IMPSIZE) dat #0, imp+(0*IMPSIZE) imp mov.i #0, IMPSIZE [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) The rec.games.corewar FAQ is Copyright =A9 1998 and maintained by Anton Marsden (amarsden@mcs.vuw.ac.nz). ------------------------------------------------------------------------ From: qute@trustme.dk (Anders Rosendal) Subject: Re: Scanner test Date: 1999/03/08 Message-ID: #1/1 Hello sylvester! Sunday March 07 1999 18:59, sylvester wrote to Paul Kline: > @Cache-Post-Path: klaatu.wolf!unknown@10.22.9.21 > @NNTP-Posting-Date: Sun, 07 Mar 1999 19:03:51 ADT > > >   >
ooooooooohhhhhhh >

I'm shivering ....... What did you write? Am I on the www?? I don't remember starting a browser. Hmmmm. From: Philip Kendall Subject: My pages have moved Date: 1999/03/08 Message-ID: #1/1 Hi guys & girls, As you may or may not know, Geocities decided on 18 Dec 98 that all sites related to game emulation were not allowed :-( This directly affects my pages due to my ZX Spectrum stuff, so I've moved my stuff, along with the Corewar pages from Geocities (http://www.geocities.com/SiliconValley/Park/5427/corewar.htm) to Demon: http://www.kendalls.demon.co.uk/pak21/corewar/index.html I suppose that as we are emulating a redcode machine, Geocities have just banned all Core War sites as well, but I doubt they're intelligent enough to realise that... Phil -- / Philip Kendall (pak21@cam.ac.uk pak21@kendalls.demon.co.uk) \ \ http://www.geocities.com/SiliconValley/Park/5427/corewar.htm / From: Christian Schmidt Subject: Core Warrior 71 Date: 1999/03/09 Message-ID: <36E55678.4ABB60@goofy.zdv.uni-mainz.de> .xX$$x. .x$$$$$$$x. d$$$$$$$$$$$ ,$$$$$$$P' `P' , . $$$$$$P' ' .d b $$$$$P b ,$$x ,$$x ,$$x ,$$b $$. Y$$$$' `$. $$$$$$. $$$$$$ $$P~d$. d$$$b d d$$$ `$$$$ ,$$ $$$$$$$b $$$P `$ $$$b.$$b `Y$$$d$d$$$' . . a . a a .aa . a `$$$ ,$$$,$$' `$$$ $$$' ' $$P$XX$' `$$$$$$$$$ .dP' `$'$ `$'$ , $''$ `$'$ `Y$b ,d$$$P `$b,d$P' `$$. `$$. , `$$P $$$' Y $. $ $ $ Y..P $ `$$$$$$$' $$$P' `$$b `$$$P `P `$' `Y'k. $. $. $. $$' $. Issue 71 8 March, 1999 _______________________________________________________________________________ Core Warrior is a newsletter promoting the game of corewar. Emphasis is placed on the most active hills - currently the '94 draft hill, the beginner hill and the '94 no-pspace hill. Coverage will follow where ever the action is. If you haven't a clue what I'm talking about then check out these five-star internet locals for more information: FAQs are available from: ftp://rtfm.mit.edu/pub/usenet/news.answers/games/corewar-faq.Z http://www.koth.org/corewar-faq.html The ftp site and mirrors are at: ftp://ftp.csua.berkeley.edu/pub/corewar ftp://ftp.inria.fr/INRIA/Projects/para/doligez/cw/mirror ftp://www.koth.org/corewar pMARS itself is also available from: http://www.koth.org/pmars.html ;Stormking http://www.ncs.infi.net/~wtnewton/corewar ;Terry's web page ftp://members.aol.com/ofechner/corewar ;Fechner ftp site Web pages are at: http://www.koth.org/ ;Stormking http://www.ecst.csuchico.edu/~pizza/koth ;Pizza http://para.inria.fr/~doligez/corewar ;Planar Newbies should check the Stormking page for the FAQ, language specification, guides, and tutorials. Post questions to rec.games.corewar. All new players are infinitely welcome! A collection of Bezzi's hints in the first issues is available at: ftp://ftp.volftp.vol.it/pub/pc/msdos/games/solutions/bbhints.zip _______________________________________________________________________________ Welcome... Everything has been very quiet since last issue, with the exception of some late activity on the Multi-Warrior hill. Kline has published a new scanner concept, Moore has retired and the tournament is drawing to a close, with just one more round to play. No hint this issue, forgive me ;-). However, I hope you are happy with the long-awaited code to Fixed and also an improved Q^2. -- John Metcalf _______________________________________________________________________________ Current Status of the Internet Pizza Server ICWS '94 Draft Hill: Hill Specs: coresize: 8000 max. processes: 8000 duration: after 80,000 cycles, a tie is declared. max. entry length: 100 minimum distance: 100 rounds fought: 200 instruction set: ICWS '94 Draft # %W / %L / %T Name Author Score Age 1 42.0/ 26.8/ 31.3 Fixed Ken Espiritu 157.2 3 2 45.7/ 34.3/ 20.0 Recycled Bits David Moore 157.1 3 3 39.1/ 23.6/ 37.2 Spooky Wench John Metcalf 154.6 3 4 42.6/ 31.6/ 25.7 The Conqueror Christian Schmidt 153.6 3 5 45.4/ 37.6/ 17.1 Pattel's Virus Ben Ford 153.2 3 6 39.4/ 27.7/ 32.9 The Stormbringer Christian Schmidt 151.2 3 7 32.0/ 15.8/ 52.2 The Fugitive David Moore 148.3 3 8 39.7/ 32.7/ 27.6 Fragility John Metcalf 146.6 3 9 37.6/ 28.8/ 33.6 Freight Train v0.2 David Moore 146.4 3 10 39.7/ 33.0/ 27.3 Digital Dragon Christian Schmidt 146.3 3 11 43.1/ 39.9/ 17.0 Silver Talon 1.2 Edgar 146.2 4 12 38.3/ 32.2/ 29.6 Twin Christian Schmidt 144.4 3 13 36.4/ 28.7/ 34.9 Shadow Christian Schmidt 144.1 3 14 32.2/ 20.6/ 47.1 Innocuous John Metcalf 143.9 1 15 39.3/ 36.5/ 24.2 trefoil 23 226 Steve Gunnell 142.1 13 16 40.5/ 39.1/ 20.4 Galatea Ben Ford 142.0 3 17 36.9/ 34.4/ 28.7 Strange Variations John Metcalf 139.5 3 18 32.3/ 27.9/ 39.9 delay 0.02b 50 bjoern guenzel 136.7 3 19 41.8/ 47.7/ 10.6 Silccon M. J. Pihlaja 135.8 13 20 40.1/ 46.9/ 13.0 Lost Again! David Moore 133.3 3 21 37.0/ 41.0/ 22.0 trefoil 28 558 Steve Gunnell 133.0 3 22 40.1/ 51.9/ 8.1 Boing! John Metcalf 128.3 3 23 36.1/ 44.3/ 19.5 Ice Pick Willie Ben Ford 128.0 3 24 36.7/ 46.4/ 16.8 Reconnaissance Ben Ford 127.1 3 25 31.2/ 36.0/ 32.8 Bond, James Bond Ben Ford 126.3 2 Age since last issue: 69 ( 33 last issue, 13 the issue before ) New warriors: 25 Turnover/age rate 36% Average age: 3 ( 46 last issue, 36 the issue before ) Average score: 143 ( 140 last issue, 138 the issue before ) The top 25 warriors are represented by just 9 independent authors: Schmidt, Ford and Moore with 5 each, Metcalf with 4, Gunnell with 2 and the rest with just one warrior each. What can I say? The hill as it was has been destroyed, every one of our ancient adversaries unjustly deprived of everything it has achieved. It seems too, some of the most innovative and respected competitors have lost interest in Corewar as a result :-( _______________________________________________________________________________ 94 - What's New (Sorted by rank and score) Considering the unusual circumstances and events since issue #70, the details normally collated in this section would be neither interesting or informative. This hill of Saturday, 6th February helps indicates what has taken place... # %W / %L / %T Name Author Score Age 1 49.3/ 45.5/ 5.2 Twenty-fiveZestyZenZebras HotPinkMonopolyMoney 153.2 2 2 49.1/ 45.2/ 5.7 Twenty-fiveMisfitMuskrats HoneydewHand-Grenade 153.1 6 3 48.9/ 45.0/ 6.1 Twenty5PuffyPlushPenguins DodgerBlueWaterMelon 152.8 10 4 48.5/ 45.6/ 5.9 Twenty-fiveMadMightyMoose LavenderBlushPerfume 151.5 23 5 48.0/ 45.0/ 7.0 TwentyfiveShortShadySheep PeachPuffEveningGown 151.0 21 6 47.8/ 45.6/ 6.7 Twenty-fiveAlienAardvarks ChartreuseEmbroidery 149.9 11 7 48.2/ 46.8/ 5.1 20+5BashfulBulliedBeavers RosyBrownBakeryTruck 149.5 4 8 47.5/ 45.6/ 6.9 25ObnoxiousOrOldOstriches FireBrickFireHydrant 149.5 9 9 47.4/ 45.6/ 7.0 25EcstaticEastEstonianEmu GainsboroExpressRail 149.1 7 10 47.9/ 46.8/ 5.3 Twenty-fiveWetWileyWolves BisqueWoodenSombrero 149.1 8 11 47.1/ 45.5/ 7.4 Twenty-fiveSlipperySnakes CornSilkWoodenNickel 148.7 5 12 47.2/ 45.8/ 7.1 25TinyTeflonTyrannosaurus OldLaceFancyFrippery 148.6 1 13 46.6/ 44.8/ 8.6 20+5FlyingFightingFerrets MediumSeaGreenFrames 148.3 15 14 46.8/ 45.3/ 7.9 Twenty-fiveDarkDrabDingos MintCreamBoxerShorts 148.2 3 15 47.9/ 48.0/ 4.1 20+5FlyingFightingFerrets MediumSeaGreenFrames 147.8 16 16 48.4/ 49.2/ 2.4 25MushyMid-MorningMaggots LemonChiffonDentures 147.6 20 17 47.3/ 47.2/ 5.5 TwentyfiveSadSickSeagulls SaddleBrownPantyhose 147.3 14 18 48.1/ 50.1/ 1.9 25AdvancedAerodynamicAnts PapayaWhipAftershave 146.0 25 19 47.8/ 50.1/ 2.1 Twenty5LustfulLatexLlamas ForestGreenLongJohns 145.5 18 20 47.0/ 48.8/ 4.2 25GorgeousGanglyGuerillas LightGoldenrodTuxedo 145.3 19 21 46.6/ 48.0/ 5.4 20+5RotatingRubberRabbits DarkSalmonNinjaBlade 145.3 17 22 37.1/ 37.8/ 25.1 Win! David Moore 136.3 41 23 44.4/ 53.7/ 1.9 25GiantGyroscopicGiraffes BurlyRoadKitchenSink 135.1 12 24 44.4/ 53.9/ 1.6 Twenty-fiveJuicyJellyfish FloralWhiteShrubbery 135.0 13 25 44.3/ 53.9/ 1.8 TwentyfiveWashed-upWhales CornflowerBlueFrames 134.7 22 David Moore wipes the hill with his handshaking warriors prior to announcing his retirement from Corewar. Fixed, Vigor and Recovery were the last to be pushed from the hill. _______________________________________________________________________________ 94 - What's No More (Sorted by age) # %W / %L / %T Name Author Score Age 26 23.0/ 23.3/ 53.7 Newt Ian Oversby 122.8 216 26 23.2/ 20.3/ 56.5 Vain Ian Oversby 126.1 147 26 ??.?/ ??.?/ ??.? Vigor Ken Espiritu ???.? 138 26 24.0/ 18.7/ 57.3 Fixed Ken Espiritu 129.3 135 26 ??.?/ ??.?/ ??.? Fugitive David Moore ???.? 102 26 30.0/ 34.9/ 35.1 Fire and Ice David Moore 125.0 100 26 26.8/ 28.5/ 44.8 Tuesday Afternoon John K W 125.1 58 26 35.0/ 45.0/ 20.1 Blurstone M. J. Pihlaja 124.9 58 26 ??.?/ ??.?/ ??.? Recycled Bits David Moore ???.? 58 26 ??.?/ ??.?/ ??.? The Stormbringer Christian Schmidt ???.? 51 26 27.3/ 27.5/ 45.3 Shadow Christian Schmidt 127.1 46 26 ??.?/ ??.?/ ??.? Recovery Ian Oversby ???.? 45 26 ??.?/ ??.?/ ??.? Benj's Revenge 1.0 Robert Macrae ???.? 45 26 21.0/ 18.1/ 60.9 Three Men in a Boat M Joonas Pihlaja 123.9 42 26 30.7/ 37.1/ 32.2 Defender Ian Oversby 124.2 39 26 32.7/ 40.7/ 26.5 myVamp v3.7 Paulsson 124.7 37 26 33.4/ 40.5/ 26.0 Zooom... John Metcalf 126.4 34 26 26.0/ 26.0/ 48.0 Brigadeer M Joonas Pihlaja 126.0 34 26 ??.?/ ??.?/ ??.? Diamonds and more Rust Christian Schmidt ???.? 23 26 27.1/ 28.9/ 44.0 Three Queens and a King Christian Schmidt 125.3 15 26 31.6/ 38.2/ 30.2 Trefoil Steve Gunnell 125.0 12 26 24.2/ 24.2/ 51.6 Fragility John Metcalf 124.2 12 26 38.8/ 52.7/ 8.6 He Scans Anew P.Kline 124.9 10 26 34.7/ 44.0/ 21.3 Bee/7i John Metcalf 125.4 4 :-( _______________________________________________________________________________ 94 - What's Old # %W / %L / %T Name Author Score Age Nothing old. _______________________________________________________________________________ OLD HALL OF FAME * means the warrior is still active. Pos Name Author Age Strategy 1 Thermite II Robert Macrae 2262 Qscan -> Bomber 2 Impfinity v4g1 Planar 1993 Stone/imp 3 Jack in the box Beppe Bezzi 1620 P-warrior 4 Tornado 3.0 Beppe Bezzi 1567 Bomber 5 Torch t18 P.Kline 1539 Bomber 6 Chameleon Myer R Bremer 1437 P-warrior 7 Frontwards v2 Steven Morrell 1420 Oneshot 8 Evol Cap 6.6 John Wilkinson 1299 Stone/imp 9 quiz Schitzo 1262 Scanner/bomber 10 T.N.T. Maurizio Vittuari 1204 Bomber 11 Grilled Octopus v0.5 David Boeren 1154 P-warrior 12 Hazy Shade II John Wilkinson 1102 P-warrior 13 Stepping Stone Kurt Franke 1049 Qscan -> Vampire 14 Rosebud Beppe Bezzi 993 Stone/imp 15 Iron Gate 1.5 Wayne Sheppard 926 Scanner 16 T.N.T. pro Maurizio Vittuari 925 Bomber 17 Agony II Stefan Strack 912 Scanner 18 Barrage Anton Marsden 876 Qscan -> Paper 19 Blue Funk Steven Morrell 869 Stone/imp 20 Flurry Anton Marsden 835 Qscan -> P-warrior 21 Thermite 1.0 Robert Macrae 802 Qscan -> Bomber 22 Blue Funk 3 Steven Morrell 766 Stone/imp 23 Night Train Karl Lewin 755 Paper 24 Mirage 1.5 Anton Marsden 736 Scanner/bomber 25 Blizzard Anton Marsden 713 Qscan -> Paper _______________________________________________________________________________ NEW HALL OF FAME * means the warrior is still active. Pos Name Author Age Strategy 1 Probe Anton Marsden 403 Q^2 -> Bomber 2 Blur 2 Anton Marsden 396 Scanner 3 Damage Incorporated Anton Marsden 373 Q^2 -> Bomber 4 Return Of The Jedimp John K W 357 Q^2 -> Stone/imp 5 unrequited love kafka 346 Q^2 -> Paper 6 Impish v0.2 Ian Oversby 345 Stone/imp 7 Gigolo Core Warrior staff 332 Q^2 -> Stone/imp 8 Falcon v0.3 Ian Oversby 275 P-warrior 9 Nine Seven Six M R Bremer 232 Q^2 -> Stone/imp 10 Rosebud Beppe 218 Stone/imp 11 Newt Ian Oversby 216 Q^2 -> Stone/imp 12 Q^2 Miro Anders Ivner 214 Q^2 -> Scanner/bomber 13 Instant Wolf 3.4 Edgar 205 P-warrior 14 Goldfinch P.Kline 201 P-warrior 15 Simple v0.4b Ian Oversby 197 QScan -> Stone/imp 16 Trident^2 John K W 195 Q^2 -> Stone/imp 17 ompega Steven Morrell 189 Stone/imp 18 Frogz Franz 172 Q^2 -> Paper 19 The Machine Anton Marsden 164 Scanner 20 Memories Beppe 152 Scanner 21 Vain Ian Oversby 147 Q^2 -> Stone/imp 22 Head or Tail Christian Schmidt 142 Q^2 -> Paper 23 Electric Head Anton Marsden 140 P-warrior 24 Vigor Ken Espiritu 138 Q^2 -> Paper 25 Fixed Ken Espiritu 135 Q^2 -> Paper Newt climbs a couple of places and halts at 11th. Vain climbs to 21st place before it too loses it's *. New entries Vigor and Fixed claim ranks 24 and 25, shortly before they are forced off the hill... For the first time there are no active warriors in the new HoF. _______________________________________________________________________________ Current Status of the Internet Pizza Server Beginner Hill: Hill Specs: coresize: 8000 max. processes: 8000 duration: after 80,000 cycles, a tie is declared. max. entry length: 100 minimum distance: 100 maximum age: At age 100, warriors are retired. rounds fought: 200 instruction set: ICWS '94 Draft # %W / %L / %T Name Author Score Age 1 54.5/ 30.8/ 14.6 Pattel's Virus Ben Ford 178.2 5 2 48.3/ 38.5/ 13.2 redcode ragamuffin Simon Wainwright 158.2 1 3 46.8/ 36.2/ 17.0 Spat the dummy. Steve Gunnell (oh ye 157.3 63 4 43.5/ 35.3/ 21.2 Ice Pick Willie Ben Ford 151.6 46 5 44.3/ 39.8/ 15.8 Reconnaissance v0.3 Ben Ford 148.9 6 6 41.1/ 33.8/ 25.1 Arsonic C P._V._K. 148.4 80 7 44.1/ 41.3/ 14.6 Fat Man A.S. Mehlos 146.9 77 8 42.6/ 41.0/ 16.5 Sticky taped together 1.2 Steve Gunnell 144.1 74 9 36.5/ 29.3/ 34.2 A man with a Gun Ben Ford 143.6 48 10 40.9/ 38.6/ 20.6 No Time To Think A. S. Mehlos 143.2 64 11 42.2/ 41.2/ 16.7 Scanzonato Franco Solerio 143.2 98 12 30.7/ 18.5/ 50.8 Redemption John Metcalf 142.9 39 13 34.2/ 28.2/ 37.6 ModerationRevisited A. S. Mehlos 140.1 83 14 36.0/ 31.9/ 32.1 of mirth and merriment Simon Wainwright 140.1 9 15 42.1/ 44.6/ 13.3 Hunter Ben Ford 139.7 51 16 30.2/ 21.8/ 48.0 HardCore v0.2b Simon Duff 138.6 3 17 40.1/ 42.1/ 17.8 Security Purge Ben Ford 138.1 17 18 39.3/ 41.1/ 19.5 Reconnaissance Ben Ford 137.5 14 19 33.0/ 28.9/ 38.0 Frusteration II A. S. Mehlos 137.1 67 20 28.5/ 22.6/ 48.9 Quick Zeta Leonardo Humberto 134.3 2 21 40.3/ 48.4/ 11.4 fatal lure of pMars Simon Wainwright 132.1 7 22 26.7/ 23.4/ 49.9 H-Bomb 9 Josh Yeager 130.0 61 23 31.0/ 32.1/ 36.9 Rocking-Chair 94 v0.33 Leonardo Humberto 129.9 11 24 26.5/ 23.5/ 50.0 H-Bomb 9k Josh Yeager 129.5 60 25 37.0/ 47.3/ 15.7 Death kiss with a dash of Anders Rosendal 126.7 23 The beginners' hill has been pretty quiet since last issue, with only 13 successful challenges. IWeasel was the only warrior to have died of old age. Ford's new P^3 warrior dominates the hill with a 20 point lead. _______________________________________________________________________________ Current Status of the KOTH.ORG '94 No Pspace Hill: Hill Specs: coresize: 8000 max. processes: 8000 duration: after 80,000 cycles, a tie is declared. max. entry length: 100 minimum distance: 100 rounds fought: 250 instruction set: ICWS '94 Draft, excluding ldp and stp # %W/ %L/ %T Name Author Score Age 1 38/ 27/ 35 The Stormbringer Christian Schmidt 148 109 2 37/ 28/ 35 Baseline Plus Ken Espiritu 146 156 3 37/ 29/ 34 Fixed Ken Espiritu 146 158 4 37/ 28/ 35 Blacken Ian Oversby 145 85 5 36/ 26/ 38 Vain Ian Oversby 145 175 6 46/ 48/ 6 He Scans Alone P.Kline 145 21 7 42/ 39/ 19 Boys are Back in Town 1.1 Philip Kendall 144 100 8 36/ 28/ 36 Recovery Ian Oversby 144 98 9 43/ 44/ 12 Win! David Moore 142 73 10 28/ 14/ 58 _romanian_killah_ Costin Bontas rulez 142 67 11 38/ 35/ 27 BiShot v1.0 Christian Schmidt 141 7 12 38/ 35/ 27 Liquid Fire Christian Schmidt 140 71 13 27/ 14/ 59 The Fugitive David Moore 140 177 14 42/ 45/ 13 Red Carpet David Moore 140 116 15 44/ 49/ 8 He Scans Anew P.Kline 139 26 16 38/ 38/ 24 Floody River P.Kline 137 124 17 32/ 27/ 41 Brigadeer M Joonas Pihlaja 137 94 18 34/ 32/ 34 Head or Tail Christian Schmidt 136 146 19 29/ 23/ 48 Innocuous John Metcalf 134 1 20 31/ 29/ 40 Gemini Dream John K Wilkinson 133 181 Old KoTH Zooom was ;killed and the hilltop is now held by The Stormbringer closely followed by four more Q^2 warriors. Quite a difference from last issue where 4 of the top 5 were scanners - all with but 3 new warriors on the hill. _______________________________________________________________________________ Current Standings of the Oversby Autumn Corewar Tournament: : '94 Tiny Grey Build Multi Primo rDist : Total Schmidt : 99.46 70.55 75.41 77.34 50.26 100.00 92.84 : 515.60 Macrae : 87.63 69.55 74.28 100.00 74.87 95.32 54.47 : 501.65 Pihlaja : 98.66 100.00 100.00 x 84.82 87.48 x : 470.96 .WFB : 91.10 22.42 49.35 56.28 100.00 56.47 x : 375.62 .Khuong : 75.82 60.37 65.86 63.96 x x 42.71 : 308.72 .Gunnell : 72.82 46.50 19.46 x 47.12 87.95 x : 273.85 .Mehlos : 71.22 29.45 76.11 76.23 x x x : 253.01 Hale : 99.12 66.52 18.68 60.92 x x x : 245.24 Moore : 100.00 63.67 62.29 x x x x : 225.96 .Yeager : x 24.93 44.22 60.03 34.55 x x : 163.73 Metcalf : x x x x x 39.96 100.00 : 139.96 Kendall : 90.04 35.48 3.21 x x x x : 128.73 .Duff : 23.05 30.67 10.51 x x x x : 64.23 First place in the primordial round was claimed by Schmidt with Pizza Vulcano, then Metcalf (better late than never) took first place in the penultimate round - restricted distance. The final round will be similar to the typical '94 draft rules, with an interesting twist. The coresize will be 8001 and the process limit 64. The deadline is Thursday 11th March, 23:59:59. Good luck! Check the tournament's home page for more details: http://www.geocities.com/TimesSquare/Realm/2443/ _______________________________________________________________________________ The Hint - _______________________________________________________________________________ Extra Extra - Fixed by Ken Espiritu Among the warriors which have created much curiousity in the redcoding community are Ken Espiritu's mystery papers, Vigor and Fixed. While some of us pondered the strange scores these alleged papers attained and suspected the strategy to be somewhat different, Espiritu was in possession of the secret of paper longevity. Fixed is a warrior of two parts. First, a qscan which splits to two parallel attacks similar to Retro-Q^2, followed by a robust paper with silk-imps. In contrast to warriors using similar qscans, Fixed only launches one of the two papers it contains. However, this seems no less effective, and may introduce advantages against some scanners. The paper is made up of three silk modules followed by silk-imps of the form mov.i #xxxx,}yyyy. The behaviour of these can be very interesting! Consider for example what happens when you overwrite an area of core where you have proccesses stunned by an opponent's spl carpet. The initial results differ with the type of spl carpet. Is it spl 0,0 or spl #0,0 or spl #1,1? Now, lets see how effective a few scanners are against the paper from Fixed. I removed the qscan from Fixed and decoys from the scanners to ensure a fair fight ;-) WARRIOR : %W %L %T : Scan Fixed WARRIOR : %W %L %T : Scan Fixed HeScans T : 61 27 12 : 195 93 HAL 9000 : 39 37 24 : 141 135 Tom Tack : 52 37 11 : 167 122 Blur 2 : 36 35 29 : 137 134 Mini-HSA : 52 38 10 : 166 124 HSA : 39 45 16 : 133 151 Mirage 1.5 : 49 32 19 : 166 115 Win! : 35 40 25 : 130 145 Tim Tack : 48 38 14 : 158 128 Zooom... : 35 45 20 : 125 155 7-11 : 45 38 17 : 152 131 Harmony : 26 30 44 : 122 134 Syzygy 1.3 : 40 34 26 : 146 128 One Shot : 26 39 35 : 113 152 Warriors with HSA-like carpet attacks perform well. Booting your scanner leaving a large spl decoy is another effective technique. ;redcode-94 ;name Fixed ;author Ken Espiritu ;strategy qscan -> paper ;assert 1 org start gap equ (6) rep equ (17) rep2 equ (13) qd equ (100) qs equ (-200) qb equ (start-700) flag equ (qbomb-100) datz equ (start-200) qbomb: dat }gap, }-gap tab: add.a table, table slow: add.ab @tab, fnd fast: add.b *tab, @slow which: sne.f }datz, @fnd add.ab #qd, fnd spl bmber2, }qs*13 ; start primary bomber bmber1:add.b fnd, fnd2 ; redundant bomber loop1: mov.i qbomb, @fnd2 ; .5c, forward only fnd2: mov.i qbomb, >fnd-(gap*rep)/2+1 add #2*gap, fnd2 djn loop1, #rep jmn.b qbomb, flag ; check flag fixed1:spl 1, }qb+qs*31 spl 1, }qb+qs*32 spl 1, }qb+qs*33 silk1a:spl @0, <131 mov.i }silk1a, >silk1a silk1b:spl @0, }7502 mov.i }silk1b, >silk1b silk1c:spl @0, }2430 mov.i }silk1c, >silk1c mov.i #3555, }-3190 mov.i #1832, }1398 mov.i #-2840, }570 dat }10*qs, >2*qs ; can get 21 values from this table table: dat >4*qs, }1*qs ; and can also use the initial value dat }23*qs, >3*qs ; of fnd start: seq.i qb+qs*0, qb+qs*0+qd jmp which, }qb+qd/2 seq.i qb+qs*2, qb+qs*2+qd jmp fast, {tab seq.i qb+qs*13,qb+qs*13+qd jmp fast, {fast seq.i qb+qs*1, qb+qs*1+qd jmp fast, }qb+qs*1+qd/2 seq.i qb+qs*3, qb+qs*3+qd jmp fast, }tab seq.i qb+qs*17,qb+qs*17+qd jmp slow, {fast seq.i qb+qs*7, qb+qs*7+qd jmp slow, }tab seq.i qb+qs*11,qb+qs*11+qd jmp slow, tab seq.i qb+qs*4, qb+qs*4+qd jmp >fast, }qb+qs*4+qd/2 seq.i qb+qs*10,qb+qs*10+qd jmp >fast, fast, >tab seq.i qb+qs*6, qb+qs*6+qd jmp slow, {tab seq.i qb+qs*12,qb+qs*12+qd djn.f slow, tab seq.i qb+qs*28,qb+qs*28+qd jmp tab, >tab seq.i qb+qs*9, qb+qs*9+qd jmp tab, }qb+qs*9+qd/2 seq.i qb+qs*20,qb+qs*20+qd djn.f tab seq.i qb+qs*16,qb+qs*16+qd jmp tab, {tab seq.i qb+qs*22,qb+qs*22+qd djn.f tab, tab seq.i qb+qs*30,qb+qs*30+qd jmp tab, }tab fixed2:spl 1, }qb+qs*31 spl 1, }qb+qs*32 spl 1, }qb+qs*33 silk2a:spl @0, <131 mov.i }silk2a, >silk2a silk2b:spl @0, }7502 mov.i }silk2b, >silk2b silk2c:spl @0, }2430 mov.i }silk2c, >silk2c mov.i #3555, }-3190 mov.i #1832, }1398 mov.i #-2840, }570 dat }1, >1 dat }1, >1 qincr dat }-gap, >2*gap bmber2:add.ba fnd, fnd loop2: mov.i qincr, *fnd ; primary bomber mov.i qincr, @fnd ; .66c, bi-directional fnd: mov.i 2*-gap, }qb add qincr, fnd djn loop2, #rep2 jmp fixed2, >flag ; set flag end ______________________________________________________________________________ Extra Extra Extra - Innocuous by John Metcalf After fiercely resisting the temptation to join the authors of Q^2 warriors I finally yielded on the provision I didn't re-use someone else's code. At first I settled for a mini-Q^2 which scanned 13*2 locations. Since it seemed my warriors were (in my opinion) taking premature retirement, it became inevitable I would eventually have to write a full Q^2. From writing the mini-Q^2 I learnt how it is possible for more scan locations to be decoded in a faster time and how to remove a now unwanted add.ab fnd,fnd. Over the 24*2 scans of the new and improved Q^2 this results in an average speed increase of 1.2 cycles :-) Since my testing has been somewhat curtailed by events which created some uncertainty over the level of the hill, I present the improved Q^2 here with only a simple, harmless paper - hence the name... Anyway, here's the code ready for you to use, abuse and improve as you wish: ;redcode-94 ;name Innocuous ;author John Metcalf ;strategy Improved Q^2 -> Harmless Paper ;assert CORESIZE==8000 org qGo pstep1 equ 220 ; 1700 pstep2 equ 6172 ; 4388 pstep3 equ 3060 ; 4924 pGo: spl 1, {qf+qs*3 ; harmless paper! spl 1, {qf+qs*9 pap1:spl @0, {pstep1 mov }pap1, >pap1 mov }pap1, >pap1 pap2:spl @0, {pstep2 mov }pap2, >pap2 mov {pap2, {pap3 pap3:jmp pstep3+1,>pstep3-3 dat >1, }1 for 23 dat 0,0 rof qf equ (pGo-200) ; qscan constants qd equ (-101) qs equ (-201) qi equ (11) ; qbomber constants qr equ (9) nop {q_B, {q_E qP: add q_D, q_B ; decoder qSlo:add @qP, @qLoo-1 qFas:add *qP, @qLoo-1 qSki:sne >qf+qs*20,@qKil add qDis, qKil qLoo:mov qInc, *qKil ; .5c dat bomber qKil:mov qf, @qf+5 add.x qInc, @qLoo-1 djn qLoo, #qr jmp pGo, {qf+qs*27 qDis:dat qd, qd qInc:dat {qi, {-qi q_A: dat 10*qs, 10*qs ; Can get 23 values from this q_B: dat 13*qs, 13*qs ; table and can also use the q_C: dat 6*qs, 6*qs ; initial value of qKil. q_D: dat 1*qs, 1*qs ; (Traditional Q^2 comment!) q_E: dat 4*qs, 4*qs ; [0/1 cycles] qGo: seq qf, qd+qf ; 0 jmp qSki, {qd+qf-2 seq qf+qs*10, qd+qf+qs*10 ; A djn.a qFas, {qFas seq qf+qs*13, qd+qf+qs*13 ; B jmp qFas, {qFas seq qf+qs*6, qd+qf+qs*6 ; C jmp qFas, {qP seq qf+qs, qd+qf+qs ; D jmp qFas, {qd+qf+qs-2 seq qf+qs*4, qd+qf+qs*4 ; E jmp qFas, }qP ; [2 cycles] seq qf+qs*14, qd+qf+qs*14 ; DB jmp qSlo, {qd+qf+qs*4-2 seq qf+qs*19, qd+qf+qs*19 ; CB jmp qSlo, {qP seq qf+qs*17, qd+qf+qs*17 ; EB jmp qSlo, }qP seq qf+qs*11, qd+qf+qs*11 ; DA jmp qSlo, qP seq qf+qs*26, qd+qf+qs*26 ; BB jmp qSlo, {qFas seq qf+qs*5, qd+qf+qs*5 ; DE jmp qSlo, {qSlo seq qf+qs*16, qd+qf+qs*16 ; CA djn.f qSlo, qP seq qf+qs*23, qd+qf+qs*23 ; BA djn.a qSlo, {qFas seq qf+qs*2, qd+qf+qs*2 ; DD djn.b qSlo, {qSlo ; [3 cycles] seq qf+qs*15, qd+qf+qs*15 ; DDB jmp qP, {qd+qf+qs*4-2 seq qf+qs*12, qd+qf+qs*12 ; DDA jmp qP, qP seq qf+qs*25, qd+qf+qs*25 ; CCB jmp qP, {qP seq qf+qs*21, qd+qf+qs*21 ; EEB jmp qP, }qP seq qf+qs*28, qd+qf+qs*28 ; DDBB jmp qP, {qFas seq qf+qs*24, qd+qf+qs*24 ; DAB djn.a qP, {qFas seq qf+qs*22, qd+qf+qs*22 ; CCA djn.f qP, qP jmp pGo, {qf+qs*27 end _______________________________________________________________________________ . . ,---. /(/\_/\)\ __ | | ( ) ,---' `---. | N.E.W.T | ___ [''] | Brigadeer | /~~~~\ | | _< + >_ ,-""---. `---. ,---' (Shadow) | May97 | [ Vigor ] ,-------. | Tues | | | | | | - | [ & ] | Zooom | , | PM | | | * | | | Feb99 | [ Fixed ] | | ;O: __|_.___.|_,(._|__.|_\)/_|__.___|_(.|___,._.__|._,[____.__]_),|___,.__|___")/__ Questions? Concerns? Comments? Complaints? Mail them to people who care. Authors: Beppe Bezzi , Anton Marsden , Christian Schmidt , Philip Kendall and John Metcalf From: Philip Kendall Subject: Re: Quick Newbie Question (forgive me!) Date: 1999/03/09 Message-ID: #1/1 Dan Ziegler writes: > I was wondering . . . is the starting locations for the two programs > completely random? Or do they start half-way between each other? By default in pMARS, it's completely random (excepting the constraint that they must start at least x cells apart, where x can be set by a command line option). HTH Phil -- / Philip Kendall (pak21@cam.ac.uk pak21@kendalls.demon.co.uk) \ \ http://www.kendalls.demon.co.uk/pak21/corewar/index.html / From: M Joonas Pihlaja Subject: Re: Scanner test Date: 1999/03/09 Message-ID: #1/1 On Sun, 7 Mar 1999, Paul Kline wrote: Just gagging for the prize here with the easy answers, don't mind me.. > The idea is that after finding something your next scan-step should > be 2667, thus quickly wiping any 3-point imps out there, and permitting > a simple one-pass dat-clear to finish. After finding dat-zero, > use some optimal scan-step. "optimal scan step" indeed. :) Like HSA, if you choose a bad aStep the pattern of rubbish in core can foil your scanner to keep missing the real target or slowed down into something useless. This leads to a hole that can be exploited: transform the scanner into a slow spl/jmp bomber using a fake imp trail (e.g. spiral clear, or bishot + djn stream). OK, so most warriors can't afford to create a fake imp trail, but the 'trail' needn't be perfect: using a little testing and imagination, it shouldn't be hard to position a djn stream and clear so as to slow down the scanner, even if you don't know aStep in advance. As the code is, oneshots cream the scanner - One Shot vs. Paul's Scanner Test: 121/61/18. Now usually one either boots or throws out a decoy to trigger the clear phase of the oneshot, but that causes a problem for this scanner. The earlier the oneshot starts clearing, the earlier it can start building it's slow-down-'fake imp trail'-decoy. It must be said that on the whole it seems to be better for the scanner to boot/decoymake than not. Oh and by the way, a single pass dat clear doesn't do well against normal silk papers. ;-) To illustrate: ;redcode ;name anti scanner test ;author mjp ;strategy use a forward djn-stream and bi-shot clear to convert ;strategy the scanner into a slow spl/jmp bomber. ;assert 1 d equ 1600 dat 0 , d gate dat -1+d+2667, -1+d+5334 dat 0 , 0 dat 0 , 0 dat 0 , 0 clear spl #0 , 0 mov bomb , }gate mov bomb , >gate djn.f -2 , >gate-1 dat 0 , 0 dat 0 , 0 bomb dat <2667 , <10 end clear Oh, it just occured to me that something like this could be converted into something that bites imp/stones in the decent way. Perhaps something to stuff into your p-spacers. > Paul Kline > pk6811s@acad.drake.edu Joonas From: David Brinovec Subject: What is corewar? Date: 1999/03/09 Message-ID: <36E57604.2BAAF6DA@library.wright.edu>#1/1 Tell me what corewar is. From: David Brinovec Subject: What is corewar? Date: 1999/03/09 Message-ID: <36E5758A.AA421305@library.wright.edu>#1/1 I want to know what corewar is. E-mail me or post a message here. From: liporati@br.homeshopping.com.br (Leonardo Humberto) Subject: What is corewar? Date: 1999/03/10 Message-ID: #1/1 Hi David, look the answer to your question and others you may have at: http://www.ecst.csuchico.edu/~pizza/koth/corewar-faq.html Bye, Leonardo. *** Posted from RemarQ - http://www.remarq.com - Discussions Start Here (tm) *** From: liporati@br.homeshopping.com.br (Leonardo Humberto) Subject: Core Warrior 71 (better wrapped) Date: 1999/03/10 Message-ID: <5ytF2.562$mx1.5128945@WReNphoon2>#1/1 Hi, only now I understood what happened with the 94 hill. After a fews days without consulting the scores I saw a hill with lots of warriors with zero (0) ages and low scores. I did not undestand but may be they are changing the scoring scheme or else, I thought. So was David that trashed the hill like he made in the Multi-warrior with "YoMama" warriors. Really its was not a funny joke for others competitors. I think that Moore�s retirement, this way, is a big loose to corewar. As a beginner, I was already his fan, specially of Freight Train the unbeatable 88 warrior that scores well even on 94 extended standard. Bye. *** Posted from RemarQ - http://www.remarq.com - Discussions Start Here (tm) *** From: spredan@fly.cc.fer.hr (Stipe [Stajp]) Subject: 71 is out, but where's CW70?? Date: 1999/03/10 Message-ID: #1/1 CW71 is out, but I can't find CW70 anywhere. after searching planar's pages I found a link to corewarriors and there are issues 1 to 69. No 70 and no 71!! So..where can I found CW70? Thank you Stipe From: Christian Schmidt Subject: Core Warrior 71 (better wrapped) Date: 1999/03/10 Message-ID: .xX$$x. .x$$$$$$$x. d$$$$$$$$$$$ ,$$$$$$$P' `P' , . $$$$$$P' ' .d b $$$$$P b ,$$x ,$$x ,$$x ,$$b $$. Y$$$$' `$. $$$$$$. $$$$$$ $$P~d$. d$$$b d d$$$ `$$$$ ,$$ $$$$$$$b $$$P `$ $$$b.$$b `Y$$$d$d$$$' . . a . a a .aa . a `$$$ ,$$$,$$' `$$$ $$$' ' $$P$XX$' `$$$$$$$$$ .dP' `$'$ `$'$ , $''$ `$'$ `Y$b ,d$$$P `$b,d$P' `$$. `$$. , `$$P $$$' Y $. $ $ $ Y..P $ `$$$$$$$' $$$P' `$$b `$$$P `P `$' `Y'k. $. $. $. $$' $. Issue 71 8 March, 1999 _______________________________________________________________________________ Core Warrior is a newsletter promoting the game of corewar. Emphasis is placed on the most active hills - currently the '94 draft hill, the beginner hill and the '94 no-pspace hill. Coverage will follow where ever the action is. If you haven't a clue what I'm talking about then check out these five-star internet locals for more information: FAQs are available from: ftp://rtfm.mit.edu/pub/usenet/news.answers/games/corewar-faq.Z http://www.koth.org/corewar-faq.html The ftp site and mirrors are at: ftp://ftp.csua.berkeley.edu/pub/corewar ftp://ftp.inria.fr/INRIA/Projects/para/doligez/cw/mirror ftp://www.koth.org/corewar pMARS itself is also available from: http://www.koth.org/pmars.html ;Stormking http://www.ncs.infi.net/~wtnewton/corewar ;Terry's web page ftp://members.aol.com/ofechner/corewar ;Fechner ftp site Web pages are at: http://www.koth.org/ ;Stormking http://www.ecst.csuchico.edu/~pizza/koth ;Pizza http://para.inria.fr/~doligez/corewar ;Planar Newbies should check the Stormking page for the FAQ, language specification, guides, and tutorials. Post questions to rec.games.corewar. All new players are infinitely welcome! A collection of Bezzi's hints in the first issues is available at: ftp://ftp.volftp.vol.it/pub/pc/msdos/games/solutions/bbhints.zip _______________________________________________________________________________ Welcome... Everything has been very quiet since last issue, with the exception of some late activity on the Multi-Warrior hill. Kline has published a new scanner concept, Moore has retired and the tournament is drawing to a close, with just one more round to play. No hint this issue, forgive me ;-). However, I hope you are happy with the long-awaited code to Fixed and also an improved Q^2. -- John Metcalf _______________________________________________________________________________ Current Status of the Internet Pizza Server ICWS '94 Draft Hill: Hill Specs: coresize: 8000 max. processes: 8000 duration: after 80,000 cycles, a tie is declared. max. entry length: 100 minimum distance: 100 rounds fought: 200 instruction set: ICWS '94 Draft # %W / %L / %T Name Author Score Age 1 42.0/ 26.8/ 31.3 Fixed Ken Espiritu 157.2 3 2 45.7/ 34.3/ 20.0 Recycled Bits David Moore 157.1 3 3 39.1/ 23.6/ 37.2 Spooky Wench John Metcalf 154.6 3 4 42.6/ 31.6/ 25.7 The Conqueror Christian Schmidt 153.6 3 5 45.4/ 37.6/ 17.1 Pattel's Virus Ben Ford 153.2 3 6 39.4/ 27.7/ 32.9 The Stormbringer Christian Schmidt 151.2 3 7 32.0/ 15.8/ 52.2 The Fugitive David Moore 148.3 3 8 39.7/ 32.7/ 27.6 Fragility John Metcalf 146.6 3 9 37.6/ 28.8/ 33.6 Freight Train v0.2 David Moore 146.4 3 10 39.7/ 33.0/ 27.3 Digital Dragon Christian Schmidt 146.3 3 11 43.1/ 39.9/ 17.0 Silver Talon 1.2 Edgar 146.2 4 12 38.3/ 32.2/ 29.6 Twin Christian Schmidt 144.4 3 13 36.4/ 28.7/ 34.9 Shadow Christian Schmidt 144.1 3 14 32.2/ 20.6/ 47.1 Innocuous John Metcalf 143.9 1 15 39.3/ 36.5/ 24.2 trefoil 23 226 Steve Gunnell 142.1 13 16 40.5/ 39.1/ 20.4 Galatea Ben Ford 142.0 3 17 36.9/ 34.4/ 28.7 Strange Variations John Metcalf 139.5 3 18 32.3/ 27.9/ 39.9 delay 0.02b 50 bjoern guenzel 136.7 3 19 41.8/ 47.7/ 10.6 Silccon M. J. Pihlaja 135.8 13 20 40.1/ 46.9/ 13.0 Lost Again! David Moore 133.3 3 21 37.0/ 41.0/ 22.0 trefoil 28 558 Steve Gunnell 133.0 3 22 40.1/ 51.9/ 8.1 Boing! John Metcalf 128.3 3 23 36.1/ 44.3/ 19.5 Ice Pick Willie Ben Ford 128.0 3 24 36.7/ 46.4/ 16.8 Reconnaissance Ben Ford 127.1 3 25 31.2/ 36.0/ 32.8 Bond, James Bond Ben Ford 126.3 2 Age since last issue: 69 ( 33 last issue, 13 the issue before ) New warriors: 25 Turnover/age rate 36% Average age: 3 ( 46 last issue, 36 the issue before ) Average score: 143 ( 140 last issue, 138 the issue before ) The top 25 warriors are represented by just 9 independent authors: Schmidt, Ford and Moore with 5 each, Metcalf with 4, Gunnell with 2 and the rest with just one warrior each. What can I say? The hill as it was has been destroyed, every one of our ancient adversaries unjustly deprived of everything it has achieved. It seems too, some of the most innovative and respected competitors have lost interest in Corewar as a result :-( _______________________________________________________________________________ 94 - What's New (Sorted by rank and score) Considering the unusual circumstances and events since issue #70, the details normally collated in this section would be neither interesting or informative. This hill of Saturday, 6th February helps indicates what has taken place... # %W / %L / %T Name Author Score Age 1 49.3/ 45.5/ 5.2 Twenty-fiveZestyZenZebras HotPinkMonopolyMoney 153.2 2 2 49.1/ 45.2/ 5.7 Twenty-fiveMisfitMuskrats HoneydewHand-Grenade 153.1 6 3 48.9/ 45.0/ 6.1 Twenty5PuffyPlushPenguins DodgerBlueWaterMelon 152.8 10 4 48.5/ 45.6/ 5.9 Twenty-fiveMadMightyMoose LavenderBlushPerfume 151.5 23 5 48.0/ 45.0/ 7.0 TwentyfiveShortShadySheep PeachPuffEveningGown 151.0 21 6 47.8/ 45.6/ 6.7 Twenty-fiveAlienAardvarks ChartreuseEmbroidery 149.9 11 7 48.2/ 46.8/ 5.1 20+5BashfulBulliedBeavers RosyBrownBakeryTruck 149.5 4 8 47.5/ 45.6/ 6.9 25ObnoxiousOrOldOstriches FireBrickFireHydrant 149.5 9 9 47.4/ 45.6/ 7.0 25EcstaticEastEstonianEmu GainsboroExpressRail 149.1 7 10 47.9/ 46.8/ 5.3 Twenty-fiveWetWileyWolves BisqueWoodenSombrero 149.1 8 11 47.1/ 45.5/ 7.4 Twenty-fiveSlipperySnakes CornSilkWoodenNickel 148.7 5 12 47.2/ 45.8/ 7.1 25TinyTeflonTyrannosaurus OldLaceFancyFrippery 148.6 1 13 46.6/ 44.8/ 8..6 20+5FlyingFightingFerrets MediumSeaGreenFrames 148.3 15 14 46.8/ 45.3/ 7.9 Twenty-fiveDarkDrabDingos MintCreamBoxerShorts 148.2 3 15 47.9/ 48.0/ 4.1 20+5FlyingFightingFerrets MediumSeaGreenFrames 147.8 16 16 48.4/ 49.2/ 2.4 25MushyMid-MorningMaggots LemonChiffonDentures 147.6 20 17 47.3/ 47.2/ 5.5 TwentyfiveSadSickSeagulls SaddleBrownPantyhose 147.3 14 18 48.1/ 50.1/ 1.9 25AdvancedAerodynamicAnts PapayaWhipAftershave 146.0 25 19 47.8/ 50.1/ 2.1 Twenty5LustfulLatexLlamas ForestGreenLongJohns 145.5 18 20 47.0/ 48.8/ 4.2 25GorgeousGanglyGuerillas LightGoldenrodTuxedo 145.3 19 21 46.6/ 48.0/ 5.4 20+5RotatingRubberRabbits DarkSalmonNinjaBlade 145.3 17 22 37.1/ 37.8/ 25.1 Win! David Moore 136.3 41 23 44.4/ 53.7/ 1.9 25GiantGyroscopicGiraffes BurlyRoadKitchenSink 135.1 12 24 44.4/ 53.9/ 1.6 Twenty-fiveJuicyJellyfish FloralWhiteShrubbery 135.0 13 25 44.3/ 53.9/ 1.8 TwentyfiveWashed-upWhales CornflowerBlueFrames 134.7 22 David Moore wipes the hill with his handshaking warriors prior to announcing his retirement from Corewar. Fixed, Vigor and Recovery were the last to be pushed from the hill. _______________________________________________________________________________ 94 - What's No More (Sorted by age) # %W / %L / %T Name Author Score Age 26 23.0/ 23.3/ 53.7 Newt Ian Oversby 122.8 216 26 23.2/ 20.3/ 56.5 Vain Ian Oversby 126.1 147 26 ??.?/ ??.?/ ??.? Vigor Ken Espiritu ???.? 138 26 24.0/ 18.7/ 57.3 Fixed Ken Espiritu 129.3 135 26 ??.?/ ??.?/ ??.? Fugitive David Moore ???.? 102 26 30.0/ 34.9/ 35.1 Fire and Ice David Moore 125.0 100 26 26.8/ 28.5/ 44.8 Tuesday Afternoon John K W 125.1 58 26 35.0/ 45.0/ 20.1 Blurstone M. J. Pihlaja 124.9 58 26 ??.?/ ??.?/ ??.? Recycled Bits David Moore ???.? 58 26 ??.?/ ??.?/ ??.? The Stormbringer Christian Schmidt ???.? 51 26 27.3/ 27.5/ 45.3 Shadow Christian Schmidt 127.1 46 26 ??.?/ ??.?/ ??.? Recovery Ian Oversby ???.? 45 26 ??.?/ ??.?/ ??.? Benj's Revenge 1.0 Robert Macrae ???.? 45 26 21.0/ 18.1/ 60.9 Three Men in a Boat M Joonas Pihlaja 123.9 42 26 30.7/ 37.1/ 32.2 Defender Ian Oversby 124.2 39 26 32.7/ 40.7/ 26.5 myVamp v3.7 Paulsson 124.7 37 26 33.4/ 40.5/ 26.0 Zooom... John Metcalf 126.4 34 26 26.0/ 26.0/ 48.0 Brigadeer M Joonas Pihlaja 126.0 34 26 ??.?/ ??.?/ ??.? Diamonds and more Rust Christian Schmidt ???.? 23 26 27.1/ 28.9/ 44.0 Three Queens and a King Christian Schmidt 125.3 15 26 31.6/ 38.2/ 30.2 Trefoil Steve Gunnell 125..0 12 26 24.2/ 24.2/ 51.6 Fragility John Metcalf 124.2 12 26 38.8/ 52.7/ 8.6 He Scans Anew P.Kline 124.9 10 26 34.7/ 44.0/ 21.3 Bee/7i John Metcalf 125.4 4 :-( _______________________________________________________________________________ 94 - What's Old # %W / %L / %T Name Author Score Age Nothing old. _______________________________________________________________________________ OLD HALL OF FAME * means the warrior is still active. Pos Name Author Age Strategy 1 Thermite II Robert Macrae 2262 Qscan -> Bomber 2 Impfinity v4g1 Planar 1993 Stone/imp 3 Jack in the box Beppe Bezzi 1620 P-warrior 4 Tornado 3.0 Beppe Bezzi 1567 Bomber 5 Torch t18 P.Kline 1539 Bomber 6 Chameleon Myer R Bremer 1437 P-warrior 7 Frontwards v2 Steven Morrell 1420 Oneshot 8 Evol Cap 6.6 John Wilkinson 1299 Stone/imp 9 quiz Schitzo 1262 Scanner/bomber 10 T.N.T. Maurizio Vittuari 1204 Bomber 11 Grilled Octopus v0.5 David Boeren 1154 P-warrior 12 Hazy Shade II John Wilkinson 1102 P-warrior 13 Stepping Stone Kurt Franke 1049 Qscan -> Vampire 14 Rosebud Beppe Bezzi 993 Stone/imp 15 Iron Gate 1.5 Wayne Sheppard 926 Scanner 16 T.N.T. pro Maurizio Vittuari 925 Bomber 17 Agony II Stefan Strack 912 Scanner 18 Barrage Anton Marsden 876 Qscan -> Paper 19 Blue Funk Steven Morrell 869 Stone/imp 20 Flurry Anton Marsden 835 Qscan -> P-warrior 21 Thermite 1.0 Robert Macrae 802 Qscan -> Bomber 22 Blue Funk 3 Steven Morrell 766 Stone/imp 23 Night Train Karl Lewin 755 Paper 24 Mirage 1.5 Anton Marsden 736 Scanner/bomber 25 Blizzard Anton Marsden 713 Qscan -> Paper _______________________________________________________________________________ NEW HALL OF FAME * means the warrior is still active. Pos Name Author Age Strategy 1 Probe Anton Marsden 403 Q^2 -> Bomber 2 Blur 2 Anton Marsden 396 Scanner 3 Damage Incorporated Anton Marsden 373 Q^2 -> Bomber 4 Return Of The Jedimp John K W 357 Q^2 -> Stone/imp 5 unrequited love kafka 346 Q^2 -> Paper 6 Impish v0.2 Ian Oversby 345 Stone/imp 7 Gigolo Core Warrior staff 332 Q^2 -> Stone/imp 8 Falcon v0.3 Ian Oversby 275 P-warrior 9 Nine Seven Six M R Bremer 232 Q^2 -> Stone/imp 10 Rosebud Beppe 218 Stone/imp 11 Newt Ian Oversby 216 Q^2 -> Stone/imp 12 Q^2 Miro Anders Ivner 214 Q^2 -> Scanner/bomber 13 Instant Wolf 3.4 Edgar 205 P-warrior 14 Goldfinch P.Kline 201 P-warrior 15 Simple v0.4b Ian Oversby 197 QScan -> Stone/imp 16 Trident^2 John K W 195 Q^2 -> Stone/imp 17 ompega Steven Morrell 189 Stone/imp 18 Frogz Franz 172 Q^2 -> Paper 19 The Machine Anton Marsden 164 Scanner 20 Memories Beppe 152 Scanner 21 Vain Ian Oversby 147 Q^2 -> Stone/imp 22 Head or Tail Christian Schmidt 142 Q^2 -> Paper 23 Electric Head Anton Marsden 140 P-warrior 24 Vigor Ken Espiritu 138 Q^2 -> Paper 25 Fixed Ken Espiritu 135 Q^2 -> Paper Newt climbs a couple of places and halts at 11th. Vain climbs to 21st place before it too loses it's *. New entries Vigor and Fixed claim ranks 24 and 25, shortly before they are forced off the hill... For the first time there are no active warriors in the new HoF. _______________________________________________________________________________ Current Status of the Internet Pizza Server Beginner Hill: Hill Specs: coresize: 8000 max. processes: 8000 duration: after 80,000 cycles, a tie is declared. max. entry length: 100 minimum distance: 100 maximum age: At age 100, warriors are retired. rounds fought: 200 instruction set: ICWS '94 Draft # %W / %L / %T Name Author Score Age 1 54.5/ 30.8/ 14.6 Pattel's Virus Ben Ford 178.2 5 2 48.3/ 38.5/ 13.2 redcode ragamuffin Simon Wainwright 158.2 1 3 46.8/ 36.2/ 17.0 Spat the dummy. Steve Gunnell (oh ye 157.3 63 4 43.5/ 35.3/ 21.2 Ice Pick Willie Ben Ford 151.6 46 5 44.3/ 39.8/ 15.8 Reconnaissance v0.3 Ben Ford 148.9 6 6 41.1/ 33.8/ 25.1 Arsonic C P._V._K. 148.4 80 7 44.1/ 41.3/ 14.6 Fat Man A.S. Mehlos 146.9 77 8 42.6/ 41.0/ 16.5 Sticky taped together 1.2 Steve Gunnell 144.1 74 9 36.5/ 29.3/ 34.2 A man with a Gun Ben Ford 143.6 48 10 40.9/ 38.6/ 20.6 No Time To Think A. S. Mehlos 143.2 64 11 42.2/ 41.2/ 16.7 Scanzonato Franco Solerio 143.2 98 12 30.7/ 18.5/ 50.8 Redemption John Metcalf 142.9 39 13 34.2/ 28.2/ 37.6 ModerationRevisited A. S. Mehlos 140.1 83 14 36.0/ 31.9/ 32.1 of mirth and merriment Simon Wainwright 140.1 9 15 42.1/ 44.6/ 13.3 Hunter Ben Ford 139.7 51 16 30.2/ 21.8/ 48.0 HardCore v0.2b Simon Duff 138.6 3 17 40.1/ 42.1/ 17.8 Security Purge Ben Ford 138.1 17 18 39.3/ 41.1/ 19.5 Reconnaissance Ben Ford 137.5 14 19 33.0/ 28.9/ 38.0 Frusteration II A. S. Mehlos 137.1 67 20 28.5/ 22.6/ 48.9 Quick Zeta Leonardo Humberto 134.3 2 21 40.3/ 48.4/ 11.4 fatal lure of pMars Simon Wainwright 132.1 7 22 26.7/ 23.4/ 49.9 H-Bomb 9 Josh Yeager 130.0 61 23 31.0/ 32.1/ 36.9 Rocking-Chair 94 v0.33 Leonardo Humberto 129.9 11 24 26.5/ 23.5/ 50.0 H-Bomb 9k Josh Yeager 129.5 60 25 37.0/ 47.3/ 15.7 Death kiss with a dash of Anders Rosendal 126.7 23 The beginners' hill has been pretty quiet since last issue, with only 13 successful challenges. IWeasel was the only warrior to have died of old age. Ford's new P^3 warrior dominates the hill with a 20 point lead. _______________________________________________________________________________ Current Status of the KOTH.ORG '94 No Pspace Hill: Hill Specs: coresize: 8000 max. processes: 8000 duration: after 80,000 cycles, a tie is declared. max. entry length: 100 minimum distance: 100 rounds fought: 250 instruction set: ICWS '94 Draft, excluding ldp and stp # %W/ %L/ %T Name Author Score Age 1 38/ 27/ 35 The Stormbringer Christian Schmidt 148 109 2 37/ 28/ 35 Baseline Plus Ken Espiritu 146 156 3 37/ 29/ 34 Fixed Ken Espiritu 146 158 4 37/ 28/ 35 Blacken Ian Oversby 145 85 5 36/ 26/ 38 Vain Ian Oversby 145 175 6 46/ 48/ 6 He Scans Alone P.Kline 145 21 7 42/ 39/ 19 Boys are Back in Town 1.1 Philip Kendall 144 100 8 36/ 28/ 36 Recovery Ian Oversby 144 98 9 43/ 44/ 12 Win! David Moore 142 73 10 28/ 14/ 58 _romanian_killah_ Costin Bontas rulez 142 67 11 38/ 35/ 27 BiShot v1.0 Christian Schmidt 141 7 12 38/ 35/ 27 Liquid Fire Christian Schmidt 140 71 13 27/ 14/ 59 The Fugitive David Moore 140 177 14 42/ 45/ 13 Red Carpet David Moore 140 116 15 44/ 49/ 8 He Scans Anew P.Kline 139 26 16 38/ 38/ 24 Floody River P.Kline 137 124 17 32/ 27/ 41 Brigadeer M Joonas Pihlaja 137 94 18 34/ 32/ 34 Head or Tail Christian Schmidt 136 146 19 29/ 23/ 48 Innocuous John Metcalf 134 1 20 31/ 29/ 40 Gemini Dream John K Wilkinson 133 181 Old KoTH Zooom was ;killed and the hilltop is now held by The Stormbringer closely followed by four more Q^2 warriors. Quite a difference from last issue where 4 of the top 5 were scanners - all with but 3 new warriors on the hill. _______________________________________________________________________________ Current Standings of the Oversby Autumn Corewar Tournament: : '94 Tiny Grey Build Multi Primo rDist : Total Schmidt : 99.46 70.55 75.41 77.34 50.26 100.00 92.84 : 515.60 Macrae : 87.63 69.55 74.28 100.00 74.87 95.32 54.47 : 501.65 Pihlaja : 98.66 100.00 100.00 x 84.82 87.48 x : 470.96 .WFB : 91.10 22.42 49.35 56.28 100.00 56.47 x : 375.62 .Khuong : 75.82 60.37 65.86 63.96 x x 42.71 : 308.72 .Gunnell : 72.82 46.50 19.46 x 47.12 87.95 x : 273.85 .Mehlos : 71.22 29.45 76.11 76.23 x x x : 253.01 Hale : 99.12 66.52 18.68 60.92 x x x : 245.24 Moore : 100.00 63.67 62.29 x x x x : 225.96 .Yeager : x 24.93 44.22 60.03 34.55 x x : 163.73 Metcalf : x x x x x 39.96 100.00 : 139.96 Kendall : 90.04 35.48 3.21 x x x x : 128.73 .Duff : 23.05 30.67 10.51 x x x x : 64.23 First place in the primordial round was claimed by Schmidt with Pizza Vulcano, then Metcalf (better late than never) took first place in the penultimate round - restricted distance. The final round will be similar to the typical '94 draft rules, with an interesting twist. The coresize will be 8001 and the process limit 64. The deadline is Thursday 11th March, 23:59:59. Good luck! Check the tournament's home page for more details: http://www.geocities.com/TimesSquare/Realm/2443/ _______________________________________________________________________________ The Hint - _______________________________________________________________________________ Extra Extra - Fixed by Ken Espiritu Among the warriors which have created much curiousity in the redcoding community are Ken Espiritu's mystery papers, Vigor and Fixed. While some of us pondered the strange scores these alleged papers attained and suspected the strategy to be somewhat different, Espiritu was in possession of the secret of paper longevity. Fixed is a warrior of two parts. First, a qscan which splits to two parallel attacks similar to Retro-Q^2, followed by a robust paper with silk-imps. In contrast to warriors using similar qscans, Fixed only launches one of the two papers it contains. However, this seems no less effective, and may introduce advantages against some scanners. The paper is made up of three silk modules followed by silk-imps of the form mov.i #xxxx,}yyyy. The behaviour of these can be very interesting! Consider for example what happens when you overwrite an area of core where you have proccesses stunned by an opponent's spl carpet. The initial results differ with the type of spl carpet. Is it spl 0,0 or spl #0,0 or spl #1,1? Now, lets see how effective a few scanners are against the paper from Fixed. I removed the qscan from Fixed and decoys from the scanners to ensure a fair fight ;-) WARRIOR : %W %L %T : Scan Fixed WARRIOR : %W %L %T : Scan Fixed HeScans T : 61 27 12 : 195 93 HAL 9000 : 39 37 24 : 141 135 Tom Tack : 52 37 11 : 167 122 Blur 2 : 36 35 29 : 137 134 Mini-HSA : 52 38 10 : 166 124 HSA : 39 45 16 : 133 151 Mirage 1.5 : 49 32 19 : 166 115 Win! : 35 40 25 : 130 145 Tim Tack : 48 38 14 : 158 128 Zooom... : 35 45 20 : 125 155 7-11 : 45 38 17 : 152 131 Harmony : 26 30 44 : 122 134 Syzygy 1.3 : 40 34 26 : 146 128 One Shot : 26 39 35 : 113 152 Warriors with HSA-like carpet attacks perform well. Booting your scanner leaving a large spl decoy is another effective technique. ;redcode-94 ;name Fixed ;author Ken Espiritu ;strategy qscan -> paper ;assert 1 org start gap equ (6) rep equ (17) rep2 equ (13) qd equ (100) qs equ (-200) qb equ (start-700) flag equ (qbomb-100) datz equ (start-200) qbomb: dat }gap, }-gap tab: add.a table, table slow: add.ab @tab, fnd fast: add.b *tab, @slow which: sne.f }datz, @fnd add.ab #qd, fnd spl bmber2, }qs*13 ; start primary bomber bmber1:add.b fnd, fnd2 ; redundant bomber loop1: mov.i qbomb, @fnd2 ; .5c, forward only fnd2: mov.i qbomb, >fnd-(gap*rep)/2+1 add #2*gap, fnd2 djn loop1, #rep jmn.b qbomb, flag ; check flag fixed1:spl 1, }qb+qs*31 spl 1, }qb+qs*32 spl 1, }qb+qs*33 silk1a:spl @0, <131 mov.i }silk1a, >silk1a silk1b:spl @0, }7502 mov.i }silk1b, >silk1b silk1c:spl @0, }2430 mov.i }silk1c, >silk1c mov.i #3555, }-3190 mov.i #1832, }1398 mov.i #-2840, }570 dat }10*qs, >2*qs ; can get 21 values from this table table: dat >4*qs, }1*qs ; and can also use the initial value dat }23*qs, >3*qs ; of fnd start: seq.i qb+qs*0, qb+qs*0+qd jmp which, }qb+qd/2 seq.i qb+qs*2, qb+qs*2+qd jmp fast, {tab seq.i qb+qs*13,qb+qs*13+qd jmp fast, {fast seq.i qb+qs*1, qb+qs*1+qd jmp fast, }qb+qs*1+qd/2 seq.i qb+qs*3, qb+qs*3+qd jmp fast, }tab seq.i qb+qs*17,qb+qs*17+qd jmp slow, {fast seq.i qb+qs*7, qb+qs*7+qd jmp slow, }tab seq.i qb+qs*11,qb+qs*11+qd jmp slow, tab seq.i qb+qs*4, qb+qs*4+qd jmp >fast, }qb+qs*4+qd/2 seq.i qb+qs*10,qb+qs*10+qd jmp >fast, fast, >tab seq.i qb+qs*6, qb+qs*6+qd jmp slow, {tab seq.i qb+qs*12,qb+qs*12+qd djn.f slow, tab seq.i qb+qs*28,qb+qs*28+qd jmp tab, >tab seq.i qb+qs*9, qb+qs*9+qd jmp tab, }qb+qs*9+qd/2 seq.i qb+qs*20,qb+qs*20+qd djn.f tab seq.i qb+qs*16,qb+qs*16+qd jmp tab, {tab seq.i qb+qs*22,qb+qs*22+qd djn.f tab, tab seq.i qb+qs*30,qb+qs*30+qd jmp tab, }tab fixed2:spl 1, }qb+qs*31 spl 1, }qb+qs*32 spl 1, }qb+qs*33 silk2a:spl @0, <131 mov.i }silk2a, >silk2a silk2b:spl @0, }7502 mov.i }silk2b, >silk2b silk2c:spl @0, }2430 mov.i }silk2c, >silk2c mov.i #3555, }-3190 mov.i #1832, }1398 mov.i #-2840, }570 dat }1, >1 dat }1, >1 qincr dat }-gap, >2*gap bmber2:add.ba fnd, fnd loop2: mov.i qincr, *fnd ; primary bomber mov.i qincr, @fnd ; .66c, bi-directional fnd: mov.i 2*-gap, }qb add qincr, fnd djn loop2, #rep2 jmp fixed2, >flag ; set flag end ______________________________________________________________________________ Extra Extra Extra - Innocuous by John Metcalf After fiercely resisting the temptation to join the authors of Q^2 warriors I finally yielded on the provision I didn't re-use someone else's code. At first I settled for a mini-Q^2 which scanned 13*2 locations. Since it seemed my warriors were (in my opinion) taking premature retirement, it became inevitable I would eventually have to write a full Q^2. >From writing the mini-Q^2 I learnt how it is possible for more scan locations to be decoded in a faster time and how to remove a now unwanted add.ab fnd,fnd. Over the 24*2 scans of the new and improved Q^2 this results in an average speed increase of 1.2 cycles :-) Since my testing has been somewhat curtailed by events which created some uncertainty over the level of the hill, I present the improved Q^2 here with only a simple, harmless paper - hence the name... Anyway, here's the code ready for you to use, abuse and improve as you wish: ;redcode-94 ;name Innocuous ;author John Metcalf ;strategy Improved Q^2 -> Harmless Paper ;assert CORESIZE==8000 org qGo pstep1 equ 220 ; 1700 pstep2 equ 6172 ; 4388 pstep3 equ 3060 ; 4924 pGo: spl 1, {qf+qs*3 ; harmless paper! spl 1, {qf+qs*9 pap1:spl @0, {pstep1 mov }pap1, >pap1 mov }pap1, >pap1 pap2:spl @0, {pstep2 mov }pap2, >pap2 mov {pap2, {pap3 pap3:jmp pstep3+1,>pstep3-3 dat >1, }1 for 23 dat 0,0 rof qf equ (pGo-200) ; qscan constants qd equ (-101) qs equ (-201) qi equ (11) ; qbomber constants qr equ (9) nop {q_B, {q_E qP: add q_D, q_B ; decoder qSlo:add @qP, @qLoo-1 qFas:add *qP, @qLoo-1 qSki:sne >qf+qs*20,@qKil add qDis, qKil qLoo:mov qInc, *qKil ; .5c dat bomber qKil:mov qf, @qf+5 add.x qInc, @qLoo-1 djn qLoo, #qr jmp pGo, {qf+qs*27 qDis:dat qd, qd qInc:dat {qi, {-qi q_A: dat 10*qs, 10*qs ; Can get 23 values from this q_B: dat 13*qs, 13*qs ; table and can also use the q_C: dat 6*qs, 6*qs ; initial value of qKil. q_D: dat 1*qs, 1*qs ; (Traditional Q^2 comment!) q_E: dat 4*qs, 4*qs ; [0/1 cycles] qGo: seq qf, qd+qf ; 0 jmp qSki, {qd+qf-2 seq qf+qs*10, qd+qf+qs*10 ; A djn.a qFas, {qFas seq qf+qs*13, qd+qf+qs*13 ; B jmp qFas, {qFas seq qf+qs*6, qd+qf+qs*6 ; C jmp qFas, {qP seq qf+qs, qd+qf+qs ; D jmp qFas, {qd+qf+qs-2 seq qf+qs*4, qd+qf+qs*4 ; E jmp qFas, }qP ; [2 cycles] seq qf+qs*14, qd+qf+qs*14 ; DB jmp qSlo, {qd+qf+qs*4-2 seq qf+qs*19, qd+qf+qs*19 ; CB jmp qSlo, {qP seq qf+qs*17, qd+qf+qs*17 ; EB jmp qSlo, }qP seq qf+qs*11, qd+qf+qs*11 ; DA jmp qSlo, qP seq qf+qs*26, qd+qf+qs*26 ; BB jmp qSlo, {qFas seq qf+qs*5, qd+qf+qs*5 ; DE jmp qSlo, {qSlo seq qf+qs*16, qd+qf+qs*16 ; CA djn.f qSlo, qP seq qf+qs*23, qd+qf+qs*23 ; BA djn.a qSlo, {qFas seq qf+qs*2, qd+qf+qs*2 ; DD djn.b qSlo, {qSlo ; [3 cycles] seq qf+qs*15, qd+qf+qs*15 ; DDB jmp qP, {qd+qf+qs*4-2 seq qf+qs*12, qd+qf+qs*12 ; DDA jmp qP, qP seq qf+qs*25, qd+qf+qs*25 ; CCB jmp qP, {qP seq qf+qs*21, qd+qf+qs*21 ; EEB jmp qP, }qP seq qf+qs*28, qd+qf+qs*28 ; DDBB jmp qP, {qFas seq qf+qs*24, qd+qf+qs*24 ; DAB djn.a qP, {qFas seq qf+qs*22, qd+qf+qs*22 ; CCA djn.f qP, qP jmp pGo, {qf+qs*27 end _______________________________________________________________________________ . . ,---. /(/\_/\)\ __ | | ( ) ,---' `---. | N.E.W.T | ___ [''] | Brigadeer | /~~~~\ | | _< + >_ ,-""---. `---. ,---' (Shadow) | May97 | [ Vigor ] ,-------. | Tues | | | | | | - | [ & ] | Zooom | , | PM | | | * | | | Feb99 | [ Fixed ] | | ;O: __|_.___.|_,(._|__.|_\)/_|__.___|_(.|___,._.__|._,[____.__]_),|___,.__|___")/__ Questions? Concerns? Comments? Complaints? Mail them to people who care. Authors: Beppe Bezzi , Anton Marsden , Christian Schmidt , Philip Kendall and John Metcalf From: M Joonas Pihlaja Subject: Re: 71 is out, but where's CW70?? Date: 1999/03/11 Message-ID: #1/1 On 10 Mar 1999, Stipe [Stajp] wrote: > CW71 is out, but I can't find CW70 anywhere. > after searching planar's pages I found a link to corewarriors and there are > issues 1 to 69. No 70 and no 71!! > So..where can I found CW70? > Deja News has it, but I'll send you my copy. > Thank you > Stipe > Joonas From: Nebuchadnezzar Subject: Re: Core Warrior 70 Date: 1999/03/11 Message-ID: Someone was looking for a copy of CoreWarrior 70, here it is! > .xX$$x. > .x$$$$$$$x. > d$$$$$$$$$$$ >,$$$$$$$P' `P' , . >$$$$$$P' ' .d b >$$$$$P b ,$$x ,$$x ,$$x ,$$b $$. >Y$$$$' `$. $$$$$$. $$$$$$ $$P~d$. d$$$b d d$$$ >`$$$$ ,$$ $$$$$$$b $$$P `$ $$$b.$$b `Y$$$d$d$$$' . . a . a a .aa . a > `$$$ ,$$$,$$' `$$$ $$$' ' $$P$XX$' `$$$$$$$$$ .dP' `$'$ `$'$ , $''$ `$'$ > `Y$b ,d$$$P `$b,d$P' `$$. `$$. , `$$P $$$' Y $. $ $ $ Y..P $ > `$$$$$$$' $$$P' `$$b `$$$P `P `$' `Y'k. $. $. $. $$' $. > >Issue 70 4 February, 1999 >_______________________________________________________________________________ >Core Warrior is a newsletter promoting the game of corewar. Emphasis is placed >on the most active hills - currently the '94 draft hill, the beginner hill and >the '94 no-pspace hill. Coverage will follow where ever the action is. If you >haven't a clue what I'm talking about then check out these five-star internet >locals for more information: > >FAQs are available from: > ftp://rtfm.mit.edu/pub/usenet/news.answers/games/corewar-faq.Z > http://www.koth.org/corewar-faq.html > >The ftp site and mirrors are at: > ftp://ftp.csua.berkeley.edu/pub/corewar > ftp://ftp.inria.fr/INRIA/Projects/para/doligez/cw/mirror > ftp://www.koth.org/corewar > >pMARS itself is also available from: > http://www.koth.org/pmars.html ;Stormking > http://www.ncs.infi.net/~wtnewton/corewar ;Terry's web page > ftp://members.aol.com/ofechner/corewar ;Fechner ftp site > >Web pages are at: > http://www.koth.org/ ;Stormking > http://www.ecst.csuchico.edu/~pizza/koth ;Pizza > http://para.inria.fr/~doligez/corewar ;Planar > >Newbies should check the Stormking page for the FAQ, language specification, >guides, and tutorials. Post questions to rec.games.corewar. All new players >are infinitely welcome! > >A collection of Bezzi's hints in the first issues is available at: > ftp://ftp.volftp.vol.it/pub/pc/msdos/games/solutions/bbhints.zip >_______________________________________________________________________________ >Welcome... > >Apologies for the many weeks which have passed since last issue. Fortunately >though, they have not been entirely uneventful. Ian Oversby's Autumn/Winter >tournament has begun, Macrae has successfully destroyed the deadlock on the >multi-warrior hill, and a selection of quality redcode has been published. > >This issue - David Moore introduces the P^3 switcher and the code of Zooom, >the current '94nop king is revealed. > >-- John Metcalf >_______________________________________________________________________________ >Current Status of the Internet Pizza Server ICWS '94 Draft Hill: > >Hill Specs: > coresize: 8000 > max. processes: 8000 > duration: after 80,000 cycles, a tie is declared. >max. entry length: 100 > minimum distance: 100 > rounds fought: 200 > instruction set: ICWS '94 Draft > > # %W / %L / %T Name Author Score Age > 1 45.5/ 34.2/ 20.2 Diamonds and more Rust Christian Schmidt 156.8 3 > 2 39.1/ 25.5/ 35.4 Recovery Ian Oversby 152.6 22 > 3 43.5/ 36.8/ 19.6 Recycled Bits David Moore 150.3 40 > 4 45.7/ 42.4/ 11.9 Win! David Moore 148.9 16 > 5 35.1/ 26.8/ 38.0 The Stormbringer Christian Schmidt 143.4 32 > 6 34.5/ 26.8/ 38.6 Brigadeer M Joonas Pihlaja 142.2 21 > 7 35.9/ 30.6/ 33.6 Vain Ian Oversby 141.1 126 > 8 34.6/ 28.4/ 37.0 Three Queens and a King Christian Schmidt 140.7 1 > 9 32.5/ 24.3/ 43.2 Fragility John Metcalf 140.7 5 >10 27.8/ 15.7/ 56.5 Fugitive David Moore 140.0 80 >11 34.7/ 30.0/ 35.3 Vigor Ken Espiritu 139.4 114 >12 37.6/ 36.3/ 26.1 Defender Ian Oversby 138.8 34 >13 40.6/ 42.4/ 17.0 Zooom... John Metcalf 138.8 18 >14 38.5/ 38.3/ 23.1 myVamp v3.7 Paulsson 138.7 27 >15 38.0/ 37.5/ 24.5 Trefoil Steve Gunnell 138.5 1 >16 32.6/ 27.2/ 40.2 Newt Ian Oversby 138.1 204 >17 34.3/ 30.8/ 35.0 Fixed Ken Espiritu 137.7 110 >18 33.0/ 28.2/ 38.8 Shadow Christian Schmidt 137.7 31 >19 28.9/ 20.1/ 51.0 Three Men in a Boat M Joonas Pihlaja 137.7 33 >20 33.1/ 29.6/ 37.4 Benj's Revene 1.0 Robert Macrae 136.6 28 >21 39.7/ 43.1/ 17.2 Blurstone M. J. Pihlaja 136.2 50 >22 32.3/ 29.5/ 38.2 Tuesday Afternoon John K W 135.1 54 >23 41.8/ 49.5/ 8.7 He Scans Anew P.Kline 134.1 4 >24 37.7/ 42.0/ 20.3 Bee/7i John Metcalf 133.3 2 >25 33.1/ 33.7/ 33.2 Fire and Ice David Moore 132.6 99 > >Age since last issue: 33 ( 13 last issue, 7 the issue before ) >New warriors: 14 Turnover/age rate 42% >Average age: 46 ( 36 last issue, 34 the issue before ) >Average score: 140 ( 138 last issue, 134 the issue before ) >The top 25 warriors are represented by just 11 independent authors: Schmidt, >Oversby and Moore with 4, Pihlaja and Metcalf with 3, Espiritu with two and >the rest with one each. > >Christian Schmidt claims first place with his Diamonds and more Rust, which >is achieving 60%+ wins against stone/imps Newt, Vain and Brigadeer. >_______________________________________________________________________________ >94 - What's New (Sorted by rank and score) > > # %W / %L / %T Name Author Score Age > 1 44.4/ 38.0/ 17.6 Silver Talon 1.2 Edgar 150.7 0 > 2 44.7/ 33.2/ 22.1 Diamonds and more Rust Christian Schmidt 156.1 0 > 2 34.7/ 24.5/ 40.8 The Stormbringer Christian Schmidt 144.9 0 > 2 33.2/ 22.8/ 44.0 Brigadeer M Joonas Pihlaja 143.5 0 > 3 34.1/ 26.4/ 39.5 Recovery Ian Oversby 141.8 1 > 3 38.4/ 36.6/ 25.0 Digital Dragon Christian Schmidt 140.2 0 > 5 40.0/ 40.5/ 19.6 Zooom... John Metcalf 139.5 1 > 6 41.2/ 44.3/ 14.5 Win! David Moore 138.2 0 > 6 40.5/ 43.4/ 16.1 Have No Pity John Metcalf 137.6 1 > 9 41.6/ 49.5/ 8.8 He Scans Anew P.Kline 133.8 1 > 9 28.0/ 22.7/ 49.3 Fragility John Metcalf 133.3 1 > 9 31.3/ 29.8/ 38.9 Three Queens and a King Christian Schmidt 132.8 0 >10 36.4/ 39.8/ 23.8 myVamp v3.7 Paulsson 133.0 0 >11 31.2/ 28.4/ 40.4 Benj's Revenge 1.0 Robert Macrae 133.9 1 >11 35.3/ 38.5/ 26.1 Trefoil Steve Gunnell 132.1 1 >12 37.7/ 42.5/ 19.8 Erase Ken Espiritu 132.8 1 >15 24.4/ 18.0/ 57.6 Three Men in a Boat M Joonas Pihlaja 130.8 1 >?? ??.?/ ??.?/ ??.? Khayman Ian Oversby ???.? 1 >17 30.0/ 32.1/ 37.9 Liquid Fire Christian Schmidt 127.8 1 >19 35.6/ 42.5/ 21.9 Bee/7i John Metcalf 128.7 1 >20 35.6/ 43.2/ 21.2 Recycled Bits-- David Moore 128.0 1 >21 34.8/ 41.7/ 23.5 BiShot v1.0 Christian Schmidt 127.9 1 >21 22.0/ 17.9/ 60.1 Redemption John Metcalf 126.2 1 >22 34.7/ 42.5/ 22.9 Z-Shot John Metcalf 126.8 1 >22 30.4/ 34.4/ 35.1 bomber dm 126.4 1 >22 20.8/ 16.7/ 62.5 Glok Ben Ford 124.9 0 >23 26.1/ 27.2/ 46.7 The Yokozuna Christian Schmidt 125.1 1 >24 32.6/ 42.3/ 25.0 Z-Shot II John Metcalf 123.0 1 >25 32.8/ 42.6/ 24.6 Sand-Crawler John Metcalf 122.9 1 > >Several strong new entries ensured warriors surviving from last issue have >had a struggle to retain their rank. A few beginners have joined the elite. >_______________________________________________________________________________ >94 - What's No More (Sorted by age) > > # %W / %L / %T Name Author Score Age >26 27.4/ 30.1/ 42.5 Ultraviolet-B Ken Espiritu 124.7 120 >26 31.6/ 39.4/ 29.0 Digitalis 4 Christian Schmidt 123.8 73 >26 22.1/ 20.5/ 57.4 Return Of Return Of The J John K W 123.6 63 >26 30.7/ 38.5/ 30.8 Shape Christian Schmidt 123.0 39 >26 33.9/ 44.3/ 21.8 Electric Head 2 Anton Marsden 123.4 34 >26 32.7/ 40.9/ 26.4 The Body Guard Ian Oversby 124.5 27 >26 ?.?/ ?.?/ ?.? Alien Christian Schmidt ?.? 26 >26 ??.?/ ??.?/ ??.? Eraser Ken Espiritu ???.? 23 >26 34.6/ 44.6/ 20.8 Diamonds and Rust v2 Christian Schmidt 124.5 23 >26 29.6/ 40.3/ 30.1 Digital Dragon Christian Schmidt 118.9 18 >26 35.7/ 47.5/ 16.7 Have No Pity John Metcalf 123.9 16 >26 ??.?/ ??.?/ ??.? Nine Seven Six M R bremer ???.? 14 >26 23.5/ 21.3/ 55.3 Redemption John Metcalf 125.7 14 >26 33.2/ 41.4/ 25.4 BiShot v1.0 Christian Schmidt 125.0 13 >26 ?.?/ ?.?/ ?.? Silver Talon Edgar ?.? 12 >26 20.0/ 19.9/ 60.1 Glok Ben Ford 120.2 11 >26 34.3/ 47.4/ 18.3 Erase Ken Espiritu 121.1 9 >26 28.5/ 36.8/ 34.7 C I A Anders Ivner 120.3 8 >26 26.6/ 29.6/ 43.8 Gigolo Core Warrior staff 123.6 7 >26 29.9/ 36.1/ 34.0 Khayman Ian Oversby 123.6 5 >26 33.4/ 43.7/ 22.9 Recycled Bits-- David Moore 123.2 5 >26 1.6/ 0.7/ 1.7 Liquid Fire Christian Schmidt 6.5 5 >26 30.7/ 45.8/ 23.5 Z-Shot John Metcalf 115.7 4 >26 29.7/ 43.5/ 26.8 Z-Shot II John Metcalf 115.8 4 >26 ??.?/ ??.?/ ??.? Tornado 4 Beppe Bezzi ???.? 3 >26 ??.?/ ??.?/ ??.? Falcon v0.5 Ian Oversby ???.? 2 >26 25.4/ 28.0/ 46.6 The Yokozuna Christian Schmidt 122.9 2 >26 29.5/ 35.8/ 34.7 bomber dm 123.2 2 >26 30.6/ 44.8/ 24.5 Sand-Crawler John Metcalf 116.4 2 > >Ultraviolet is lost shortly after entering the New HoF. Old adversaries >Digitalis and the Jedimp are also pushed off. >_______________________________________________________________________________ >94 - What's Old > > # %W / %L / %T Name Author Score Age >16 32.6/ 27.2/ 40.2 Newt Ian Oversby 138.1 204 > 7 35.9/ 30.6/ 33.6 Vain Ian Oversby 141.1 126 >11 34.7/ 30.0/ 35.3 Vigor Ken Espiritu 139.4 114 >17 34.3/ 30.8/ 35.0 Fixed Ken Espiritu 137.7 110 >25 33.1/ 33.7/ 33.2 Fire and Ice David Moore 132.6 99 >10 27.8/ 15.7/ 56.5 Fugitive David Moore 140.0 80 > >Newt keeps on going, though is suffering heavy losses against a couple of >new warriors. Ultraviolet is no more and Vain becomes the second oldest >warrior. Fire and Ices holds a dangerously low rank and may not be around >for the next Core Warrior. >_______________________________________________________________________________ >OLD HALL OF FAME >* means the warrior is still active. > >Pos Name Author Age Strategy > 1 Thermite II Robert Macrae 2262 Qscan -> Bomber > 2 Impfinity v4g1 Planar 1993 Stone/imp > 3 Jack in the box Beppe Bezzi 1620 P-warrior > 4 Tornado 3.0 Beppe Bezzi 1567 Bomber > 5 Torch t18 P.Kline 1539 Bomber > 6 Chameleon Myer R Bremer 1437 P-warrior > 7 Frontwards v2 Steven Morrell 1420 Oneshot > 8 Evol Cap 6.6 John Wilkinson 1299 Stone/imp > 9 quiz Schitzo 1262 Scanner/bomber >10 T.N.T. Maurizio Vittuari 1204 Bomber >11 Grilled Octopus v0.5 David Boeren 1154 P-warrior >12 Hazy Shade II John Wilkinson 1102 P-warrior >13 Stepping Stone Kurt Franke 1049 Qscan -> Vampire >14 Rosebud Beppe Bezzi 993 Stone/imp >15 Iron Gate 1.5 Wayne Sheppard 926 Scanner >16 T.N.T. pro Maurizio Vittuari 925 Bomber >17 Agony II Stefan Strack 912 Scanner >18 Barrage Anton Marsden 876 Qscan -> Paper >19 Blue Funk Steven Morrell 869 Stone/imp >20 Flurry Anton Marsden 835 Qscan -> P-warrior >21 Thermite 1.0 Robert Macrae 802 Qscan -> Bomber >22 Blue Funk 3 Steven Morrell 766 Stone/imp >23 Night Train Karl Lewin 755 Paper >24 Mirage 1.5 Anton Marsden 736 Scanner/bomber >25 Blizzard Anton Marsden 713 Qscan -> Paper >_______________________________________________________________________________ >NEW HALL OF FAME >* means the warrior is still active. > >Pos Name Author Age Strategy > 1 Probe Anton Marsden 403 Q^2 -> Bomber > 2 Blur 2 Anton Marsden 396 Scanner > 3 Damage Incorporated Anton Marsden 373 Q^2 -> Bomber > 4 Return Of The Jedimp John K W 357 Q^2 -> Stone/imp > 5 unrequited love kafka 346 Q^2 -> Paper > 6 Impish v0.2 Ian Oversby 345 Stone/imp > 7 Gigolo Core Warrior staff 332 Q^2 -> Stone/imp > 8 Falcon v0.3 Ian Oversby 275 P-warrior > 9 Nine Seven Six M R Bremer 232 Q^2 -> Stone/imp >10 Rosebud Beppe 218 Stone/imp >11 Q^2 Miro Anders Ivner 214 Q^2 -> Scanner/bomber >12 Instant Wolf 3.4 Edgar 205 P-warrior >13 Newt Ian Oversby 204 * Q^2 -> Stone/imp >14 Goldfinch P.Kline 201 P-warrior >15 Simple v0.4b Ian Oversby 197 QScan -> Stone/imp >16 Trident^2 John K W 195 Q^2 -> Stone/imp >17 ompega Steven Morrell 189 Stone/imp >18 Frogz Franz 172 Q^2 -> Paper >19 The Machine Anton Marsden 164 Scanner >20 Memories Beppe 152 Scanner >21 Head or Tail Christian Schmidt 142 Q^2 -> Paper >22 Electric Head Anton Marsden 140 P-warrior >23 Tiberius 3.1 Franz 130 Q^2 -> Paper >24 Vain Ian Oversby 126 * Q^2 -> Stone/imp >25 Ultraviolet-B Ken Espiritu 120 Q^2 -> Paper > >Ultraviolet enters the Hall and stops at 24th while Newt gains another five >places to 13th. New entry Vain returns Oversby to 5 warriors in the New HoF. >_______________________________________________________________________________ >Current Status of the Internet Pizza Server Beginner Hill: > >Hill Specs: > coresize: 8000 > max. processes: 8000 > duration: after 80,000 cycles, a tie is declared. >max. entry length: 100 > minimum distance: 100 > maximum age: At age 100, warriors are retired. > rounds fought: 200 > instruction set: ICWS '94 Draft > > # %W / %L / %T Name Author Score Age > 1 46.0/ 34.3/ 19.7 Spat the dummy. Steve Gunnell (oh ye 157.8 50 > 2 43.2/ 34.1/ 22.8 Arsonic C P._V._K. 152.2 67 > 3 43.7/ 39.7/ 16.6 Fat Man A. S. Mehlos 147.8 64 > 4 41.2/ 35.3/ 23.4 No Time To Think A. S. Mehlos 147.1 51 > 5 43.2/ 39.3/ 17.6 Reconnaissance v0.1 Ben Ford 147.0 15 > 6 40.7/ 34.4/ 24.8 Ice Pick Willie Ben Ford 147.0 33 > 7 34.5/ 23.4/ 42.1 iWeasel WFB/Ian Oversby 145.5 90 > 8 42.2/ 39.7/ 18.2 Death kiss with a dash of Anders Rosendal 144.6 10 > 9 41.6/ 38.7/ 19.7 Security Purge Ben Ford 144.5 4 >10 42.6/ 41.9/ 15.5 Scanzonato Franco Solerio 143.3 85 >11 35.5/ 28.2/ 36.3 A man with a Gun Ben Ford 142.8 35 >12 32.4/ 25.1/ 42.5 Frusteration II A. S. Mehlos 139.7 54 >13 26.3/ 14.7/ 59.0 Redemption John Metcalf 138.0 26 >14 28.2/ 19.1/ 52.7 Glok Ben Ford 137.3 34 >15 40.3/ 44.2/ 15.5 Hunter Ben Ford 136.4 38 >16 29.8/ 23.7/ 46.5 ModerationRevisited A. S. Mehlos 136.0 70 >17 39.8/ 44.0/ 16.2 Sticky taped together 1.2 Steve Gunnell 135.6 61 >18 38.1/ 41.4/ 20.5 Reconnaissance Ben Ford 134.8 1 >19 40.7/ 47.7/ 11.5 v15variation Steve Gunnell 133.8 16 >20 25.9/ 18.3/ 55.8 H-Bomb 9k Josh Yeager 133.4 47 >21 25.6/ 18.3/ 56.2 H-Bomb 9 Josh Yeager 132.9 48 >22 30.5/ 29.1/ 40.5 Rocking-Chair 94 v0.25 Leonardo Humberto 131.9 45 >23 24.3/ 19.6/ 56.1 15,18 v1.1 Joshua Houk 129.1 44 >24 27.6/ 27.3/ 45.1 Two kinds of chairs Leonardo Humberto 127.9 3 >25 28.7/ 31.2/ 40.1 Kindly Leonardo Humberto 126.2 2 > >The '94b hill has aged 103 since last issue, with several new players making >an appearance. Camarena's SpiImp expired of old age, as did Stajp's StiY v1.0 >and StiZ v1.0, Arsonic B by PVK, Cut n Paste by Howard, Weasel by WFB and >Coleman's warriors Jam Major Zick 3, Hostile Takeover and Multiply or Drop??. >_______________________________________________________________________________ >Current Status of the KOTH.ORG '94 No Pspace Hill: > >Hill Specs: > coresize: 8000 > max. processes: 8000 > duration: after 80,000 cycles, a tie is declared. >max. entry length: 100 > minimum distance: 100 > rounds fought: 250 > instruction set: ICWS '94 Draft, excluding ldp and stp > > # %W/ %L/ %T Name Author Score Age > 1 45/ 38/ 17 Zooom... John Metcalf 152 53 > 2 44/ 38/ 18 Boys are Back in Town 1.1 Philip Kendall 151 78 > 3 47/ 45/ 8 He Scans Anew P.Kline 149 4 > 4 38/ 28/ 34 Recovery Ian Oversby 147 76 > 5 45/ 45/ 10 Win! David Moore 145 51 > 6 38/ 30/ 32 Fixed Ken Espiritu 145 136 > 7 28/ 12/ 59 The Fugitive David Moore 144 155 > 8 28/ 13/ 58 _romanian_killah_ Costin Bontas rulez 144 45 > 9 36/ 30/ 34 Blacken Ian Oversby 143 63 >10 35/ 28/ 36 Vain Ian Oversby 143 153 >11 40/ 38/ 22 Floody River P.Kline 142 102 >12 36/ 30/ 33 The Stormbringer Christian Schmidt 142 87 >13 36/ 31/ 33 Baseline Plus Ken Espiritu 141 134 >14 43/ 45/ 12 Red Carpet David Moore 140 94 >15 33/ 25/ 42 Brigadeer M Joonas Pihlaja 140 72 >16 33/ 27/ 40 Gemini Dream John K Wilkinson 139 159 >17 39/ 42/ 19 The Machine Anton Marsden 137 142 >18 36/ 37/ 27 Liquid Fire Christian Schmidt 135 49 >19 34/ 33/ 33 Head or Tail Christian Schmidt 134 124 >20 37/ 41/ 22 Sharkrage Christian Schmidt 132 1 > >Now is the time of the scanners, which take four of the top five ranks. >_______________________________________________________________________________ >Current Standings of the Oversby Autumn Corewar Tournament: > > : '94 Tiny Grey Build Multi : Total > Macrae : 87.63 69.55 74.28 100.00 74.87 : 406.33 > Pihlaja : 98.66 100.00 100.00 x 84.82 : 383.48 > Schmidt : 99.46 70.55 75.41 77.34 50.26 : 373.02 >.WFB : 91.10 22.42 49.35 56.28 100.00 : 319.15 >.Khuong : 75.82 60.37 65.86 63.96 x : 266.01 >.Mehlos : 71.22 29.45 76.11 76.23 x : 253.01 > Hale : 99.12 66.52 18.68 60.92 x : 245.24 > Moore : 100.00 63.67 62.29 x x : 225.96 >.Gunnell : 72.82 46.50 19.46 x 47.12 : 185.90 >.Yeager : x 24.93 44.22 60.03 34.55 : 163.73 > Kendall : 90.04 35.48 3.21 x x : 128.73 >.Duff : 23.05 30.67 10.51 x x : 64.23 > >First place in the opening round was taken by Moore with his Recycled Bits, >after which Pihlaja dominated. His Genetic Beef easily took top spot in the >modified tiny round, and Quick Cooking further increased his lead when it >performed best against the grey warrior. Assugg won the build a warrior >round for Macrae, and finally, in the multi warrior round WFB's group of >warriors triumphed. > >With three more round to play, there is still time to enter. Remember, >only the best 6 results count for veterans, or the best 7 for beginners. >Check the tournament's home page for details: > > http://www.geocities.com/TimesSquare/Realm/2443/ >_______________________________________________________________________________ >The Hint - The P^3 Switcher by David Moore > >Redcoders often design their pspace-based switching routines in the form of >a state-transition diagram: > > .->------. L = loss > | | W = win > W,T | __V______ T = tie > (w0) | | |<---. > `--<--| State 0 | \ w0 = strategy A (e.g. scissors) > `---------' `. w1 = strategy B (e.g. paper) > | L (w1) | > | | > ____V____ | > .---->| | | > | | State 1 |---->--' > W,T | `---------' > (w1) | | L (w0) > `--<----' > >Each round gives the program a new chance to change its mode of operation, >depending on the previous state and the result of the previous battle. In >addition, there is some action (or strategy) associated with each transition >between states: > > State Input Next Action > > 0 L 1 w1 > 0 W 0 w0 > 0 T 0 w0 > 1 L 0 w0 > 1 W 1 w1 > 1 T 1 w1 > >Note that this pspacer would run w0 upon all transitions to state 0, and >that it would run w1 upon all transitions to state 1. Most interesting P^2 >switchers execute the same program upon all transitions to the same state. >Can you see why? > >If we assume that all transitions to a particular state run the same >warrior, then we no longer need to specify an action for each transition; >we simply specify an action for each state. That leads to a more compact >representation of the table: > > State Action L W T > > 0 w0 1 0 0 > 1 w1 0 1 1 > >The corresponding diagram becomes: > > .->------. L = loss > | | W = win > W,T | __V______ T = tie > | | | > | | State 0 |<---. > `--<--| (w0) | \ w0 = strategy A (e.g. scissors) > `---------' `. w1 = strategy B (e.g. paper) > | L | > | | > ____V____ | > .---->| | | > | | State 1 | | > | | (w1) |---->--' > W,T | `---------' > | | L > `--<----' > >The switcher for Electric Head has that property. Specifically, Electric >Head implemented the following state-transition table: > > State Action L W T > > 0 w0 1 0 1 <---- initial state > 1 w0 2 0 2 > 2 w0 3 0 3 > 3 w1 4 3 3 > 4 w1 5 3 4 > 5 w1 6 4 5 > 6 w2 7 6 0 > 7 w3 8 7 7 > 8 w3 9 7 8 > 9 w3 3 8 9 > >A P^3 switcher can implement the same table in less time and in less space >than Electric Head's original code: > >think ldp.a #0, in > ldp.a #PSTATE, table > mod.ba *in, table > stp.b *table, #PSTATE > >table jmp }0, 441 ; = (44*10) + 1 = (49*9) + 0 = (40*11) + 1 ;initial state > dat w0, 882 ; = (88*10) + 2 = (98*9) + 0 = (80*11) + 2 > dat w0, 333 ; = (33*10) + 3 = (37*9) + 0 = (30*11) + 3 > dat w1, 894 ; = (89*10) + 4 = (99*9) + 3 = (81*11) + 3 > dat w1, 345 ; = (34*10) + 5 = (38*9) + 3 = (31*11) + 4 > dat w1, 346 ; = (34*10) + 6 = (38*9) + 4 = (31*11) + 5 > dat w2, 627 ; = (62*10) + 7 = (69*9) + 6 = (57*11) + 0 > dat w3, 898 ; = (89*10) + 8 = (99*9) + 7 = (81*11) + 7 > dat w3, 349 ; = (34*10) + 9 = (38*9) + 7 = (31*11) + 8 > dat w3, 53 ; = ( 5*10) + 3 = ( 5*9) + 8 = ( 4*11) + 9 > > dat w3, 349 ; = (34*10) + 9 = (38*9) + 7 = (31*11) + 8 ;unreachable > >in dat 0, 10 ; must have non-zero b-field in the previous cell > spl 1, 9 > spl 1, 11 > >For example, after a transition to state 4, the pspacer will remember >the code 345. In the case of a loss, the next state will be decoded by >345 mod 10; after a win, the next state would be 345 mod 9; after a tie, >the next state would be 345 mod 11. Each of these decodings gives the >proper transition from one state (4) to the next (5, 3, or 4). > >Note that we cannot specify different warriors for two different transitions >to the same state. However, as we have seen before, that is a very soft >restriction. Another restriction is that the 0th state must use the same >warrior as the 1st state. > >Now we show how to construct the codes that are used in the table. This >requires some abstract algebra, but the results will be summarized below. > >First, we must introduce some notation. > >Operators listed from highest to lowest priority: > > gcd(a,b) the greatest common divisor of a and b > a =< b a is less than or equal to b > a >= b a is greater than or equal to b > a and b logical and > a -> b a implies b (if a is true, then b is true) > >"mod" will no longer refer to the MOD operation from redcode. Instead: > > a mod n a modulo n > a *' b (mod n) the product of a and b modulo n > a +' b (mod n) the sum of a and b modulo n > a == b (mod n) a is congruent to b modulo n (also: n divides a-b) > >I will borrow the % operation from the C language, which is similar to the >MOD from redcode: > > a % b the unique c such that 0 =< c < b and c == a (mod b) > >One of the theoretical results requires some more notation: > > Z the set of all integers > Z mod n the set of all congruence classes modulo n > G x H the group formed by the Cartesian product of groups G and H > >Modular arithmetic should look familiar to Redcoders, since all arithmetic >on the standard hills is done in Z mod 8000. > >Examples: > > 1 == 4 (mod 3) -> 3*k = 1-4 for some integer k > > 2 *' 3 == 1 (mod 5) > > (2 * 3) % 5 = 1 > > gcd(3,3) = 3 > gcd(2,3) = 1 > gcd(2,4) = 2 > >We begin with a semi-formal description of the switcher: > > .------------------------------------------------------. > | P^3 switcher | > |------------------------------------------------------| > | r,s,t are positive integers | > | | > | For each state in the table, there are non-negative | > | integers p,a,b,c such that p < CoreSize and | > | | > | a < r and p == a (mod r) and | > | b < s and p == b (mod s) and | > | c < t and p == c (mod t) | > `------------------------------------------------------' > >There will be different p,a,b,c for each state. However, since each state >may be considered independently, we won't bother to put subscripts on those >variables. > >In the example above, r = 10, s = 9, and t = 11. Depending on the state, >p could be 441, 882, 333, ..., or 53. In the 0th state, a = 1, b = 0, >and c = 1. > >To guarantee that we can compute any transition table, we need to choose >r,s,t such that for all possible a,b,c, there is a value for p such that >the above properties hold. In that case, there are r*s*t possible triplets >(a,b,c). It would be nice if every p between 0 and r*s*t-1 resulted in a >different triplet (p mod r, p mod s, p mod t). Then every possible triplet >(a,b,c) could be computed by choosing one of the first r*s*t non-negative >integers for p. That would guarantee that we can compute any transition >table if r*s*t does not exceed CoreSize. > >Using some results from group theory, we can make those guarantees true >if gcd(r,s)=1 and gcd(r,t)=1 and gcd(s,t)=1. For ambitious mathematicians >who want to prove that statement, two of the relevant theorems are: > > Z mod m x Z mod n is cyclic if and only if gcd(m,n)=1. > > Every finite cyclic group of order n is isomorphic to Z mod n. > >To express any possible transition table with n states, we must be able >to compute all triples (a,b,c) such that ashould choose r,s,t such that r >= n, s >= n, and t >= n. If we do that, >then we can assume that either r>n, s>n, or t>n (otherwise, either n=1, >gcd(r,s)>1, gcd(r,t)>1, or gcd(s,t)>1). > >The result is that we will have some extra states which are not reachable >from the transitions specified by our n-state table. We should specify the >transitions for those unreachable states just in case a lucky opponent >brainwashes the switcher. That is why we added an extra table entry in the >example from Electric Head. We chose the same transitions as state 8 since >we hypothesized that Carbonite was the most brainwash-resistant component. > >Since the size of the table will be the maximum value of r,s,t, we should >choose r,s,t to minimize max{r,s,t}. Since r,s,t are at least as large as n, >we can't achieve any result that is better than s=n, r=n+1, and t=n+2. In >fact, if n is odd, then that particular assignment does satisfy all of the >constraints. If n is even, then gcd(r,t) = gcd(n,n+2) = 2, so we are forced >to look for larger r,s, or t. In that case, we can simply add one state to >the table (to make n odd) to achieve the next best possible result. > >That gives us the following rule for selecting r,s,t for an n-state table: > > If n is odd, then m = n+1. > If n is even, then m = n+2. > > r = m, s = m-1, t = m+1. > >Now that we have fixed r,s,t, we can compute the value p for each state >given a,b,c. We use the following result: > > .-----------. > | Theorem | > `-----------' > >Given a,b,c,m,n,i,j,p such that > > m = n+1 if n is odd > m = n+2 if n is even > > 0 =< a < m and > 0 =< b < m-1 and > 0 =< c < m+1 > > i = b+c-2*a > > j = (i+1+m)/2 if i is odd > j = i/2 if i is even > > p = (j*(m-1)+b-a)*m+a > >Then > > p == a (mod m) > p == b (mod m-1) > p == c (mod m+1) > > .-----------. > | Proof | > `-----------' > >Suppose that i is odd. > > j = (i+1+m)/2 > -> j = (i+1)/2 + m/2 (since m is even and i is odd) > -> 2*j = (i+1) + m > -> 2*j == i+1+m (mod m+1) > -> 2*j == i +' m+1 (mod m+1) > -> 2*j == i +' 0 (mod m+1) > -> 2*j == i (mod m+1) > >Suppose that i is even. > > j = i/2 -> 2*j = i -> 2*j == i (mod m+1) > >In either case, 2*j == i (mod m+1). > > 2*j == i (mod m+1) > -> 2*j == b+c-2*a (mod m+1) > -> j *' 2 == b+c-2*a (mod m+1) > -> j *' (-2) == 2*a-c-b (mod m+1) > -> j *' (m+1-2) == 2*a-c-b (mod m+1) > -> j *' (m-1) == 2*a-c-b (mod m+1) > -> j*(m-1) == 2*a-c-b (mod m+1) > -> j*(m-1)+b-a == a-c (mod m+1) > >Substitute k for j*(m-1)+b-a. > > k == a-c (mod m+1) > -> k*(-1) == c-a (mod m+1) > -> k *' (-1) == c-a (mod m+1) > -> k *' (m+1-1) == c-a (mod m+1) > -> k *' m == c-a (mod m+1) > -> k*m == c-a (mod m+1) > -> k*m+a == c (mod m+1) > -> (j*(m-1)+b-a)*m+a == c (mod m+1) > -> p == c (mod m+1) > >This proves 1/3 of the theorem. Furthermore, > > k = j*(m-1)+b-a -> j*(m-1) = k-(b-a) > -> k == b-a (mod m-1) > -> k*1 == b-a (mod m-1) > -> k *' 1 == b-a (mod m-1) > -> k *' (m-1+1) == b-a (mod m-1) > -> k *' m == b-a (mod m-1) > -> k*m == b-a (mod m-1) > -> k*m+a == b (mod m-1) > -> (j*(m-1)+b-a)*m+a == b (mod m-1) > -> p == b (mod m-1) > >For the last part, we simply observe: > > p = k*m+a -> k*m = p-a -> p == a (mod m) > >Thus concluding the proof of this theorem. > > .-----------. > | Summary | > `-----------' > >In summary, to construct a table of n states: > > m = n+1 if n is odd > m = n+2 if n is even > > For each state, choose integers a,b,c such that > 0 =< a < m and > 0 =< b < m-1 and > 0 =< c < m+1 > > i = b+c-2*a > > j = (i+1+m)/2 if i is even > j = i/2 if i is odd > > p = (j*(m-1)+b-a)*m+a % m*(m-1)*(m+1) > > p % m = a > p % m-1 = b > p % m+1 = c > > .-----------. > | Example | > `-----------' > >For Electric Head, the number of states is n = 10. Normally, m = 12 to >guarantee that all possible tables can be implemented. However, in this >case, m = 10 will work if we choose to decode with m on loss, m-1 on win, >and m+1 on tie. This implementation works because we know the particular >a,b,c values for each state and they are within the bounds: > > 0 =< a < 10 (a is the transition on loss) > 0 =< b < 9 (b is the transition on win) > 0 =< c < 11 (c is the transition on tie) > >Now we must determine the p value for each state. For state 0, > > a = 1 > b = 0 > c = 1 > > i = 0+1-2*1 = -1 > > j = (-1+1+10)/2 = 5 (since i was odd) > > p = (5*(10-1)+0-1)*10+1 % 10*(10-1)*(10+1) > = (5*9-1)*10+1 % 10*9*11 > = 441 % 990 > >So p = 441 is the value that will actually appear in the redcode. We verify >that it is indeed correct: > > 441 % 10 = 1 > 441 % 9 = 0 > 441 % 11 = 1 > >Note that m*(m-1)*(m+1) = 990 does not exceed CoreSize = 8000. Since >20*19*21 = 7980, any table with 19 states can be implemented in a CoreSize >of 8000. Of course, larger tables are possible with tricky coding. > >Now the rest is up to you. Good luck and happy P-spacing! >_______________________________________________________________________________ >Extra Extra - >Zooom... by John Metcalf > >Following in the great Core Warrior tradition of publishing warriors >employing new techniques, here is Zooom... > >Zooom is a scanner which uses the well known Mirage scan with a unique >twist - the clear instruction is not included in the main loop until >something is detected. This increases initial speed. > >The constants have been chosen with care. The scan step is non-optimal, >since better find-x values would result in the scanner detecting itself >after fewer scans and switching to the dclear sooner. > >The boot distance is optimal, ensuring Zooom doesn't detect it's boot >routine until after 923 scans. Perhaps reducing this to 920 scans, to >place Zooom closer to the decoy might improve it's performance against >oneshots slightly ;-) > >Testing showed dclear to be the best end-game strategy rather than >switching to a dat bomb as Neverland did, or using a multi-pass clear. >Anyway, without further ado, here's the code: > >;redcode-94 >;name Zooom... >;author John Metcalf > >;strategy .5 scan -> .33 scan/.33 clear -> dclear >;strategy v0.1 self modifying scan loop >;strategy v0.2 irregular scan pattern >;strategy v0.3 boot and tailored decoy > >;assert CORESIZE==8000 > > org boot > >; [ Decoy ] >q for 22 > for 2+(q%5==0||q%5==2||q%6==2||q%16==3) > spl #m*3039, {m*3359 > rof > spl #0, 0 ; scanned > rof > >; [ Boot ] >boot: >q for 10 > mov sGat+q-1, >sGat > rof > jmp @0, bDis+m-sGat > >bDis equ (boot+3+923*step) ; optimal distance >step equ 1671 ; non-optimal >numb equ 2230 ; number of scans >cGat equ (sGat-2) > >; [ Scan ] >sGat:mov }m, *bDis ; multi-function > mov sBmb, >sGat >sLoo:sub #step, #step*numb >m: jmz.f sLoo, @sLoo ; a-field mutates > mov.b sLoo, sGat > jmn.a {m, *sGat > >; [ Clear ] >sBmb:spl 0, 0 >cLoo:mov cBmb, >cGat > djn.f cLoo, >cGat >cBmb:dat <2667, 2-cGat > end >_______________________________________________________________________________ >Questions? Concerns? Comments? Complaints? Mail them to people who care. >Authors: Beppe Bezzi , Anton Marsden >, Christian Schmidt , >Philip Kendall and John Metcalf > > > > -- Nebuchadnezzar From: Paul Kline Subject: Re: Scanner test Date: 1999/03/14 Message-ID: <36EC42C7.2000@acad.drake.edu>#1/1 Robert Macrae wrote: > > One problem is that if you scan anything long but containing gaps -- > like boot-code or some DJN trails for example -- you will leave a hole > in your scan pattern 2667 long. You will miss the same hole on your next > several passes, until you have carpetted every part of the boot code. > This means that against warriors which boot by +100..+2600 or have a > trail at -100..-2100 you are toast. Yes! R. Macrea is now the proud owner of nine-line CLP source. J. Metcalf emailed me with another explanation which is also problematic, but never seemed to get it posted on r.g.c. However Robert's is the very serious problem I encountered. Paul Kline pk6811s@acad.drake.edu From: Robert Macrae Subject: Re: Scanner test Date: 1999/03/14 Message-ID: <36EBFE9E.25C4@dial.pipex.com>#1/1 Paul Kline wrote: > I stumbled across a scanner strategy that held possibility for > killing 3-point imps, and it works very well against Fugitive > and "the romainian killah" (great name!) but not so well against other > programs. > > The idea is that after finding something your next scan-step should > be 2667, thus quickly wiping any 3-point imps out there, and permitting > a simple one-pass dat-clear to finish. After finding dat-zero, > use some optimal scan-step. > > The first person to post to rec.games.corewar an explanation of > why this strategy has a fatal flaw against the Hill will receive > a prize having the only true value in this game - code! I will > send them a copy of clp-tiny, Curious Little Program in only > nine lines. I had a go at this in my attempts to crack Silk/Imps. One problem is that if you scan anything long but containing gaps -- like boot-code or some DJN trails for example -- you will leave a hole in your scan pattern 2667 long. You will miss the same hole on your next several passes, until you have carpetted every part of the boot code. This means that against warriors which boot by +100..+2600 or have a trail at -100..-2100 you are toast. Another is that against Silks you end up making a lot of +2667 jumps, and this leads to a "lumpy" scan-pattern with several parts of core scanned multiple times. Finally, if you face the kind of Silk which lays strips of replicators you will carpet only the first of each strip before bouncing away... not good. -- Regards, Robert Macrae From: M Joonas Pihlaja Subject: Repost: Round 8 results and Final analysis Date: 1999/03/19 Message-ID: #1/1 Apologies if you receive this twice. I've been acting as liaison between Ian and the news group. There has been a technical problem at my end and possibly the list processor as well. The message made it fine (on Wed., tardy by two days) to the corewar-l list, but apparently it hasn't been forwarded to the news group. I'm may be jumping the gun here, but thought it better to post the results rather than risk aggravating players any more. Joonas ------------------------------------ From oversby@hotmail.com Fri Mar 19 17:21:48 1999 Date: Mon, 15 Mar 1999 01:23:04 PST From: Ian Oversby To: jpihlaja+cw@cc.helsinki.fi Subject: Round 8 Results and Final Analysis Round 8 Results and Final Analysis Pihlaja wins the final round with an Irongate Scanner protected by a paper. W. F. B. is only five points behind with a modified version of IWeasel (an imp/stone) and Macrae slightly increases his score with a submission based on HSA. Better late than never for Ben Ford with a Q^2 -> paper. All this means that Pihlaja wins the tournament with an impressive score of 570 - just 30 points less than the maximum. Schmidt didn't enter a warrior this round but nevertheless comes second overall just 1.5 points ahead of Macrae. W. F. B. finishes strongly to top the beginners just 40 points short of the front three despite the rather negative strategy lines. I hope to place all the warriors and a rather tidied up set of reports on my website at some point in the next two or three weeks. Farewell, Ian ;redcode-94 ;name 8001: A Corewar Odyssey ;author Ben Ford ;strategy qscan -> paper ;strategy ;strategy Mostly taken from John Metcalf's Innocuous. ;strategy I couldn't find anything to beat it (in the ;strategy little time I took) so I hope he does not ;strategy mind me using it. ;strategy Added dual bomber to qscan based on the one ;strategy in Fixed. ;redcode ;name 8001: A Pathetic Odyssey ;author WFB ;strategy Yet another lame imp-stone. ;strategy For Ian's Round 8. ;strategy This is barely tested. All I did was change a few numbers... ;strategy Not to mention the fact that I know almost nothing about imps. ;strategy I'm not sure how well the imp will work with the changes I made... ;strategy Oh well. I just wanna keep 4th. I got about 100 points ahead and ;strategy Behind me, so it shouldn't be too hard. Knowing me, however... ;strategy As I said, this is a lousy imp-stone I made for Weasel. ;strategy Just changed the constants. Kept the spl 0. Otherwise it suicides ;strategy A whole lot faster...=) ;strategy I should make a p-spacer or include something to kill paper but ;srategey it is I...WFB! Record holder for longest time playing and still ;strategy Getting nowhere on the -b hill. Whatever. Ciao... ;redcode-94 ;name He Scans Again (Revised) ;author Robert Macrae after P.Kline ;strategy Trivial mod to HSA, using SPL #0, {0 bomb and sne.f ;strategy to avoid rebombing trails. ;redcode ;name 5 minute warrior ;author Paul-V Khuong ;redcode ;name Give it a Proper Name ;author M Joonas Pihlaja ;strategy p-space: scanner, paper Round Normalised Normalised Rank Author 8 Round 8 Total Score Score Score 1. Joonas Pihlaja 1472 100 570.80 2. Christian Schmidt 0 0 515.02 3. Robert Macrae 1201 81.59 513.69 4. W. F. B. 1403 95.31 473.57 5. Paul-V Khuong 229 15.56 323.47 6. Steve Gunnell 0 0 270.06 7. Andrew Mehlos 0 0 252.99 8. Robert Hale 0 0 245.24 9. David Moore 0 0 225.97 10. Josh Yeager 0 0 163.73 11. John Metcalf 0 0 139.96 12. Philip Kendall 0 0 128.27 13. Ben Ford 1044 70.92 70.92 14. Simon Duff 0 0 63.57 Get Your Private, Free Email at http://www.hotmail.com From: Philip Kendall Subject: Re: Beginner to Core Wars needs help! Date: 1999/03/16 Message-ID: #1/1 Ciaran Hamilton writes: > You UNIX guys... (shakes head) I can't believe I'd ever meet > any. Quite a few on here :-) > You probably have a Geek Code and all (for the uninitiated, you > can read about it at http://www.geekcode.com) Ummm... might do! > >;redcode > >;name Stupid > >;author C. Hamilton > > > >org start > > > >bomb: dat 0,0 > >start: mov -1,1 > > What this should do is copy a DAT bomb as the next instruction in > the program, thereby killing itself. Am I right? And is this program > "legal", or should I add/remove something? 1) That's precisely what it will do. 2) Completely legal. > Thanks for responding so quickly... talk to you later. Well, it's certainly more interesting than fluctuations in the Cosmic Microwave Background... BTW, One guide which might be of use to is Steve Bailey's Guide for Beginner's -- again, see either KotH or Pizza. This starts right at the beginning, and gets on to some interesting stuff at the end; it's certainly what got me going in CW. HTH Phil -- / Philip Kendall (pak21@cam.ac.uk pak21@kendalls.demon.co.uk) \ \ http://www.kendalls.demon.co.uk/pak21/corewar/index.html / From: iltzu@sci.fi (Ilmari Karonen) Subject: Re: Beginner to Core Wars needs help! Date: 1999/03/16 Message-ID: <7cm249$5jn$1@tron.sci.fi>#1/1 On Tue, 16 Mar 1999 15:02:33 GMT, Ciaran Hamilton (kiwihead@my-dejanews.com) wrote: : Surely SPL bombs would *help* the enemy? If I remember, doesn't SPL start a : new process? Sure. The catch is that the new process won't be doing anything except making more new processes. And since the processing time given to a warrior is constant and divided evenly between all its processes, soon the bombed warrior will have gazillion processes of which only a few percent are doing anything useful. That's why they're called stun bombs. Of course you'll need to let the poor thing out of its misery with a DAT wipe later in order to win. -- <-- Ilmari Karonen --><-- http://www.sci.fi/~iltzu/ --><-- iltzu@sci.fi --> "I am a student at UC Berkeley, and I am taking this class where we have to go to a news group and ask an "intelligent question"." -- a luser in a.a-a From: Ciaran Hamilton Subject: Re: Beginner to Core Wars needs help! Date: 1999/03/16 Message-ID: <7clrq2$7fu$1@nnrp1.dejanews.com>#1/1 Hi Phil, > > Hi! I'm Ciaran Hamilton, aged 16, and I would like to know more about this > > Core Wars thing. First off... is it any good? > > Welcome to Core War. However, it is actually really rubbish and we all > play it because we like being really bored! > > Of course it's good :-) OK, so it was a stupid question, I have to admit. :) > > If somebody could point me in the direction of a beginner's tutorial > > to Redcode, I'd be very happy... > > Try Ilmari Karonen's Guide. Can't remember the FAQ, but it's linked > from my pages :-) Do you mean http://www.sci.fi/~iltzu/corewar/guide.html? If so, I've already seen it. Very good, I have to admit. But I still don't feel confident. Mind you, this is only my second post :) > > Thirdly, do you need a program like pMARS to write Redcode, or can you just > > do it in Notepad? If the latter, why do you need pMARS? Also, surely having a > > program like pMARS to simulate it is pointless unless you have multiple > > warriors to play with? Also, isn't it dangerous (that is, won't other > > non-warrior processes like MS-DOS, etc. get killed off as well?) > > You write your Redcode in your favourite text editor (which should not > be Notepad... Emacs rulez! ). pMARS is then a > simulator, which lets the warriors fight against each other. Programs > here run in a *simulated* core, so they can't damage anything else in > memory. (Of course, if you were running a proper operating system, > they couldn't anyway, but if you're running DOS...) You UNIX guys... (shakes head) I can't believe I'd ever meet any. You probably have a Geek Code and all (for the uninitiated, you can read about it at http://www.geekcode.com) > > * Bombs / bombing (DAT bombs in particular), > > * Imps, along with Imp-related stuff (Imp-Spirals, Imp-Gates, etc.) > > > > AFAIK, bombing involves replaces the contents of one instruction in memory > > with another, thereby causing the program which executes it to (possibly) > > terminate. Am I right? > > Basically, yes! At least for dat bombs, other bombs (eg spl) can have > more subtle effects. Surely SPL bombs would *help* the enemy? If I remember, doesn't SPL start a new process? > For imps, chapter 1 of Steven Morrell's book (available on KOTH or > Pizza) is a good place to start. Thanks, I'll take a look... Below is an example program that I just cooked up on the spot, that should commit suicide: >;redcode >;name Stupid >;author C. Hamilton > >org start > >bomb: dat 0,0 >start: mov -1,1 What this should do is copy a DAT bomb as the next instruction in the program, thereby killing itself. Am I right? And is this program "legal", or should I add/remove something? Thanks for responding so quickly... talk to you later. - Ciaran. -----------== Posted via Deja News, The Discussion Network ==---------- http://www.dejanews.com/ Search, Read, Discuss, or Start Your Own From: Philip Kendall Subject: Re: Beginner to Core Wars needs help! Date: 1999/03/16 Message-ID: #1/1 Ciaran Hamilton writes: > Hi! I'm Ciaran Hamilton, aged 16, and I would like to know more about this > Core Wars thing. First off... is it any good? Welcome to Core War. However, it is actually really rubbish and we all play it because we like being really bored! Of course it's good :-) > If somebody could point me in the direction of a beginner's tutorial > to Redcode, I'd be very happy... Try Ilmari Karonen's Guide. Can't remember the FAQ, but it's linked from my pages :-) > Thirdly, do you need a program like pMARS to write Redcode, or can you just > do it in Notepad? If the latter, why do you need pMARS? Also, surely having a > program like pMARS to simulate it is pointless unless you have multiple > warriors to play with? Also, isn't it dangerous (that is, won't other > non-warrior processes like MS-DOS, etc. get killed off as well?) You write your Redcode in your favourite text editor (which should not be Notepad... Emacs rulez! ). pMARS is then a simulator, which lets the warriors fight against each other. Programs here run in a *simulated* core, so they can't damage anything else in memory. (Of course, if you were running a proper operating system, they couldn't anyway, but if you're running DOS...) > * Bombs / bombing (DAT bombs in particular), > * Imps, along with Imp-related stuff (Imp-Spirals, Imp-Gates, etc.) > > AFAIK, bombing involves replaces the contents of one instruction in memory > with another, thereby causing the program which executes it to (possibly) > terminate. Am I right? Basically, yes! At least for dat bombs, other bombs (eg spl) can have more subtle effects. For imps, chapter 1 of Steven Morrell's book (available on KOTH or Pizza) is a good place to start. HTH Phil -- / Philip Kendall (pak21@cam.ac.uk pak21@kendalls.demon.co.uk) \ \ http://www.kendalls.demon.co.uk/pak21/corewar/index.html / From: Ciaran Hamilton Subject: Beginner to Core Wars needs help! Date: 1999/03/16 Message-ID: <7cljmn$61$1@nnrp1.dejanews.com>#1/1 Hi! I'm Ciaran Hamilton, aged 16, and I would like to know more about this Core Wars thing. First off... is it any good? I am VERY new to this group and to Core Wars, so I'm afraid that I haven't had the chance to scan the newsgroup for messages similar to this, so if I come up with questions that have already been answered in the group zillions of times before (but not in the FAQ), then I'm sorry, but I really want to try this thing out! I didn't even go into lurk mode for a bit before posting, which I normally do... I've read and reread the FAQ several times, and think that I might like to try having a go. Unfortunately, I've never heard of Redcode before, but from the FAQ's examples, I gather it's (sort of) similar to Assembler, right? If so, then I have to say I'm sort of okay at Assembler, but I wouldn't like to try anything big in it. If somebody could point me in the direction of a beginner's tutorial to Redcode, I'd be very happy... I saw in the FAQ that there was a good one at: http://www.koth.org/papers.html I haven't had time to look at it yet, but I will do. If anybody can talk me through it, though, that would be even better. Thirdly, do you need a program like pMARS to write Redcode, or can you just do it in Notepad? If the latter, why do you need pMARS? Also, surely having a program like pMARS to simulate it is pointless unless you have multiple warriors to play with? Also, isn't it dangerous (that is, won't other non-warrior processes like MS-DOS, etc. get killed off as well?) Also, although the FAQ has a good jargon-busting glossary, I would still appreciate it if anybody could explain further the meaning of: * Bombs / bombing (DAT bombs in particular), * Imps, along with Imp-related stuff (Imp-Spirals, Imp-Gates, etc.) AFAIK, bombing involves replaces the contents of one instruction in memory with another, thereby causing the program which executes it to (possibly) terminate. Am I right? If anybody has any further information which could possibly be of any use to me (a complete beginner to Redcode, a novice in Assembler), I would appreciate any help I could get. Talk to you later... and who knows, I might be on a Hill near *you* in the near future... :) - Ciaran. -----------== Posted via Deja News, The Discussion Network ==---------- http://www.dejanews.com/ Search, Read, Discuss, or Start Your Own From: Ciaran Hamilton Subject: Re: Beginner to Core Wars needs help! Date: 1999/03/17 Message-ID: <7cojt0$k89$1@nnrp1.dejanews.com>#1/1 Sorry - this is my second post, but I forgot to ask something in my previous one - can I download all 10 issues of Steve's Guide for Beginners as one big .ZIP file somewhere? If so, where? Thanks... - Ciaran. -----------== Posted via Deja News, The Discussion Network ==---------- http://www.dejanews.com/ Search, Read, Discuss, or Start Your Own From: Ciaran Hamilton Subject: Re: Beginner to Core Wars needs help! Date: 1999/03/17 Message-ID: <7cojmv$k49$1@nnrp1.dejanews.com>#1/1 > > You UNIX guys... (shakes head) I can't believe I'd ever meet > > any. > > Quite a few on here :-) I suppose there would be, when you think about it... > > You probably have a Geek Code and all (for the uninitiated, you > > can read about it at http://www.geekcode.com) > > Ummm... might do! What do you mean? > > >;redcode > > >;name Stupid > > >;author C. Hamilton > > > > > >org start > > > > > >bomb: dat 0,0 > > >start: mov -1,1 > > > > What this should do is copy a DAT bomb as the next instruction in > > the program, thereby killing itself. Am I right? And is this program > > "legal", or should I add/remove something? > > 1) That's precisely what it will do. > 2) Completely legal. Well, I had to ask... after all, that's the way I learn most things by doing something completely useless. As a result, I've made a "Double Imp" program and an "Imp Buster" program... the latter only works about 1/4 of the time, so it won't be much use, unfortunately :(... here is the "Double Imp": >;redcode >;name Double Imp >;author C. Hamilton >;assert 1 >;strategy This works by splitting off a new process making another imp >;strategy that starts 4000 cells (8000 / 2) away from the first one. It then >;strategy turns into an imp that chases the other one around the board. >;strategy This *should* be harder to beat than a normal imp. :) > >org start > >imp: mov 0, 1 > >start: mov imp, 4000 > spl 3999 > jmp imp This won't be very useful on it's own - when pitted against the imp-busting program mentioned above, it achieves marginally higher results than a normal imp (see below). In case anyone wants a look at the imp-busting program, here it is: >;redcode >;name Imp Buster >;author C. Hamilton >;assert 1 >;strategy This works by cushioning itself with two DAT instructions either >;strategy side of it. Trouble is, it's too slow to update all of them at >;strategy once, which was my original idea (I've learned more about MARS >;strategy now, and now know that it only does one instruction per cycle), >;strategy so it only works against imps about 1/4 of the time... :( > >mov #0, -2 >mov #0, -2 >mov #0, 3 >mov #0, 3 >jmp -4 Here are the scores for the programs I made - the first 3 are the standard Imp vs. my Imp-Buster, and the second 3 are my Double Imp vs. my Imp-Buster (all games consisted of 100 rounds): Imp - 79 Imp Buster - 142 Imp - 77 Imp Buster - 146 Imp - 75 Imp Buster - 150 --- Double Imp - 87 Imp Buster - 126 Double Imp - 87 Imp Buster - 126 Double Imp - 85 Imp Buster - 130 --- As you can see, my Double Imp does achieve marginally higher results than the standard Imp, but only about 10. > > Thanks for responding so quickly... talk to you later. > > Well, it's certainly more interesting than fluctuations in the Cosmic > Microwave Background... Huh? > BTW, One guide which might be of use to is Steve Bailey's Guide for > Beginner's -- again, see either KotH or Pizza. This starts right at > the beginning, and gets on to some interesting stuff at the end; it's > certainly what got me going in CW. Thanks for that, I'll check it out... On a more general note, I get the feeling that Core Wars is like an advanced version of Battleships - you know, where you call out a square number and the other person tells you whether you hit or not? Of couse, CW is definitely more advanced than that (in Battleships, you're *definitely* not allowed to pick up and move your ships!), but is that the basic idea? Thanks for any help... - Ciaran. -----------== Posted via Deja News, The Discussion Network ==---------- http://www.dejanews.com/ Search, Read, Discuss, or Start Your Own From: Christian Schmidt Subject: Re: Repost: Round 8 results and Final analysis Date: 1999/03/19 Message-ID: <36F2C86D.5738C9A9@goofy.zdv.uni-mainz.de>#1/1 Hell, it seems that my entry didn't arrive Ian....bad luck.... It was a slightly modified version of BiShot. But nevertheless, a very big thank to Ian for this wonderful tournament. Funfunfun.... Cheers, Christian From: anton@paradise.net.nz (Anton Marsden) Subject: Core War Frequently Asked Questions (rec.games.corewar FAQ) Date: 1999/03/22 Message-ID: Archive-name: games/corewar-faq Last-Modified: February 25, 1999 Version: 4.1 URL: http://www.paradise.net.nz/~anton/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 poste= d every two weeks. The latest hypertext version is available at http://www.paradise.net.nz/~anton/cw/corewar-faq.html and the latest plain text version is available at http://www.paradise.net.nz/~anton/cw/corewar-faq.txt. This document is currently being maintained by Anton Marsden (anton@paradise.net.nz). Last modified: Thu Feb 25 20:08:13 NZDT 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 * 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 * Made some changes/additions/fixes based on a good FAQ review by Joonas Pihlaja. Not all of the suggestions have been dealt with yet, but the FAQ is now less ambiguous in some areas. Thanks Joonas! * Added stuff about pMARS under Win95 (question 9), and the location of = a HTML version of the ICWS'94 draft (question 5) ------------------------------------------------------------------------ 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 o= f 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 virtua= l computer called MARS (for Memory Array Redcode Simulator). The object of th= e game is to cause all processes of the opposing program to terminate, leavin= g 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= =2E 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 =3D (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 i= s 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 th= e 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= =2E 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 =A90-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 =A90-7167-2144-9 .D5173 199= 0 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 an= d 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'9= 4 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 onl= y 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 9= 4 Warrior, Core Warrior is a newsletter about strategies and current standing= s 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.geocities.com/SiliconValley/Park/5427/warrior.htm 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.answer= s (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 (Stormking 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 bod= y 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 Stormking.Com list processor. To join, send the message SUB COREWAR-L FirstName LastName to listproc@stormking.com. You can send mail to corewar-l@stormking.com to post even if you are not a member of the list. Responsible for the listserver is Scott J. Ellentuch (tuc@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 Stormking. [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 point= s 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 ha= s 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, KotH= s 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 overlappin= g 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 divide= d up among the sites. The way you submit warriors to both KotHs is pretty muc= h 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 tha= t 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 I= nstr. Size Size Processes Distance Fought = Set Tie Length Pizza's ICWS '94 Draft Hill Ex= tended (Accessed with 25 8000 8000 80000 100 100 200 IC= WS '94 ";redcode-94") Dr= aft Pizza's Beginner's Hill Ex= tended (Accessed with 25 8000 8000 80000 100 100 200 IC= WS '94 ";redcode-b") Dr= aft Pizza's Experimental Ex= tended (Small) Hill 25 800 800 8000 20 20 200 IC= WS '94 (Accessed with Dr= aft ";redcode-x") Pizza's Limited Process (LP) Ex= tended Hill (Accessed 25 8000 8 80000 200 200 200 IC= WS '94 with Dr= aft ";redcode-lp") Stormking's ICWS '88 Standard Hill 20 8000 8000 80000 100 100 250 IC= WS '88 (Accessed with ";redcode") Stormking's ICWS '94 Experimental Ex= tended (Big) Hill 20 55440 55440 500000 200 200 250 IC= WS '94 (Accessed with Dr= aft ";redcode-94x") Stormking's ICWS '94 Draft Multi-Warrior Ex= tended Hill (Accessed 10 8000 8000 80000 100 100 200 IC= WS '94 with Dr= aft ";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 assemble= d 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 Cor= e 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 o= r 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, fo= r 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 tha= n 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 memor= y 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 o= f 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 p= ointer 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 nothin= g 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 locatio= ns seq start+400*s1+200, start+400*s1+300 ;check two locatio= ns 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 nothin= g 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 cop= y 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= =2E 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) The rec.games.corewar FAQ is Copyright =A9 1999 and maintained by Anton Marsden (anton@paradise.net.nz). ------------------------------------------------------------------------ From: "Deathlok the Demolisher" Subject: Help Wanted w/RedCode emulator Date: 1999/03/23 Message-ID: <7d9tq9$cj8@hermes.acs.unt.edu>#1/1 Greetings! I am working on a RedCode compiler, assembler, and emulator for a programming class. However, I am unfamiliar with the more intricate details of RedCode and was wondering if anyone might be interested in assisting me by testing my assembler and emulator for bugs and/or non-complainance with the version of the RedCode standard that I'm attempting to implement (Modified ICWS'94/ICWS'88 variant) I'd appreciate any help in testing this, as this is my first time writing an assembler or emulator such as this. If you are interested I will send you the programs I'd like tested along with a small demo program and a copy of the RedCode standard that I'm using. Please note that this is NOT a core wars "game" simulator, but rather runs a single program in memory in an attempt to solve problems. To this end, I've included a RET mnemonic which returns a value to the emulator and kills all processes so that it is possible to get results from the program. Also note, I've tested this with a couple of programs (irongate, fstorm, cannon) and also with Validate... all of them _seem_ to work (Validate gets to the success point) but because of my lack of undestanding I want to make sure I'm not doing something that is working by accident (storing data in the wrong field for a certain operation or anything similar). Please let me know your thoughts or if you are interested in helping. :) Deathy aka Ben Lazo deathlok@uslink.net From: sylvester Subject: Re: Help Wanted w/RedCode emulator Date: 1999/03/24 Message-ID: <36F989F3.C701984E@ns.sympatico.ca>#1/1 Yeah ! a really intuitive description of the code would be nice, not like those manuals ! Sylvester From: Philip Kendall Subject: Re: Help Wanted w/RedCode emulator Date: 1999/03/25 Message-ID: <0hRg+CAlEj+2Ewkz@kendalls.demon.co.uk>#1/1 In article <36F989F3.C701984E@ns.sympatico.ca>, sylvester wrote > >a really intuitive description of the code would be nice, not like those >manuals ! Intuitively, I think Redcode is actually quite simple: mov moves things (or copies them, depending on how you thing about it) jmp causes execution to jump somewhere else (etc) but when you get down to something like the exact behaviour of: mov.f <0,>0 you're going to need a pretty technical description :-) Phil -- / Philip Kendall (pak21@cam.ac.uk pak21@kendalls.demon.co.uk) \ \ http://www.kendalls.demon.co.uk/pak21/corewar/index.html / From: Philip Kendall Subject: Re: Help Wanted w/RedCode emulator Date: 1999/03/25 Message-ID: <4hRj+GAlJj+2EwFV@kendalls.demon.co.uk>#1/1 In article <7d9tq9$cj8@hermes.acs.unt.edu>, Deathlok the Demolisher wrote [Redcode simulator] >Also note, I've tested this with a couple of programs >(irongate, fstorm, cannon) and also with Validate... >all of them _seem_ to work (Validate gets to the >success point) but because of my lack of undestanding >I want to make sure I'm not doing something that is >working by accident (storing data in the wrong field >for a certain operation or anything similar). If Validate works, you're code is almost certainly right :-) It checks every opcode (apart from the pspace ones), along with in-register evaluation, so it would have to be a pretty subtle bug to beat it... Phil -- / Philip Kendall (pak21@cam.ac.uk pak21@kendalls.demon.co.uk) \ \ http://www.kendalls.demon.co.uk/pak21/corewar/index.html / From: iltzu@sci.fi (Ilmari Karonen) Subject: Re: Help Wanted w/RedCode emulator Date: 1999/03/26 Message-ID: <7dgeas$iue$1@tron.sci.fi>#1/1 On Thu, 25 Mar 1999 12:50:45 +0000, Philip Kendall (pak21@kendalls.demon.co.uk) wrote: : but when you get down to something like the exact behaviour of: : mov.f <0,>0 : you're going to need a pretty technical description :-) Not really - the instructions can be broken down into simple steps. (microredcode?) Let's see.. you've got the core, and following registers: Addresses: Process, A-addr, B-addr, Next Instructions: Current, A-instr, B-instr Each address register stores an integer, and each instruction register obviously an entire instruction. I will use the notation instr.A for the a-field and instr.B for the B-field of an instruction, and @(expression) for the instruction in core at a particular address. You've also got the process queue. Now follow these steps: 1. Get an address from the tail of the process queue and put it in Process. 2. Get the instruction @(Process) and put it in Current. 3. If the a-mode of Current is a- or b-decrement, decrement @(Current.A).A or @(Current.A).B respectively. 4. Select one of the following based on the a-mode of Current. (Decrement and increment modes are considered indirect.) immediate: Put 0 in A-addr. direct: Put Current.A in A-addr. a-indirect: Put @(Current.A).A in A-addr b-indirect: Put @(Current.A).B in A-addr Then put @(A-addr) in A-instr. 5. If the a-mode of Current is a- or b-increment, increment @(Current.A).A or @(Current.A).B respectively. (steps 3 and 5 can't both happen) 6. If the b-mode of Current is a- or b-decrement, decrement @(Current.B).A or @(Current.B).B respectively. 7. Select one of the following based on the b-mode of Current. (Decrement and increment modes are considered indirect.) immediate: Put 0 in B-addr. direct: Put Current.B in B-addr. a-indirect: Put @(Current.B).A in B-addr b-indirect: Put @(Current.B).B in B-addr Then put @(B-addr) in B-instr 8. If the b-mode of Current is a- or b-increment, increment @(Current.B).A or @(Current.B).B respectively. (steps 6 and 8 can't both happen) 9. If the OpCode of Current is DJN, decrement either or both of @(B-addr).A and @(B-addr).B. 10.Initially put Process+1 in Next, and then select one of the following based on the OpCode of Current. MOV, ADD, SUB, MUL, DIV, MOD: Perform the appropriate mathematical operation on A-instr and B-instr, and put the result in @(B-addr). Note that _only_ the fields specified by the modifier of Current are set. (see Ps. below) SNE, SEQ, SLT, (CMP): Compare A-instr and B-instr, and if the condition is satisfied add 1 to Next. JMP, JMZ, JMN, DJN: Test B-instr, and if the condition (note: DJN tests for equality to _one_, JMP is always true) is satisfied put A-addr in Next. SPL: Add A-addr to the head of the process queue unless the queue is full. 11.If the OpCode of Current isn't DAT, add Next to the head of the process queue. 12.If the process queue is empty or the cycle limit is reached, end the game. Otherwise move on to the next warrior and restart at step 1. When it comes to parsing complicated increments and decrements, pay attention to the order of steps 3, 5, 6, and 8, as well as remembering that both steps 9 and 10 come only after them and that step 10, in contrast with step 9, uses the registers A-instr and B-instr that were set in steps 4 and 7, _not_ the core instructions @(A-addr) and @(B-addr). Increments and decrements, on the other hand, are done entirely in the core. I think I managed to mention all the little details that can produce unexpected results. In particular, the most common cause of confusion (after the register system itself) comes from step 10 overwriting changes made in earlier steps, or sometimes from it not doing so. The rest is pretty straightforward. Anyone like to draw a flowchart? Ps. I mistakenly sent a version of this with part of step 10 backasswards. Sorry. It should be superseded by this, but this may depend on your newsserver. -- <-- Ilmari Karonen --><-- http://www.sci.fi/~iltzu/ --><-- iltzu@sci.fi --> "While many argue that reforming intellectual ``proprety'' law would result in too much upheaval in society, did not eliminating slavery result in the same upheaval?" -- jerodd@usa.net in /. From: iltzu@sci.fi (Ilmari Karonen) Subject: Re: Help Wanted w/RedCode emulator Date: 1999/03/26 Message-ID: <7dgc4f$d3e$1@tron.sci.fi>#1/1 On Thu, 25 Mar 1999 12:50:45 +0000, Philip Kendall (pak21@kendalls.demon.co.uk) wrote: : but when you get down to something like the exact behaviour of: : mov.f <0,>0 : you're going to need a pretty technical description :-) Not really - the instructions can be broken down into simple steps. (microredcode?) Let's see.. you've got the core, and following registers: Addresses: Process, A-addr, B-addr, Next Instructions: Current, A-instr, B-instr Each address register stores an integer, and each instruction register obviously an entire instruction. I will use the notation instr.A for the a-field and instr.B for the B-field of an instruction, and @(expression) for the instruction in core at a particular address. You've also got the process queue. Now follow these steps: 1. Get an address from the tail of the process queue and put it in Process. 2. Get the instruction @(Process) and put it in Current. 3. If the a-mode of Current is a- or b-decrement, decrement @(Current.A).A or @(Current.A).B respectively. 4. Select one of the following based on the a-mode of Current. (Decrement and increment modes are considered indirect.) immediate: Put 0 in A-addr. direct: Put Current.A in A-addr. a-indirect: Put @(Current.A).A in A-addr b-indirect: Put @(Current.A).B in A-addr Then put @(A-addr) in A-instr. 5. If the a-mode of Current is a- or b-increment, increment @(Current.A).A or @(Current.A).B respectively. (steps 3 and 5 can't both happen) 6. If the b-mode of Current is a- or b-decrement, decrement @(Current.B).A or @(Current.B).B respectively. 7. Select one of the following based on the b-mode of Current. (Decrement and increment modes are considered indirect.) immediate: Put 0 in B-addr. direct: Put Current.B in B-addr. a-indirect: Put @(Current.B).A in B-addr b-indirect: Put @(Current.B).B in B-addr Then put @(B-addr) in B-instr 8. If the b-mode of Current is a- or b-increment, increment @(Current.B).A or @(Current.B).B respectively. (steps 6 and 8 can't both happen) 9. If the OpCode of Current is DJN, decrement either or both of @(B-addr).A and @(B-addr).B. 10.Initially put Process+1 in Next, and then select one of the following based on the OpCode of Current. MOV, ADD, SUB, MUL, DIV, MOD: Perform the appropriate mathematical operation on A-instr and B-instr, and put the result in @(B-addr). Note that this sets the whole instruction - the "unchanged" parts come from B-instr. SNE, SEQ, SLT, (CMP): Compare A-instr and B-instr, and if the condition is satisfied add 1 to Next. JMP, JMZ, JMN, DJN: Test B-instr, and if the condition (note: DJN tests for equality to _one_, JMP is always true) is satisfied put A-addr in Next. SPL: Add A-addr to the head of the process queue unless the queue is full. 11.If the OpCode of Current isn't DAT, add Next to the head of the process queue. 12.If the process queue is empty or the cycle limit is reached, end the game. Otherwise move on to the next warrior and restart at step 1. When it comes to parsing complicated increments and decrements, pay attention to the order of steps 3, 5, 6, and 8, as well as remembering that both steps 9 and 10 come only after them and that step 10, in contrast with step 9, uses the registers A-instr and B-instr that were set in steps 4 and 7, _not_ the core instructions @(A-addr) and @(B-addr). Increments and decrements, on the other hand, are done entirely in the core. I think I managed to mention all the little details that can produce unexpected results. In particular, the most common cause of confusion (after the register system itself) comes from step 10 overwriting changes made in earlier steps, or sometimes from step 9 not doing so. The rest is pretty straightforward. Anyone like to draw a flowchart? -- <-- Ilmari Karonen --><-- http://www.sci.fi/~iltzu/ --><-- iltzu@sci.fi --> "While many argue that reforming intellectual ``proprety'' law would result in too much upheaval in society, did not eliminating slavery result in the same upheaval?" -- jerodd@usa.net in /. From: "Deathlok the Demolisher" Subject: Redcode Assembler/Emulator Date: 1999/03/27 Message-ID: <7dika5$1o6@hermes.acs.unt.edu>#1/1 Greetings, everyone. I think I'm finally finished with the version of my programs that I'll hand in (the assembler and emulator, anyways. the compiler still needs work). As far as I can tell, everything that I've supported works. The validate program works perfectly as far as I can tell. However, there's always the chance that some extra subtle trick might break the emulator... if anyone would like to take a look at them, browse to http://www.uslink.net/~deathlok/RC.exe RC.exe is a self extracting zip file. Included are: Redcode.txt Just a rundown of what works and doesn't. Very blatent copy of the one included with pMars. Demo.red Sample redcode program based on a C program. Validate.red The "standard" program used to evaluate my MARS. RCasm.exe The RedCode assembler RCview.exe A utility for viewing RedCode object files RCemu.exe Emulator for RedCode object files Please take a look if you are interested and let me know what you think or if you have any question. Thanks Deathy aka Ben Lazo deathlok@uslink.net