From: "sayembara" Subject: Re: Online Code-War Games? Date: 3 Dec 2005 05:43:31 -0800 Message-ID: <1133617410.920100.196470@f14g2000cwb.googlegroups.com> I try to answer in my own perspective. Hope to get opinion from at least the magazine authors, web masters, or Q&A 'custodians' :) -real time interaction. E.g. code, try online against others code, recode. No play by email etc. #Corewar is play by email. You send a warrior and the warriors fights with other warrior on the hill almost immediately. So, code, recode vs other 'online' (or rather on the hill) warriors are there. Results will be received within 2-10 minuted depending or server load and warriors queue -A language level like CRobots or higher #Only redcode is available... was it called assembly language? -An environment like CRobots (2D map, damage, bot direction etc) or higher #We have core sizes (2D maps), damages (plus cloning and repair!) and warrior direction (bot direction) -Hundreds of other players :-) #Probably cumulative hundreds of other players -Some tournament system (or persistent old weak versions), so that newbies can win some fights, too. # We have hills dedicated to newbies. Old players entering newbie hills are considered bullies (in my opinion!) From: "Judodudo" Subject: Re: What is this called? Date: 3 Dec 2005 09:20:32 -0800 Message-ID: <1133630432.233652.9170@f14g2000cwb.googlegroups.com> sayembara wrote: > May be somewhere between passenger and parasite. > Not passenger because it disrupts the host's nomal cycle. Not parasite > because it does not take over the host (or does not take the > 'nutrients' from the host.) I'd have to disagree there. It does take nutrients from the host, because the host is really the opponents code as opposed to its processes. However, it seems the name has already been coined. This type of strategy is called "Trolling your opponent", according to Mizcu. From: Andreas Koch Subject: [OT] Online Code-War Games? Date: Sat, 03 Dec 2005 11:58:19 +0100 Message-ID: Hi all, i guess here is the most appropriate group to ask... I'm looking for massively multiplayer online games based on (players ;-) ) coding. Are there such beasts? I'd like to see: -real time interaction. E.g. code, try online against others code, recode. No play by email etc. -A language level like CRobots or higher -An environment like CRobots (2D map, damage, bot direction etc) or higher -Hundreds of other players :-) -Some tournament system (or persistent old weak versions), so that newbies can win some fights, too. From: =?ISO-8859-2?Q?=A3ukasz_Adamowski?= Subject: Odp: [OT] Online Code-War Games? Date: Sat, 3 Dec 2005 12:18:56 -0500 (EST) Message-ID: <4391d0bc48b71@wp.pl> Dnia 3-12-2005 o godz. 12:10 Andreas Koch napisal: > Hi all, Hi! > [...] > -real time interaction. E.g. code, try online against others > code, recode. No play by email etc. I can hardly imagine more interactive coding than playing by e-mail. Maybe only our IRC-tours... :-) > -A language level like CRobots or higher > -An environment like CRobots (2D map, damage, bot direction etc) > or higher > -Hundreds of other players :-) > -Some tournament system (or persistent old weak versions), so that > newbies can win some fights, too. Actually I know one game similiar to your description. It's called WarEngine and was made by one Polish guy. You have a robot in a 2D map and you program it to kill all others robots. It has its' own programming language, however it looks like assembler code also. The author of the game runned a server where programs can be uploaded (using form) and watched working, but this game is describen mostly in Polish and not very popular. The address: www.warengine.prv.pl Bye Lukasz Adamowski P.S. I checked it out: the server is dead at the moment. :( -= "War is a problem, never a solution" =- -= "Wojna jest problemem, a nie rozwiazaniem" =- ---------------------------------------------------- Na "Samych Swoich" ...."Nie ma mocnych" - 2 cz�� najzabawniejszej polskiej trylogii - wreszcie na DVD. Nie chcesz obejrze� tego jeszcze raz? To podejd� no do plota! wwW.bestfilm.pl http://klik.wp.pl/?adr=http%3A%2F%2Fadv.reklama.wp.pl%2Fas%2Fniemamocnych.html&sid=594 From: "sayembara" Subject: Re: What is this called? Date: 3 Dec 2005 15:27:57 -0800 Message-ID: <1133652477.567618.312980@f14g2000cwb.googlegroups.com> trolling as in 'fishing' your opponent? I don't see it can troll anything here. Anyway.... From: KOTH Subject: KOTH.ORG: Status - MultiWarrior 94 12/05/05 Date: Mon, 5 Dec 2005 00:19:56 -0500 (EST) Message-ID: <200512050503.jB5530mK091337@asgard.t-b-o-h.net> Weekly Status on 12/05/05 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG Multiwarrior 94 CoreWar Hill: Last battle concluded at : Tue Nov 29 11:28:37 EST 2005 # Name Author Score Age 1 JustADirtyClearTest Nenad Tomasev 28 50 2 kingdom of the grasshoppe simon wainwright 17 116 3 Fluffy Paper VI Jens Gutzeit 12 21 4 Diptera Nenad Tomasev 12 35 5 nameless fragment S.Fernandes 10 20 6 Urgle Daniel Rivas 8 1 7 Gungnir John Metcalf 7 3 8 FearIsTheName Nenad Tomasev 6 4 9 Simon Gruber datagram 5 16 10 the price of hostility John Metcalf 4 8 11 Unwritten book Neo 0 0 From: KOTH Subject: KOTH.ORG: Status - Standard 12/05/05 Date: Mon, 5 Dec 2005 00:19:56 -0500 (EST) Message-ID: <200512050500.jB5500W0091242@asgard.t-b-o-h.net> Weekly Status on 12/05/05 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG Standard KotH CoreWar Hill : Last battle concluded at : Wed Nov 23 13:49:43 EST 2005 # %W/ %L/ %T Name Author Score Age 1 34/ 23/ 43 Test Alexander (Sasha) Wa 145 174 2 35/ 28/ 37 The Next Step '88 David Houston 142 50 3 40/ 38/ 22 My 1st try Christian Schmidt 142 66 4 32/ 24/ 44 The Hurricaner G.Labarga 140 21 5 31/ 24/ 45 Guardian Ian Oversby 137 234 6 39/ 41/ 20 Moonwipe Christian Schmidt 136 31 7 30/ 24/ 47 test G.Labarga 136 17 8 41/ 47/ 12 Speeed 88mph Christian Schmidt 135 34 9 33/ 31/ 37 The Seed Roy van Rijn 135 52 10 39/ 43/ 18 Scan the Can Christian Schmidt 135 15 11 24/ 15/ 61 Utterer '88 Christian Schmidt 134 9 12 32/ 30/ 38 A.I.P. Christian Schmidt 133 42 13 37/ 43/ 20 July Nenad Tomasev 131 7 14 40/ 49/ 11 Scan Test C 6 Steve Gunnell 131 73 15 37/ 43/ 20 trick shot John Metcalf 130 11 16 21/ 12/ 66 IMParable G.Labarga 130 22 17 40/ 51/ 9 Replihater Some Redcoder 130 5 18 25/ 23/ 52 Scopulos pluviae G.Labarga 127 1 19 28/ 31/ 42 SoundOfDarkness Nenad Tomasev 125 2 20 29/ 35/ 36 Something Simple Some Redcoder 123 4 21 27/ 33/ 40 Hidden Base Some Redcoder 121 6 From: KOTH Subject: KOTH.ORG: Status - ICWS Experimental 94 12/05/05 Date: Mon, 5 Dec 2005 00:19:55 -0500 (EST) Message-ID: <200512050506.jB5560TW091423@asgard.t-b-o-h.net> Weekly Status on 12/05/05 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG ICWS Experimental 94 CoreWar Hill: Last battle concluded at : Mon Nov 7 13:53:12 EST 2005 # %W/ %L/ %T Name Author Score Age 1 45/ 36/ 19 Fatamorgana X Zul Nadzri 155 10 2 44/ 36/ 20 The X Machine Zul Nadzri 152 34 3 44/ 37/ 19 Ogre Christian Schmidt 150 171 4 35/ 22/ 43 xd100 test David Houston 149 20 5 43/ 39/ 18 Eliminator X Zul Nadzri 148 35 6 34/ 26/ 41 KAT v5 Dave Hillis 142 155 7 26/ 11/ 64 Evol Cap 4 X John Wilkinson 141 292 8 40/ 40/ 19 Bewitching S.Fernandes 141 1 9 41/ 42/ 17 Black Moods Ian Oversby 139 219 10 38/ 37/ 24 Trefoil F 13 Steve Gunnell 139 106 11 33/ 28/ 39 Glenstorm John Metcalf 139 85 12 38/ 39/ 23 Trefoil Test F 14 Steve Gunnell 137 7 13 41/ 44/ 15 O_Fortuna3X Nenad Tomasev 137 6 14 40/ 44/ 16 Giant Hazy Test 13 Steve Gunnell 136 50 15 33/ 30/ 37 Olivia X Ben Ford 136 104 16 38/ 42/ 20 Simply Intelligent Zul Nadzri 134 16 17 20/ 6/ 74 Evolve X v4.0 John Wilkinson 134 240 18 36/ 38/ 26 test Some Redcoder 134 4 19 37/ 42/ 21 Controlled Aggression Ian Oversby 133 223 20 38/ 47/ 14 Fatal Choice Some Redcoder 129 5 21 18/ 67/ 15 toffee apple John Metcalf 68 0 From: KOTH Subject: KOTH.ORG: Status - 94 No Pspace 12/05/05 Date: Mon, 5 Dec 2005 00:19:54 -0500 (EST) Message-ID: <200512050509.jB5590Bv091559@asgard.t-b-o-h.net> Weekly Status on 12/05/05 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG 94 No Pspace CoreWar Hill: Last battle concluded at : Sun Dec 4 19:11:25 EST 2005 # %W/ %L/ %T Name Author Score Age 1 44/ 46/ 9 speed of light Christian Schmidt 142 3 2 30/ 24/ 46 CrashAndBurn Nenad Tomasev 136 54 3 31/ 28/ 42 HullabaTwo Roy 133 222 4 29/ 25/ 46 Gods Of Destiny Nenad Tomasev 132 21 5 25/ 20/ 54 Last Judgement Christian Schmidt 131 77 6 27/ 24/ 49 DanceOfFallenAngels Nenad Tomasev 130 6 7 25/ 19/ 56 Supernova 94nop Remix Sascha Zapf 130 1 8 39/ 48/ 13 Grendel S.Fernandes 130 18 9 26/ 22/ 53 Harmless Fluffy Bunny Jens Gutzeit 130 154 10 38/ 46/ 16 vamps are back 0.2 elkauka 130 139 11 36/ 43/ 21 Shot to Nothing Christian Schmidt 129 252 12 23/ 17/ 59 Lucky_Misfortune Nenad Tomasev 129 15 13 27/ 24/ 49 Mandragora Christian Schmidt 129 48 14 27/ 26/ 47 Yikes! Christian Schmidt 129 47 15 28/ 28/ 44 Eccentric Roy van Rijn 128 168 16 26/ 25/ 49 Lavos Nenad Tomasev 128 17 17 26/ 23/ 51 Thingamabob Roy van Rijn 128 232 18 29/ 31/ 41 Bite the Bullet Christian Schmidt 127 39 19 35/ 45/ 20 anything for a rich girl John Metcalf 126 40 20 36/ 46/ 18 Lux Aeterna Roy/Nenad 125 46 21 16/ 10/ 74 testG JT 121 0 From: "neoliminal" Subject: Re: Online Code-War Games? Date: 5 Dec 2005 11:10:31 -0800 Message-ID: <1133809831.396980.169050@z14g2000cwz.googlegroups.com> I've often thought about making a game ala Neuromancer, where you could host a server locally and other players could make runs on your server trying to take it over. You, in return, could try to take their servers and control them. All this would be accomplished using something similar to redcode with registers... the registers giving the ownership information. HTTP to the server and you'd see the owners name, how long he'd been in control, and other interesting game info... (last attack, type of ICE protecting it.) You'd also want a META server that posted servers up to be attacked... and that could keep information like longest protected server and such. Ideally the interface would be 3-D like Neuromancer, with servers looking like ... pyramids or something. Your code would get injected or "launched" from your location and into the server and you could monitor the results... and perhaps open the door in, allowing you to change the passcodes. From: "Chip" Subject: CSEC2005 Date: 5 Dec 2005 12:03:08 -0800 Message-ID: <1133812988.398545.123160@g49g2000cwa.googlegroups.com> All, I don't hang out on IRC, so I just want to say a few words here about the CSEC2005 tournament. I'm overjoyed, and very surprised, to find myself the winner after six weeks and five warriors. I chalk it up to part luck, part guessing which strategy to pick, and part being cheeky enough to borrow freely from other people's code! (Special thanks to Fizmo, whose devastatingly effective stone/imp Elven King figured prominently in four of my entries.) About the final: It's interesting that Roy's entry beats both of my p-spacer components, by wide margins, when battling separately. It seems that switching back and forth between them was enough to keep his warrior off-balance, unable to get into its winning groove. Congratulations to Roy, and all the other contestants, for providing such a high level of competition. And huge thanks to Fizmo for hosting such an enjoyable tournament. Next time, it should be hosted by someone else, so that he can have his own chance of winning. - Chip From: "sayembara" Subject: Re: CSEC2005 Date: 6 Dec 2005 07:05:14 -0800 Message-ID: <1133881513.997373.246640@f14g2000cwb.googlegroups.com> Chip wrote: > All, > > I don't hang out on IRC, so I just want to say a few words here about > the CSEC2005 tournament. I'm overjoyed, and very surprised, to find > myself the winner after six weeks and five warriors. I chalk it up to > part luck, part guessing which strategy to pick, and part being cheeky > enough to borrow freely from other people's code! (Special thanks to > Fizmo, whose devastatingly effective stone/imp Elven King figured > prominently in four of my entries.) > > About the final: It's interesting that Roy's entry beats both of my > p-spacer components, by wide margins, when battling separately. It > seems that switching back and forth between them was enough to keep his > warrior off-balance, unable to get into its winning groove. > > Congratulations to Roy, and all the other contestants, for providing > such a high level of competition. And huge thanks to Fizmo for hosting > such an enjoyable tournament. Next time, it should be hosted by someone > else, so that he can have his own chance of winning. > > - Chip Congratulations ! p/s: I overlooked & miscalculated, and it cost me the round against Fernandes. No intention to sell the round (100% losing), just to make sure you guys know that. BTW, my final round warrior beats both Chip's and Roy's warriors. Not tested to other warriors, but I think my warrior can do the same :) From: "Judodudo" Subject: Good constant. Date: 7 Dec 2005 09:15:51 -0800 Message-ID: <1133975751.915462.20190@g47g2000cwa.googlegroups.com> Hi all. Does anyone know of any good constants I can use for this warrior? I tried the usual ones, but it's performance didn't improve particulaly. It's probably just a bad warrior, but I'd still like a better constant. ;redcode ;name Serenade v6 ;author Daniel Rivas ;strategy SPL bomber with DJN stream -> Core clear bmb SPL #2000, {-4 loop ADD #3044, ptr MOV bmb, @ptr DJN loop, {-4 clear MOV 1, <-1 DAT 0, 0 DAT 0, 0 ptr DAT 0, 0 Thanks. From: "Judodudo" Subject: Re: Good constant. Date: 7 Dec 2005 12:27:15 -0800 Message-ID: <1133987235.343064.306820@f14g2000cwb.googlegroups.com> Thank you. :-) From: "Judodudo" Subject: Re: Good constant. Date: 7 Dec 2005 12:52:13 -0800 Message-ID: <1133988733.914233.265260@g49g2000cwa.googlegroups.com> Err, the core-clear doesn't apear to work properly. It only ever draws. But you have given me some useful tips. From: Sascha Zapf Subject: Re: Good constant. Date: Wed, 07 Dec 2005 20:47:21 +0100 Message-ID: Judodudo wrote: > Hi all. Does anyone know of any good constants I can use for this > warrior? I tried the usual ones, but it's performance didn't improve > particulaly. It's probably just a bad warrior, but I'd still like a > better constant. > > ;redcode > ;name Serenade v6 > ;author Daniel Rivas > ;strategy SPL bomber with DJN stream -> Core clear > > bmb SPL #2000, {-4 > loop ADD #3044, ptr > MOV bmb, @ptr > DJN loop, {-4 > clear MOV 1, <-1 > DAT 0, 0 > DAT 0, 0 > ptr DAT 0, 0 > > Thanks. First, i guess you want the spl bomb hit the djn-instruction after some cycles. Then the stone mutates to a clear. My advice is that you form the constant to a step/time pair focused at the djn-instruction. Like this... > bmb SPL #2000, {-4 > loop ADD #3044, ptr > MOV bmb, @ptr > dlab: DJN loop, {-4 > clear MOV 1, <-1 > DAT 0,0 > DAT 0,0 > ptr DAT 0, dlab-(step*time) Another hint - when using external pointer, place them before the main loop, so they can do a nice job as an additional imp gate... Like this.. step equ 3044 time equ 100 ptr DAT 0, dlab-(step*time) DAT 0,0 bmb SPL #2000, {-4 loop ADD #step, ptr MOV bmb, @ptr dlab DJN loop, {-4 clear MOV 1, <-1 Then you can try differnet kombinations of step/time pairs. With lower time you have more possible steps yopu can use, try to find the best pairs. And last but not least, your coreclear is xtreme suicidial, backward-clear must hve the pointer in after the mov-instruction, so that the pointer will be reseted to a positionen before the mov-instruction. Hope that helps Sascha -- News From: "Judodudo" Subject: Re: Online Code-War Games? Date: 8 Dec 2005 08:10:19 -0800 Message-ID: <1134058219.049981.154690@g47g2000cwa.googlegroups.com> Cool From: KOTH Subject: KOTH.ORG: Status - 94 No Pspace 12/12/05 Date: Mon, 12 Dec 2005 00:35:38 -0500 (EST) Message-ID: <200512120509.jBC590l4061174@asgard.t-b-o-h.net> Weekly Status on 12/12/05 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG 94 No Pspace CoreWar Hill: Last battle concluded at : Sun Dec 11 17:28:40 EST 2005 # %W/ %L/ %T Name Author Score Age 1 46/ 46/ 9 speed of light Christian Schmidt 146 12 2 34/ 25/ 41 CrashAndBurn Nenad Tomasev 143 63 3 29/ 16/ 55 Rust [v0.2] inversed 142 9 4 42/ 45/ 13 Grendel S.Fernandes 139 27 5 31/ 24/ 45 DanceOfFallenAngels Nenad Tomasev 138 15 6 31/ 26/ 42 Gods Of Destiny Nenad Tomasev 136 30 7 26/ 17/ 57 Lucky_Misfortune Nenad Tomasev 136 24 8 28/ 20/ 52 Last Judgement Christian Schmidt 136 86 9 29/ 22/ 49 Mandragora Christian Schmidt 136 57 10 32/ 29/ 39 HullabaTwo Roy 135 231 11 27/ 18/ 55 Supernova 94nop Remix Sascha Zapf 135 10 12 38/ 41/ 20 Shot to Nothing Christian Schmidt 135 261 13 40/ 45/ 15 vamps are back 0.2 elkauka 134 148 14 38/ 43/ 20 anything for a rich girl John Metcalf 133 49 15 30/ 28/ 42 Eccentric Roy van Rijn 133 177 16 29/ 26/ 45 Lavos Nenad Tomasev 132 26 17 30/ 28/ 42 Blotter2 inversed 132 8 18 29/ 27/ 44 Yikes! Christian Schmidt 131 56 19 27/ 24/ 49 Harmless Fluffy Bunny Jens Gutzeit 129 163 20 37/ 46/ 16 Codgeriffic P.Kline 128 1 21 13/ 71/ 16 N-Shot Lukasz Adamowski 56 0 From: KOTH Subject: KOTH.ORG: Status - ICWS Experimental 94 12/12/05 Date: Mon, 12 Dec 2005 00:35:37 -0500 (EST) Message-ID: <200512120506.jBC560Me061073@asgard.t-b-o-h.net> Weekly Status on 12/12/05 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG ICWS Experimental 94 CoreWar Hill: Last battle concluded at : Mon Nov 7 13:53:12 EST 2005 # %W/ %L/ %T Name Author Score Age 1 45/ 36/ 19 Fatamorgana X Zul Nadzri 155 10 2 44/ 36/ 20 The X Machine Zul Nadzri 152 34 3 44/ 37/ 19 Ogre Christian Schmidt 150 171 4 35/ 22/ 43 xd100 test David Houston 149 20 5 43/ 39/ 18 Eliminator X Zul Nadzri 148 35 6 34/ 26/ 41 KAT v5 Dave Hillis 142 155 7 26/ 11/ 64 Evol Cap 4 X John Wilkinson 141 292 8 40/ 40/ 19 Bewitching S.Fernandes 141 1 9 41/ 42/ 17 Black Moods Ian Oversby 139 219 10 38/ 37/ 24 Trefoil F 13 Steve Gunnell 139 106 11 33/ 28/ 39 Glenstorm John Metcalf 139 85 12 38/ 39/ 23 Trefoil Test F 14 Steve Gunnell 137 7 13 41/ 44/ 15 O_Fortuna3X Nenad Tomasev 137 6 14 40/ 44/ 16 Giant Hazy Test 13 Steve Gunnell 136 50 15 33/ 30/ 37 Olivia X Ben Ford 136 104 16 38/ 42/ 20 Simply Intelligent Zul Nadzri 134 16 17 20/ 6/ 74 Evolve X v4.0 John Wilkinson 134 240 18 36/ 38/ 26 test Some Redcoder 134 4 19 37/ 42/ 21 Controlled Aggression Ian Oversby 133 223 20 38/ 47/ 14 Fatal Choice Some Redcoder 129 5 21 18/ 67/ 15 toffee apple John Metcalf 68 0 From: KOTH Subject: KOTH.ORG: Status - MultiWarrior 94 12/12/05 Date: Mon, 12 Dec 2005 00:35:36 -0500 (EST) Message-ID: <200512120503.jBC530oN060948@asgard.t-b-o-h.net> Weekly Status on 12/12/05 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG Multiwarrior 94 CoreWar Hill: Last battle concluded at : Sun Dec 11 17:22:32 EST 2005 # Name Author Score Age 1 Fluffy Paper VI Jens Gutzeit 43 21 2 JustADirtyClearTest Nenad Tomasev 41 50 3 Urgle Daniel Rivas 33 1 4 nameless fragment S.Fernandes 29 20 5 kingdom of the grasshoppe simon wainwright 28 116 6 Diptera Nenad Tomasev 27 35 7 the price of hostility John Metcalf 25 8 8 FearIsTheName Nenad Tomasev 22 4 9 Simon Gruber datagram 18 16 10 Gungnir John Metcalf 18 3 11 XV-Shot Lukasz Adamowski 7 0 From: KOTH Subject: KOTH.ORG: Status - Standard 12/12/05 Date: Mon, 12 Dec 2005 00:35:33 -0500 (EST) Message-ID: <200512120500.jBC500ha060667@asgard.t-b-o-h.net> Weekly Status on 12/12/05 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG Standard KotH CoreWar Hill : Last battle concluded at : Wed Nov 23 13:49:43 EST 2005 # %W/ %L/ %T Name Author Score Age 1 34/ 23/ 43 Test Alexander (Sasha) Wa 145 174 2 35/ 28/ 37 The Next Step '88 David Houston 142 50 3 40/ 38/ 22 My 1st try Christian Schmidt 142 66 4 32/ 24/ 44 The Hurricaner G.Labarga 140 21 5 31/ 24/ 45 Guardian Ian Oversby 137 234 6 39/ 41/ 20 Moonwipe Christian Schmidt 136 31 7 30/ 24/ 47 test G.Labarga 136 17 8 41/ 47/ 12 Speeed 88mph Christian Schmidt 135 34 9 33/ 31/ 37 The Seed Roy van Rijn 135 52 10 39/ 43/ 18 Scan the Can Christian Schmidt 135 15 11 24/ 15/ 61 Utterer '88 Christian Schmidt 134 9 12 32/ 30/ 38 A.I.P. Christian Schmidt 133 42 13 37/ 43/ 20 July Nenad Tomasev 131 7 14 40/ 49/ 11 Scan Test C 6 Steve Gunnell 131 73 15 37/ 43/ 20 trick shot John Metcalf 130 11 16 21/ 12/ 66 IMParable G.Labarga 130 22 17 40/ 51/ 9 Replihater Some Redcoder 130 5 18 25/ 23/ 52 Scopulos pluviae G.Labarga 127 1 19 28/ 31/ 42 SoundOfDarkness Nenad Tomasev 125 2 20 29/ 35/ 36 Something Simple Some Redcoder 123 4 21 27/ 33/ 40 Hidden Base Some Redcoder 121 6 From: "Neogryzor" Subject: Re: Good constant. Date: 13 Dec 2005 09:59:44 -0800 Message-ID: <1134496784.388783.133880@f14g2000cwb.googlegroups.com> > step equ 3044 > time equ 100 > > ptr DAT 0, dlab-(step*time) > DAT 0,0 > bmb SPL #2000, {-4 > loop ADD #step, ptr > MOV bmb, @ptr > dlab DJN loop, {-4 > clear MOV 1, <-1 > ... Could i suggest a complete incendary bomber? Dropping SPL # and MOV bombs ar much more effective that simple SPL's to stun papers; something like: SPL #distance,{distance+6 .... MOV.I -distance,<-distance or so. When that MOV is executed by a paper or in a loop it creates a SPL carpet that stuns the opponent. A d-clear is also more effective and fast, though, a bit bigger. By the way, it is better to locate the decrement trail away from your code, so oneshots keep attacking it and your warrior have some time to hit them. About constants, the best way is to optimize them, but you can find a nice one with not much effort. Select the mod number, (distance between bombs), and multiply it with any prime number, or prime number combos. You can make a program to generate those constants and test them all automatically, like optimization. mod 4: 4*19, or mod 5: 5*17*7, etc... (3044=4*761, 761 is a prime number i think) I use that method quite often and gives nice results. The code could be something like this: step equ -(17*5) first equ hit+(2*step) sbmb: spl #-step,gate djn.f -1,>gate dcb: dat <2667,(1-gate) ;d-clear bomb mbmb: mov step, From: anton@paradise.net.nz (Anton Marsden) Subject: Core War Frequently Asked Questions (rec.games.corewar FAQ) Date: 14 Dec 2005 05:36:47 GMT Archive-name: games/corewar-faq Last-Modified: September 4, 1999 Version: 4.2 URL: http://homepages.paradise.net.nz/~anton/cw/corewar-faq.html Copyright: (c) 1999 Anton Marsden Maintainer: Anton Marsden Posting-Frequency: once every 2 weeks Core War Frequently Asked Questions (rec.games.corewar FAQ) These are the Frequently Asked Questions (and answers) from the Usenet newsgroup rec.games.corewar. A plain text version of this document is posted every two weeks. The latest hypertext version is available at http://homepages.paradise.net.nz/~anton/cw/corewar-faq.html and the latest plain text version is available at http://homepages.paradise.net.nz/~anton/cw/corewar-faq.txt. This document is currently being maintained by Anton Marsden (anton@paradise.net.nz). Last modified: Sat Sep 4 00:22:22 NZST 1999 ------------------------------------------------------------------------ To Do * Add the new No-PSpace '94 hill location * Add online location of Dewdney's articles * Make question 17 easier to understand. Add a state diagram? * Add info about infinite hills, related games (C-Robots, Tierra?, ...) * New question: How do I know if my warrior is any good? Refer to beginners' benchmarks, etc. * Add a Who's Who list? * Would very much like someone to compile a collection of the "revolutionary" warriors so that beginners can see how the game has developed over the years. Mail me if interested. ------------------------------------------------------------------------ What's New * Changed primary location of FAQ (again!) * Changed Philip Kendall's home page address. * Updated list server information * Changed primary location of FAQ * Vector-launching code was fixed thanks to Ting Hsu. * Changed the location of Ryan Coleman's paper (LaunchPad -> Launchpad) * Changed pauillac.inria.fr to para.inria.fr ------------------------------------------------------------------------ Table of Contents 1. What is Core War 2. Is it "Core War" or "Core Wars"? 3. Where can I find more information about Core War? 4. Core War has changed since Dewdney's articles. Where do I get a copy of the current instruction set? 5. What is ICWS'94? Which simulators support ICWS'94? 6. What is the ICWS? 7. What is Core Warrior? 8. Where are the Core War archives? 9. Where can I find a Core War system for ...? 10. Where can I find warrior code? 11. I do not have FTP. How do I get all this great stuff? 12. I do not have access to Usenet. How do I post and receive news? 13. Are there any Core War related WWW sites? 14. What is KotH? How do I enter? 15. Is it DAT 0, 0 or DAT #0, #0? How do I compare to core? 16. How does SLT (Skip if Less Than) work? 17. What is the difference between in-register and in-memory evaluation? 18. What is P-space? 19. What does "Missing ;assert .." in my message from KotH mean? 20. How should I format my code? 21. Are there any other Core War related resources I should know about? 22. What does (expression or term of your choice) mean? 23. Other questions? ------------------------------------------------------------------------ 1. What is Core War? Core War is a game played by two or more programs (and vicariously by their authors) written in an assembly language called Redcode and run in a virtual computer called MARS (for Memory Array Redcode Simulator). The object of the game is to cause all processes of the opposing program to terminate, leaving your program in sole posession of the machine. There are Core War systems available for most computer platforms. Redcode has been standardised by the ICWS, and is therefore transportable between all standard Core War systems. The system in which the programs run is quite simple. The core (the memory of the simulated computer) is a continuous array of instructions, empty except for the competing programs. The core wraps around, so that after the last instruction comes the first one again. There are no absolute addresses in Core War. That is, the address 0 doesn't mean the first instruction in the memory, but the instruction that contains the address 0. The next instruction is 1, and the previous one obviously -1. However, all numbers are treated as positive, and are in the range 0 to CORESIZE-1 where CORESIZE is the amount of memory locations in the core - this means that -1 would be treated as CORESIZE-1 in any arithmetic operations, eg. 3218 + 7856 = (3218 + 7856) mod CORESIZE. Many people get confused by this, and it is particularly important when using the SLT instruction. Note that the source code of a program can still contain negative numbers, but if you start using instructions like DIV #-2, #5 it is important to know what effect they will have when executed. The basic unit of memory in Core War is one instruction. Each Redcode instruction contains three parts: * the opcode * the source address (a.k.a. the A-field) * the destination address (a.k.a. the B-field) The execution of the programs is equally simple. The MARS executes one instruction at a time, and then proceeds to the next one in the memory, unless the instruction explicitly tells it to jump to another address. If there is more than one program running, (as is usual) the programs execute alternately, one instruction at a time. The execution of each instruction takes the same time, one cycle, whether it is MOV, DIV or even DAT (which kills the process). Each program may have several processes running. These processes are stored in a task queue. When it is the program's turn to execute an instruction it dequeues a process and executes the corresponding instruction. Processes that are not killed during the execution of the instruction are put back into the task queue. Processes created by a SPL instruction are added to the task queue after the creating process is put back into the task queue. [ToC] ------------------------------------------------------------------------ 2. Is it "Core War" or "Core Wars"? Both terms are used. Early references were to Core War. Later references seem to use Core Wars. I prefer "Core War" to refer to the game in general, "core wars" to refer to more than one specific battle. [ToC] ------------------------------------------------------------------------ 3. Where can I find more information about Core War? Core War was first described in the Core War Guidelines of March, 1984 by D. G. Jones and A. K. Dewdney of the Department of Computer Science at The University of Western Ontario (Canada). Dewdney wrote several "Computer Recreations" articles in Scientific American which discussed Core War, starting with the May 1984 article. Those articles are contained in two anthologies: Library of Author Title Published ISBN Congress Call Number The Armchair Dewdney, Universe: An New York: W. QA76.6 .D517 A. K. Exploration of H. Freeman �0-7167-1939-8 1988 Computer Worlds 1988 The Magic 0-7167-2125-2 Dewdney, Machine: A New York: W.(Hardcover), QA76.6 A. K. Handbook of H. Freeman �0-7167-2144-9 .D5173 1990 Computer Sorcery 1990 (Paperback) A.K. Dewdney's articles are still the most readable introduction to Core War, even though the Redcode dialect described in there is no longer current. For those who are interested, Dewdney has a home page at http://www.csd.uwo.ca/faculty/akd/. [ToC] ------------------------------------------------------------------------ 4. Core War has changed since Dewdney's articles. Where do I get a copy of the current instruction set? A draft of the official standard (ICWS'88) is available as ftp://www.koth.org/corewar/documents/standards/redcode-icws-88.Z. This document is formatted awkwardly and contains ambiguous statements. For a more approachable intro to Redcode, take a look at Mark Durham's tutorials, ftp://www.koth.org/corewar/documents/tutorial.1.Z and ftp://www.koth.org/corewar/documents/tutorial.2.Z. Steven Morrell has prepared a more practically oriented Redcode tutorial that discusses different warrior classes with lots of example code. This and various other tutorials can be found at http://www.koth.org/papers.html. Even though ICWS'88 is still the "official" standard, you will find that most people are playing by ICWS'94 draft rules and extensions. [ToC] ------------------------------------------------------------------------ 5. What is ICWS'94? Which simulators support ICWS'94? There is an ongoing discussion about future enhancements to the Redcode language. A proposed new standard, dubbed ICWS'94, is currently being evaluated. A major change is the addition of "instruction modifiers" that allow instructions to modify A-field, B-field or both. Also new is a new addressing modes and unrestricted opcode and addressing mode combination ("no illegal instructions"). ICWS'94 is backwards compatible; i.e. ICWS'88 warriors will run correctly on an ICWS'94 system. Take a look at the ICWS'94 draft at ftp://www.koth.org/corewar/documents/icws94.0202.Z for more information. There is a HTML version of this document available at http://www.koth.org/info/icws94.html. You can try out the new standard by submitting warriors to the '94 hills of the KotH servers. Two corewar systems currently support ICWS'94, pMARS (many platforms) and Redcoder (Mac), both available at ftp://www.koth.org/corewar. Note that Redcoder only supports a subset of ICWS'94. [ToC] ------------------------------------------------------------------------ 6. What is the ICWS? About one year after Core War first appeared in Scientific American, the "International Core War Society" (ICWS) was established. Since that time, the ICWS has been responsible for the creation and maintenance of Core War standards and the running of Core War tournaments. There have been six annual tournaments and two standards (ICWS'86 and ICWS'88). The ICWS is no longer active. [ToC] ------------------------------------------------------------------------ 7. What is Core Warrior? Following in the tradition of the Core War News Letter, Push Off, and The 94 Warrior, Core Warrior is a newsletter about strategies and current standings in Core War. Started in October 1995, back issues of Core Warrior (and the other newsletters) are available at http://para.inria.fr/~doligez/corewar/. There is also a Core Warrior index page at http://www.kendalls.demon.co.uk/pak21/corewar/warrior.html which has a summary of the contents of each issue of Core Warrior. Many of the earlier issues contain useful information for beginners. [ToC] ------------------------------------------------------------------------ 8. Where are the Core War archives? Many documents such as the guidelines and the ICWS standards along with previous tournament Redcode entries and complete Core War systems are available via anonymous ftp from ftp://ftp.csua.berkeley.edu/pub/corewar. Also, most of past rec.games.corewar postings (including Redcode source listings) are archived there. Jon Blow (blojo@csua.berkeley.edu) is the archive administrator. When uploading to /pub/corewar/incoming, ask Jon to move your upload to the appropriate directory and announce it on the net. This site is mirrored at: * http://www.koth.org/corewar/ * ftp://www.koth.org/corewar/ * ftp://ftp.inria.fr/INRIA/Projects/para/doligez/cw/mirror The plain text version of this FAQ is automatically archived by news.answers (but this version is probably out-of-date). [ToC] ------------------------------------------------------------------------ 9. Where can I find a Core War system for . . . ? Core War systems are available via anonymous FTP from www.koth.org in the corewar/systems directory. Currently, there are UNIX, IBM PC-compatible, Macintosh, and Amiga Core War systems available there. It is a good idea to check ftp://www.koth.org/corewar/incoming for program updates first. CAUTION! There are many, many Core War systems available which are NOT ICWS'88 (or even ICWS'86) compatible available at various archive sites other than www.koth.org. Generally, the older the program - the less likely it will be ICWS compatible. If you are looking for an ICWS'94 simulator, get pMARS, which is available for many platforms and can be downloaded from: * ftp://ftp.csua.berkeley.edu/pub/corewar (original site) * ftp://www.koth.org/corewar (koth.org mirror) * ftp://ftp.inria.fr/INRIA/Projects/para/doligez/cw/mirror (Planar mirror) * http://www.nc5.infi.net/~wtnewton/corewar/ (Terry Newton) * ftp://members.aol.com/ofechner/corewar (Fechter) Notes: * If you have trouble running pMARS with a graphical display under Win95 then check out http://www.koth.org/pmars.html which should have a pointer to the latest compilation of pMARS for this environment. * RPMs for the Alpha, PowerPC, Sparc and i386 can be found at ftp://ftp.inria.fr/INRIA/Projects/para/doligez/cw/pmars-rpm/ Reviews of Core War systems would be greatly appreciated in the newsgroup and in the newsletter. Below is a not necessarily complete or up-to-date list of what's available at www.koth.org: MADgic41.lzh corewar for the Amiga, v4.1 MAD4041.lzh older version? MAD50B.lha corewar for the Amiga, beta version 5.0 Redcoder-21.hqx corewar for the Mac, supports ICWS'88 and '94 (without extensions) core-11.hqx corewar for the Mac core-wars-simulator.hqx same as core-11.hqx? corewar_unix_x11.tar.Z corewar for UNIX/X-windows, ICWS'86 but not ICWS'88 compatible koth31.tar.Z corewar for UNIX/X-windows. This program ran the former KotH server at intel.com koth.shar.Z older version kothpc.zip port of older version of KotH to the PC deluxe20c.tar.Z corewar for UNIX (broken X-windows or curses) and PC mars.tar.Z corewar for UNIX, likely not ICWS'88 compatible icons.zip corewar icons for MS-Windows macrored.zip a redcode macro-preprocessor (PC) c88v49.zip PC corewar, textmode display mars88.zip PC corewar, graphics mode display corwp302.zip PC corewar, textmode display, slowish mercury2.zip PC corewar written in assembly, fast! mtourn11.zip tournament scheduler for mercury (req. 4DOS) pmars08s.zip portable system, ICWS'88 and '94, runs on UNIX, PC, Mac, Amiga. C source archive pmars08s.tar.Z same as above pmars08.zip PC executables with graphics display, req 386+ macpmars02.sit.hqx pMARS executable for Mac (port of version 0.2) buggy, no display MacpMARS1.99a.cpt.hqx port of v0.8 for the Mac, with display and debugger MacpMARS1.0s.cpt.hqx C source (MPW, ThinkC) for Mac frontend pvms08.zip pMARS v0.8 for VMS build files/help (req. pmars08s.zip) ApMARS03.lha pMARS executable for Amiga (port of version 0.3.1) wincor11.zip MS-Windows system, shareware ($15) [ToC] ------------------------------------------------------------------------ 10. Where can I find warrior code? To learn the game, it is a good idea to study previously posted warrior code. The FTP archives have code in the ftp://www.koth.org/corewar/redcode directory. A clearly organized on-line warrior collection is available at the Core War web sites (see below). [ToC] ------------------------------------------------------------------------ 11. I do not have FTP. How do I get all this great stuff? There is an FTP email server at bitftp@pucc.princeton.edu. This address may no longer exist. I haven't tested it yet. Send email with a subject and body text of "help" (without the quotes) for more information on its usage. Note that many FTP email gateways are shutting down due to abuse. To get a current list of FTP email servers, look at the Accessing the Internet by E-mail FAQ posted to news.answers. If you don't have access to Usenet, you can retrieve this FAQ one of the following ways: * Send mail to mail-server@rtfm.mit.edu with the body containing "send usenet/news.answers/internet-services/access-via-email". * Send mail to mailbase@mailbase.ac.uk with the body containing "send lis-iis e-access-inet.txt". [ToC] ------------------------------------------------------------------------ 12. I do not have access to Usenet. How do I post and receive news? To receive rec.games.corewar articles by email, join the COREWAR-L list run on the Koth.Org list processor. To join, send the message SUB COREWAR-L FirstName LastName to listproc@koth.org. You can send mail to corewar-l@koth.org to post even if you are not a member of the list. Responsible for the listserver is Scott J. Ellentuch (ttsg@ttsg.com). Servers that allow you to post (but not receive) articles are available. Refer to the Accessing the Internet by E-Mail FAQ for more information. [ToC] ------------------------------------------------------------------------ 13. Are there any Core War related WWW sites? You bet. Each of the two KotH sites sport a world-wide web server. Stormking's Core War page is http://www.koth.org; pizza's is http://www.ecst.csuchico.edu/~pizza/koth . Damien Doligez (a.k.a. Planar) has a web page that features convenient access to regular newsletters (Push Off, The '94 Warrior, Core Warrior) and a well organized library of warriors: http://para.inria.fr/~doligez/corewar/. Convenient for U.S. users, this site is also mirrored at koth.org. [ToC] ------------------------------------------------------------------------ 14. What is KotH? How do I enter? King Of The Hill (KotH) is an ongoing Core War tournament available to anyone with email. You enter by submitting via email a Redcode program (warrior) with special comment lines. You will receive a reply indicating how well your program did against the current top programs "on the hill". There are two styles of KotH tournaments, "classical" and "multi-warrior". The "classical" KotH is a one-on-one tournament, that is your warrior will play 100 battles against each of the 20 other programs currently on the Hill. You receive 3 points for each win and 1 point for each tie. (The existing programs do not replay each other, but their previous battles are recalled.) All scores are updated to reflect your battles and all 21 programs are ranked from high to low. If you are number 21 you are pushed off the Hill, if you are higher than 21 someone else is pushed off. In "multi-warrior" KotH, all warriors on the hill fight each other at the same time. Score calculation is a bit more complex than for the one-on-one tournament. Briefly, points are awarded based on how many warriors survive until the end of a round. A warrior that survives by itself gets more points than a warrior that survives together with other warriors. Points are calculated from the formula (W*W-1)/S, where W is the total number of warriors and S the number of surviving warriors. The pMARS documentation has more information on multi-warrior scoring. The idea for an email-based Core War server came from David Lee. The original KotH was developed and run by William Shubert at Intel starting in 1991, and discontinued after almost three years of service. Currently, KotHs based on Bill's UNIX scripts but offering a wider variety of hills are are running at two sites: koth@koth.org is maintained by Scott J. Ellentuch (tuc@ttsg.com) and pizza@ecst.csuchico.edu by Thomas H. Davies (sd@ecst.csuchico.edu). Up until May '95, the two sites provided overlapping services, i.e. the some of the hill types were offered by both "pizza" and "stormking". To conserve resources, the different hill types are now divided up among the sites. The way you submit warriors to both KotHs is pretty much the same. Therefore, the entry rules described below apply to both "pizza" and "stormking" unless otherwise noted. Entry Rules for King of the Hill Corewar * Write a corewar program. KotH is fully ICWS '88 compatible, EXCEPT that a comma (",") is required between two arguments. * Put a line starting with ";redcode" (or ";redcode-94", etc., see below) at the top of your program. This MUST be the first line. Anything before it will be lost. If you wish to receive mail on every new entrant, use ";redcode verbose". Otherwise you will only receive mail if a challenger makes it onto the hill. Use ";redcode quiet" if you wish to receive mail only when you get shoved off the hill. Additionally, adding ";name " and ";author " will be helpful in the performance reports. Do NOT have a line beginning with ";address" in your code; this will confuse the mail daemon and you won't get mail back. Using ";name" is mandatory on the Pizza hills. In addition, it would be nice if you have lines beginning with ";strategy" that describe the algorithm you use. There are currently seven separate hills you can select by starting your program with ;redcode-94, ;redcode-b, ;redcode-lp, ;redcode-x, ;redcode, ;redcode-94x or ;redcode-94m. The former four run at "pizza", the latter three at "stormking". More information on these hills is listed below. * Mail this file to koth@koth.org or pizza@ecst.csuchico.edu. "Pizza" requires a subject of "koth" (use the -s flag on most mailers). * Within a few minutes you should get mail back telling you whether your program assembled correctly or not. If it did assemble correctly, sit back and wait; if not, make the change required and re-submit. * In an hour or so you should get more mail telling you how your program performed against the current top 20 (or 10) programs. If no news arrives during that time, don't worry; entries are put in a queue and run through the tournament one at a time. A backlog may develop. Be patient. If your program makes it onto the hill, you will get mail every time a new program makes it onto the hill. If this is too much mail, you can use ";redcode[-??] quiet" when you first mail in your program; then you will only get mail when you make it on the top 25 list or when you are knocked off. Using ";redcode[-??] verbose" will give you even more mail; here you get mail every time a new challenger arrives, even if they don't make it onto the top 25 list. Often programmers want to try out slight variations in their programs. If you already have a program named "foo V1.0" on the hill, adding the line ";kill foo" to a new program will automatically bump foo 1.0 off the hill. Just ";kill" will remove all of your programs when you submit the new one. The server kills programs by assigning an impossibly low score; it may therefore take another successful challenge before a killed program is actually removed from the hill. Sample Entry ;redcode ;name Dwarf ;author A. K. Dewdney ;strategy Throw DAT bombs around memory, hitting every 4th memory cell. ;strategy This program was presented in the first Corewar article. bomb DAT #0 dwarf ADD #4, bomb MOV bomb, @bomb JMP dwarf END dwarf ; Programs start at the first line unless ; an "END start" pseudo-op appears to indicate ; the first logical instruction. Also, nothing ; after the END instruction will be assembled. Duration Max. Hill Name Hill Core Max. Before Entry Min. Rounds Instr. Size Size Processes Distance Fought Set Tie Length Pizza's ICWS '94 Draft Hill Extended (Accessed with 25 8000 8000 80000 100 100 200 ICWS '94 ";redcode-94") Draft Pizza's Beginner's Extended Hill (Accessed 25 8000 8000 80000 100 100 200 ICWS '94 with ";redcode-b") Draft Pizza's Experimental Extended (Small) Hill 25 800 800 8000 20 20 200 ICWS '94 (Accessed with Draft ";redcode-x") Pizza's Limited Process (LP) Hill Extended (Accessed with 25 8000 8 80000 200 200 200 ICWS '94 ";redcode-lp") Draft Stormking's ICWS '88 Standard Hill (Accessed with 20 8000 8000 80000 100 100 250 ICWS '88 ";redcode") Stormking's ICWS '94 No Pspace Hill (Accessed with 20 8000 8000 80000 100 100 250 ICWS '94 ";redcode-94nop") Stormking's ICWS '94 Experimental Extended (Big) Hill 20 55440 55440 500000 200 200 250 ICWS '94 (Accessed with Draft ";redcode-94x") Stormking's ICWS '94 Multi-Warrior Extended Hill (Accessed 10 8000 8000 80000 100 100 200 ICWS '94 with Draft ";redcode-94m") Note: Warriors on the beginner's hill are retired at age 100. If you just want to get a status report without actually challenging the hills, send email with ";status" as the message body (and don't forget "Subject: koth" for "pizza"). If you send mail to "pizza" with "Subject: koth help" you will receive instructions that may be more up to date than those contained in this document. At "stormking", a message body with ";help" will return brief instructions. If you submit code containing a ";test" line, your warrior will be assembled but not actually pitted against the warriors on the hill. At "pizza", you can use ";redcode[-??] test" to do a test challenge of the Hill without affecting the status of the Hill. These challenges can be used to see how well your warrior does against the current Hill warriors. All hills run portable MARS (pMARS) version 0.8, a platform-independent Core War system available at www.koth.org. The '94 and '94x hills allow five experimental opcodes and three experimental addressing modes currently not covered in the ICWS'94 draft document: * LDP - Load P-Space * STP - Store P-Space * SEQ - Skip if EQual (synonym for CMP) * SNE - Skip if Not Equal * NOP - (No OPeration) * * - indirect using A-field as pointer * { - predecrement indirect using A-field * } - postincrement indirect using A-field [ToC] ------------------------------------------------------------------------ 15. Is it DAT 0, 0 or DAT #0, #0? How do I compare to core? Core is initialized to DAT 0, 0. This is an illegal instruction (in source code) under ICWS'88 rules and strictly compliant assemblers (such as KotH or pmars -8) will not let you have a DAT 0, 0 instruction in your source code - only DAT #0, #0. So this begs the question, how to compare something to see if it is empty core. The answer is, most likely the instruction before your first instruction and the instruction after your last instruction are both DAT 0, 0. You can use them, or any other likely unmodified instructions, for comparison. Note that under ICWS'94, DAT 0, 0 is a legal instruction. [ToC] ------------------------------------------------------------------------ 16. How does SLT (Skip if Less Than) work? SLT gives some people trouble because of the way modular arithmetic works. It is important to note that all negative numbers are converted to positive numbers before a battles begins. Example: -1 becomes M-1 where M is the memory size (core size). Once you realize that all numbers are treated as positive, it is clear what is meant by "less than". It should also be clear that no number is less than zero. [ToC] ------------------------------------------------------------------------ 17. What is the difference between in-register and in-memory evaluation? These terms refer to the way instruction operands are evaluated. The '88 Redcode standard ICWS'88 is unclear about whether a simulator should "buffer" the result of A-operand evaluation before the B-operand is evaluated. Simulators that do buffer are said to use in-register evaluation, those that don't, in-memory evaluation. ICWS'94 clears this confusion by mandating in-register evaluation. Instructions that execute differently under these two forms of evaluation are MOV, ADD, SUB, MUL, DIV and MOD where the effective address of the A-operand is modified by evaluation of the B-operand. This is best illustrated by an example: L1 mov L2, mov.i #0, impsize Bootstrapping Strategy of copying the active portion of the program away from the initial location, leaving a decoy behind and making the relocated program as small as possible. B-Scanners Scanners which only recognize non-zero B-fields. example add #10, scan scan jmz example, 10 c Measure of speed, equal to one location per cycle. Speed of light. CMP-Scanner A Scanner which uses a CMP instruction to look for opponents. example add step, scan scan cmp 10, 30 jmp attack jmp example step dat #20, #20 Colour Property of bombs making them visible to scanners, causing them to attack useless locations, thus slowing them down. example dat #100 Core-Clear Code that sequentially overwrites core with DAT instructions; usually the last part of a program. Decoys Bogus or unused instructions meant to slow down scanners. Typically, DATs with non-zero B-fields. Decrement Resistant Property of warriors making them functional (or at least partially functional) when overrun by a DJN-stream. DJN-Stream (also DJN-Train) Using a DJN command to rapidly decrement core locations. example ... ... djn example, <4000 Dwarf The prototypical small bomber. Gate-busting (also gate-crashing) technique to "interweave" a decrement-resistant imp-spiral (e.g. MOV 0, 2668) with a standard one to overrun imp-gates. Hybrids warriors that combine two or more of the basic strategies, either in sequence (e.g. stone->paper) or in parallel (e.g. imp/stone). Imp Program which only uses the MOV instruction. example mov 0, 1 or example mov 0, 2 mov 0, 2 Imp-Gate A location in core which is bombed or decremented continuously so that an Imp can not pass. Also used to describe the program-code which maintains the gate. example ... ... spl 0, mov.i #0,IMPSIZE Mirror see reflection. On-axis/off-axis On-axis scanners compare two locations M/2 apart, where M is the memory size. Off-axis scanners use some other separation. Optimal Constants (also optima-type constants) Bomb or scan increments chosen to cover core most effectively, i.e. leaving gaps of uniform size. Programs to calculate optimal constants and lists of optimal numbers are available at www.koth.org. Paper A Paper-like program is one which replicates itself many times. Part of the Scissors (beats) Paper (beats) Stone (beats Scissors) analogy. P-Warrior A warrior which uses the results of previous round(s) in order to determine which strategy it will use. Pit-Trapper (also Slaver, Vampire). A program which enslaves another. Usually accomplished by bombing with JMPs to a SPL 0 pit with an optional core-clear routine. Q^2 Scan A modern version of the Quick Scan where anything found is attacked almost immediately. Quick Scan 2c scan of a set group of core locations with bombing if anything is found. Both of the following codes snips scan 16 locations and check for a find. If anything is found, it is attacked, otherwise 16 more locations are scanned. Example: start s1 for 8 ;'88 scan cmp start+100*s1, start+100*s1+4000 ;check two locations mov #start+100*s1-found, found ;they differ so set pointer rof jmn attack, found ;if we have something, get it s2 for 8 cmp start+100*(s2+6), start+100*(s2+6)+4000 mov #start+100*(s2+6)-found, found rof found jmz moveme, #0 ;skip attack if qscan found nothing attack cmp @found, start-1 ;does found points to empty space? add #4000, found ;no, so point to correct location mov start-1, @found ;move a bomb moveme jmp 0, 0 In ICWS'94, the quick scan code is more compact because of the SNE opcode: start ;'94 scan s1 for 4 sne start+400*s1, start+400*s1+100 ;check two locations seq start+400*s1+200, start+400*s1+300 ;check two locations mov #start+400*s1-found, found ;they differ so set pointer rof jmn which, found ;if we have something, get it s2 for 4 sne start+400*(s2+4), start+400*(s2+4)+100 seq start+400*(s2+4)+200, start+400*(s2+4)+300 mov #start+400*(s2+4)-found-100, found rof found jmz moveme, #0 ;skip attack if qscan found nothing add #100, -1 ;increment pointer till we get the which jmn -1, @found ;right place mov start-1, @found ;move a bomb moveme jmp 0, 0 Reflection Copy of a program or program part, positioned to make the active program invisible to a CMP-scanner. Replicator Generic for Paper. A program which makes many copies of itself, each copy also making copies. Self-Splitting Strategy of amplifying the number of processes executing a piece of code. example spl 0 loop add #10, example mov example, @example jmp loop Scanner A program which searches through core for an opponent rather than bombing blindly. Scissors A program designed to beat replicators, usually a (B-field scanning) vampire. Part of the Paper-Scissors-Stone analogy. Self-Repair Ability of a program to fix it's own code after attack. Silk A replicator which splits off a process to each new copy before actually copying the code. This allows it to replicate extremely quickly. This technique is only possible under the '94 draft, because it requires post-increment indirect addressing. Example: spl 1 mov -1, 0 spl 1 ;generate 6 consecutive processes silk spl 3620, #0 ;split to new copy mov >-1, }-1 ;copy self to new location mov bomb, >2000 ;linear bombing mov bomb, }2042 ;A-indirect bombing for anti-vamp jmp silk, {silk ;reset source pointer, make new copy bomb dat >2667, >5334 ;anti-imp bomb Slaver see Pit-Trapper. Stealth Property of programs, or program parts, which are invisible to scanners, accomplished by using zero B-fields and reflections. Stone A Stone-like program designed to be a small bomber. Part of the Paper-Scissors-Stone analogy. Stun A type of bomb which makes the opponent multiply useless processes, thus slowing it down. Example is referred to as a SPL-JMP bomb. example spl 0 jmp -1 Two-Pass Core-Clear (also SPL/DAT Core-Clear) core clear that fills core first with SPL instructions, then with DATs. This is very effective in killing paper and certain imp-spiral variations. Vampire see Pit-Trapper. Vector Launch one of several means to start an imp-spiral running. As fast as Binary Launch, but requiring much less code. See also JMP/ADD Launch and Binary Launch. This example is one form of a Vector Launch: sz EQU 2667 spl 1 spl 1 jmp @vt, }0 vt dat #0, imp+0*sz ; start of vector table dat #0, imp+1*sz dat #0, imp+2*sz dat #0, imp+3*sz ; end of vector table imp mov.i #0, sz [ToC] ------------------------------------------------------------------------ 23. Other questions? Just ask in the rec.games.corewar newsgroup or contact me. If you are shy, check out the Core War archives first to see if your question has been answered before. [ToC] ------------------------------------------------------------------------ Credits Additions, corrections, etc. to this document are solicited. Thanks in particular to the following people who have contributed major portions of this document: * Mark Durham (wrote the original version of the FAQ) * Paul Kline * Randy Graham * Stefan Strack (maintained a recent version of the FAQ) ------------------------------------------------------------------------ Copyright � 1999 Anton Marsden. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ------------------------------------------------------------------------ From: "Judodudo" Subject: Re: Good constant. Date: 15 Dec 2005 09:32:33 -0800 Message-ID: <1134667953.582491.230070@f14g2000cwb.googlegroups.com> Thanks. I didn't put the decrement trail far away from the warrior because if the SPL's didn't hit me first I'd decrement myself, but that's probably a bad way of doing things. From: "iapdk@admin.drake.edu" Subject: Scanners on 94nop Date: 15 Dec 2005 13:59:51 -0800 Message-ID: <1134683991.499119.258520@g44g2000cwa.googlegroups.com> While trying to climb onto the -94nop hill I have determined that there are two kinds of scanners on the -94nop hill. This kind: 2by4k wins: 79 Shot to Nothing wins: 93 2by4k wins: 131 vamps are back 0.2 wins: 40 2by4k wins: 174 Grendel wins: 38 2by4k wins: 134 anything for a rich girl wins: 62 And this kind: 2by4k wins: 71 speed of light wins: 147 Does "speed of light" refer to scanning speed (technically feasible) or to pseudo-wiping speed? And does 2by4k's w/l/t ratio - 13/9/78 - set an unkillable record for a non-spiral program? Course it had to kill off Codgeriffic to get on :-( What was that old rule? ... "change losses to ties, ties to wins" That's it :-) P.Kline From: "inversed" Subject: Re: Scanners on 94nop Date: 18 Dec 2005 10:09:43 -0800 Message-ID: <1134929383.488897.180330@g49g2000cwa.googlegroups.com> I may be wrong, but I think that 'Speed of Light' is a HSAish scanner. Somewhy athors like to refer to C in HSAish scanners (Nenad Tomasev called his one 'Southern LightFast' or something like this). 2by4k looks like paper with silk-imps. For comparision, I've tested Stylized Euphoria (which is the best anti-scanner paper in my opinion) without qscan against 94nop and it's wlt vector is (12, 15, 73), so it's probable that 2by4k really 'sets an unkillable record'. With qS it'd be near the top. inversed From: "iapdk@admin.drake.edu" Subject: Re: Scanners on 94nop Date: 19 Dec 2005 07:02:25 -0800 Message-ID: <1135004545.286089.290650@z14g2000cwz.googlegroups.com> Based on testing against the Optimax suite with scn:cds, I'd say you are right about SoL. Also, there are some scan steps that are problematic for 2by4k. 2by4k may look like it launches silk-imps, but it does not. Still running tweaks against sch:cds, hope to do better against SoL soon :-) And am very glad to have another scanner on, boosting 2by4k to 7th place now. P. Kline From: KOTH Subject: KOTH.ORG: Status - 94 No Pspace 12/19/05 Date: Mon, 19 Dec 2005 08:17:58 -0500 (EST) Message-ID: <200512190509.jBJ5912R050120@asgard.t-b-o-h.net> Weekly Status on 12/19/05 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG 94 No Pspace CoreWar Hill: Last battle concluded at : Sun Dec 18 22:08:55 EST 2005 # %W/ %L/ %T Name Author Score Age 1 48/ 43/ 9 speed of light Christian Schmidt 153 38 2 33/ 24/ 43 CrashAndBurn Nenad Tomasev 143 89 3 29/ 16/ 56 Rust [v0.2] inversed 142 35 4 32/ 22/ 47 Mandragora Christian Schmidt 141 83 5 43/ 45/ 13 Substratum Roy/Jorinda 140 1 6 29/ 20/ 51 Last Judgement Christian Schmidt 139 112 7 32/ 27/ 41 HullabaTwo Roy 138 257 8 41/ 44/ 15 vamps are back 0.2 elkauka 137 174 9 30/ 24/ 46 DanceOfFallenAngels Nenad Tomasev 136 41 10 31/ 26/ 43 Eccentric Roy van Rijn 136 203 11 39/ 42/ 19 anything for a rich girl John Metcalf 136 75 12 31/ 26/ 44 Gods Of Destiny Nenad Tomasev 136 56 13 27/ 19/ 53 Supernova 94nop Remix Sascha Zapf 136 36 14 41/ 46/ 14 Grendel S.Fernandes 136 53 15 22/ 8/ 70 2by4k P.Kline 135 2 16 38/ 41/ 21 Shot to Nothing Christian Schmidt 134 287 17 26/ 18/ 56 Lucky_Misfortune Nenad Tomasev 134 50 18 30/ 25/ 45 Yikes! Christian Schmidt 134 82 19 29/ 25/ 46 Lavos Nenad Tomasev 134 52 20 28/ 22/ 50 Harmless Fluffy Bunny Jens Gutzeit 133 189 21 2/ 98/ 0 Cooperative Black Dimensi Blake Escritt/Christ 7 0 From: KOTH Subject: KOTH.ORG: Status - Standard 12/19/05 Date: Mon, 19 Dec 2005 08:18:01 -0500 (EST) Message-ID: <200512190500.jBJ500Uh049428@asgard.t-b-o-h.net> Weekly Status on 12/19/05 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG Standard KotH CoreWar Hill : Last battle concluded at : Wed Nov 23 13:49:43 EST 2005 # %W/ %L/ %T Name Author Score Age 1 34/ 23/ 43 Test Alexander (Sasha) Wa 145 174 2 35/ 28/ 37 The Next Step '88 David Houston 142 50 3 40/ 38/ 22 My 1st try Christian Schmidt 142 66 4 32/ 24/ 44 The Hurricaner G.Labarga 140 21 5 31/ 24/ 45 Guardian Ian Oversby 137 234 6 39/ 41/ 20 Moonwipe Christian Schmidt 136 31 7 30/ 24/ 47 test G.Labarga 136 17 8 41/ 47/ 12 Speeed 88mph Christian Schmidt 135 34 9 33/ 31/ 37 The Seed Roy van Rijn 135 52 10 39/ 43/ 18 Scan the Can Christian Schmidt 135 15 11 24/ 15/ 61 Utterer '88 Christian Schmidt 134 9 12 32/ 30/ 38 A.I.P. Christian Schmidt 133 42 13 37/ 43/ 20 July Nenad Tomasev 131 7 14 40/ 49/ 11 Scan Test C 6 Steve Gunnell 131 73 15 37/ 43/ 20 trick shot John Metcalf 130 11 16 21/ 12/ 66 IMParable G.Labarga 130 22 17 40/ 51/ 9 Replihater Some Redcoder 130 5 18 25/ 23/ 52 Scopulos pluviae G.Labarga 127 1 19 28/ 31/ 42 SoundOfDarkness Nenad Tomasev 125 2 20 29/ 35/ 36 Something Simple Some Redcoder 123 4 21 27/ 33/ 40 Hidden Base Some Redcoder 121 6 From: KOTH Subject: KOTH.ORG: Status - MultiWarrior 94 12/19/05 Date: Mon, 19 Dec 2005 08:18:00 -0500 (EST) Message-ID: <200512190503.jBJ530Ee049545@asgard.t-b-o-h.net> Weekly Status on 12/19/05 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG Multiwarrior 94 CoreWar Hill: Last battle concluded at : Tue Dec 13 12:15:00 EST 2005 # Name Author Score Age 1 Urgle Daniel Rivas 19 1 2 the price of hostility John Metcalf 17 8 3 Diptera Nenad Tomasev 15 35 4 JustADirtyClearTest Nenad Tomasev 13 50 5 nameless fragment S.Fernandes 10 20 6 Simon Gruber datagram 10 16 7 FearIsTheName Nenad Tomasev 9 4 8 kingdom of the grasshoppe simon wainwright 8 116 9 Fluffy Paper VI Jens Gutzeit 8 21 10 Gungnir John Metcalf 6 3 11 2by4k P.Kline 4 0 From: KOTH Subject: KOTH.ORG: Status - ICWS Experimental 94 12/19/05 Date: Mon, 19 Dec 2005 08:18:00 -0500 (EST) Message-ID: <200512190506.jBJ561Kb049820@asgard.t-b-o-h.net> Weekly Status on 12/19/05 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG ICWS Experimental 94 CoreWar Hill: Last battle concluded at : Mon Nov 7 13:53:12 EST 2005 # %W/ %L/ %T Name Author Score Age 1 45/ 36/ 19 Fatamorgana X Zul Nadzri 155 10 2 44/ 36/ 20 The X Machine Zul Nadzri 152 34 3 44/ 37/ 19 Ogre Christian Schmidt 150 171 4 35/ 22/ 43 xd100 test David Houston 149 20 5 43/ 39/ 18 Eliminator X Zul Nadzri 148 35 6 34/ 26/ 41 KAT v5 Dave Hillis 142 155 7 26/ 11/ 64 Evol Cap 4 X John Wilkinson 141 292 8 40/ 40/ 19 Bewitching S.Fernandes 141 1 9 41/ 42/ 17 Black Moods Ian Oversby 139 219 10 38/ 37/ 24 Trefoil F 13 Steve Gunnell 139 106 11 33/ 28/ 39 Glenstorm John Metcalf 139 85 12 38/ 39/ 23 Trefoil Test F 14 Steve Gunnell 137 7 13 41/ 44/ 15 O_Fortuna3X Nenad Tomasev 137 6 14 40/ 44/ 16 Giant Hazy Test 13 Steve Gunnell 136 50 15 33/ 30/ 37 Olivia X Ben Ford 136 104 16 38/ 42/ 20 Simply Intelligent Zul Nadzri 134 16 17 20/ 6/ 74 Evolve X v4.0 John Wilkinson 134 240 18 36/ 38/ 26 test Some Redcoder 134 4 19 37/ 42/ 21 Controlled Aggression Ian Oversby 133 223 20 38/ 47/ 14 Fatal Choice Some Redcoder 129 5 21 18/ 67/ 15 toffee apple John Metcalf 68 0 From: fizmo_master@yahoo.com Subject: Re: Scanners on 94nop Date: 19 Dec 2005 11:47:54 -0800 Message-ID: <1135021674.146331.233160@g44g2000cwa.googlegroups.com> Yes, Speed of Light is a HSAish scanner ;-) I am still curious how 2by4k get so much ties without silk-imps, but on the other hand silk-imps wouldn't get in my opinion so much wins against all those non-HSAish scanner. Paul, it's nice to watch your entries on 94nop. I'm still curious about your scanner too. And of course you a nice hill aging ;-) - Christian From: roy.van.rijn@gmail.com Subject: Speedscanner Date: 20 Dec 2005 00:36:39 -0800 Message-ID: <1135067799.129229.297700@g44g2000cwa.googlegroups.com> Ok, talking about scanners (in the other topic) this is the scanner I've been working on lately, its doesn't really work, but I wanted to post it anyway. Its a Zooom scanner, which means it scans until it finds something, and then turns into a clear-scanner, clearing the thing it found while scanning. Normally it would clear from the start, but with a little trick it only starts clearing when it actually found something, this increases the scan-speed. The increased speed is lost when it hits the first target, after that its just a normal Blur-like scanner. This is what I want to change, HSA can clear a target and then continue scanning, why can't a Zooom scanner not clear/scan until the target is covered and then continue the fast-scan only? So thats what I made, a reusable-zooom-trick-scanner. Two reasons why I post it: - Because you don't have to spend a LOT of time thinking about how to make this - Someone might be able to make it work well The same thing happend with the first Zooom scanner I made with the sTop b-field decrement, Nenad finally managed to make it effective with good constants and it turned into Lux Ataera. It uses the same trick as Grendel does (seperatly developed by S.Fernandes) on the hill now. Here is the code: ;redcode-94nop ;name Speedscan ;author Roy van Rijn ;strategy No constants.. ;strategy Zooom scanner that jumps back to Zooom-mode ;strategy once the bombing isn't needed anymore. sStep equ XXXX sOff equ XXXX sSpan equ XXXX sTop mov.ab sScan , #sRet mov.i sAdd , >-1 add.f sAdd , 1 sScan seq sOff , sOff+sSpan djn.a sTop , @sTop jmn.f *sRet , @sTop mov.ab #sTop+1 , sTop mov.a #-6 , 1 sRet jmz.f sScan-1 , sTop-1 ;this endgame sometimes works, can be changed ;or maybe this: ;sRet jmn.a sScan-1 , sScan ;or maybe this: ;sRet djn.b sScan-1 , #XXX ;but it needs the sScan-1 in the a-field! sAdd spl #sStep , sStep mov.i 2 , >sTop djn.f -1 , >sTop dat <2667 , >13 end sScan-1 From: "iapdk@admin.drake.edu" Subject: Re: Scanners on 94nop Date: 20 Dec 2005 12:14:37 -0800 Message-ID: <1135109676.940624.164610@g49g2000cwa.googlegroups.com> My scanner, Codgeriffic, starts out like Ivner's seventyfive, with a mod that causes it to bail out when it thinks it found a paper. It then launches a small blur-style scanner in paper-dodger fashion. But not the usual 15 locations back. If you think about it you will know that there are other 'safe' locations (like X+4000) that are unlikely to be overwritten by the paper, and not succeptible to anti-dodger attacks. Codgeriffic can be tuned to destroy any individual paper, but there is a lot of variety on the hill right now, and it can't beat all of them. I am trying to refrain from inundating the hill through "constant tweaking" :-) Optimax helps but it can be seriously slooow... P. Kline From: "Cheung" Subject: Factory pressed dvd movies, ps2, psp & xbox backups for sale !!! Date: 20 Dec 2005 17:24:38 -0800 Message-ID: <1135128278.603311.260760@f14g2000cwb.googlegroups.com> We're offering all the latest factory pressed high quality dvd movies, ps2, psp and xbox silvers with factory printed colour inserts at fantastic prices, whether for personal use or reselling. We're shipping worldwide with various shipping methods. For resellers, please contact us for bulk discounts. For a complete list and prices, please email us at movieworld@time.net.my (Please state the type of list that you want and tell us your location as the prices varies for different locations. If you're reseller, please state the quantiy you wish to order per shipment and we'll quote you a wholesale price depending on the quantity ordered.) * If you need references, we can provide them to you. From: "iapdk@admin.drake.edu" Subject: Re: Speedscanner Date: 21 Dec 2005 06:12:40 -0800 Message-ID: <1135174360.451877.97030@g49g2000cwa.googlegroups.com> It's a worthy goal, but it is 13 lines long. That seems like a huge disadvantage. There already are 13-line spl-wiping scanners out there, and none of them can make the hill. From: "zespri" Subject: little help with corewar UI Date: 21 Dec 2005 16:25:19 -0800 Message-ID: <1135211119.879100.267940@o13g2000cwo.googlegroups.com> Hello guys, could you please those of you who run this version (http://sourceforge.net/projects/corewars) of corewars give me some info of how the memory cells are colour-coded. Look here: http://happypenguin.org/images/corewars.gif There are 4 types of cells here 1) Black 2) Of a paticular colour related to a competing warrior 3) Of a colour with a black frame around 4) Of a colour with a black cross inside As far as I understand type one means 'unclaimed' cells, those that haven't been touched by a warrior in anyfor during the current round. Type two probably represents cells owned by a warrior, where ownership defined somewhere as follows: ===Cut=== Each time a process writes to a memory cell, it gets the "ownership" of the cell. However, a process can read and execute cells owned by other processes without any difference. ===Cut=== But what are type three and type four cells. It would be logical to imagine that these are relaed somewhere to "executed" cells rather the owned or "data" cells rather then "code" cells. Any comments would be appreciated. I don't have linux so I can't really run the program in question and see for myself. Thank you in adavnce. //Andrew From: "zespri" Subject: Re: little help with corewar UI Date: 21 Dec 2005 18:58:39 -0800 Message-ID: <1135220319.108956.58290@g43g2000cwa.googlegroups.com> Ok, I admit, I'm one of those, who can find answer by merely formulating a question to someone else. Although I can't run the program I can examine the source code, which I did. Type one is - untouched cells, type two is 'active' cells, i.e currently executing cells. Only one cell per process is active any given point of time. Type 3 data cells owned by a process and type for code cells owned by a process. Now, when I'm done talking to myself, I would like to thank everybody for there patience and excuse me. //Andrew From: sayembara@gmail.com Subject: cooperative warriors return Date: 22 Dec 2005 14:14:32 -0800 Message-ID: <1135289672.461516.226230@z14g2000cwz.googlegroups.com> The cooperative warriors with 50:50 win-lost strategy currently on the 94-hill reminded me on the same strategy that wiped-out all warriors from the hill some time ago. Luckily, current author limit the warrior to only 5 and not the cleansing 20. Similar on the lp-hill; slightly different modus operandi but moving towards the same direction. Personally, I prefer if cooperation between two or more warriors are limited to non-hill tournaments so that we can prevent hill cleansing (when the only solution was to reset the hill years ago?). Please don't repeat the history. From: "Jens Gutzeit" Subject: Harmless Fluffy Bunny Date: 22 Dec 2005 14:54:53 -0800 Message-ID: <1135292093.356409.225600@g47g2000cwa.googlegroups.com> Hi, HFB is my first successful warrior on 94nop. Since it seems to fall off soon I have decided to publish its sources. Actually it scores quite similar to nPaper II, but uses an open ended paper. ;redcode-94nop verbose ;name Harmless Fluffy Bunny ;author Jens Gutzeit ;strategy qscan -> paper ;assert CORESIZE == 8000 ORG qGo ;; ;; boot ;; pAway1 EQU 4024 ; 2000 pAway2 EQU 6095 ; 6000 decoy EQU 4000 ; isn't really a decoy boot spl 1, < qb1 qTab2 spl 1, < qb2 spl 1, < qb3 mov.i { silk1, { pBoot1 pBoot1 spl pAway1, < decoy mov.i } pBoot1, > pBoot2 pBoot2 jmp pAway2, pAway2 ;; ;; paper ;; pStep1 EQU 4271 pStep2 EQU 2307 pStep3 EQU 3777 iStep EQU 4033 ; 1 x EQU 719 ; 1340 y EQU 1803 ; 6347 silk1 spl @ silk1 + 8, < pStep1 mov.i } silk1, > silk1 silk2 spl @ silk2, { pStep2 mov.i } silk2, > silk2 silk3 spl @ silk3, < pStep3 mov.i } silk3, > silk3 mov.i # iStep, { 1 mov.i x, < y for 18 dat.f 0, 0 rof empty dat.f 0, 0 dat.f empty, qa1 qTab1 dat.f empty, qa2 for 28 dat.f 0, 0 rof ;; ;; quickscanner ;; qTab3 EQU qBomb qm EQU 160 qM EQU 6239 ;; qM * (qm-1) = 1 mod 8000 qa1 EQU ((qTab1-1-found)*qM+1) qa2 EQU ((qTab1 -found)*qM+1) qb1 EQU ((qTab2-1-found)*qM+1) qb2 EQU ((qTab2 -found)*qM+1) qb3 EQU ((qTab2+1-found)*qM+1) qc2 EQU ((qTab3 -found)*qM+1) qBomb dat.f > qOffset, > qc2 qGo ; q0 mutations sne.i found+qm*qc2, found+qm*qc2+qb2 seq.i < qTab3, found+qm*(qc2-1)+qb2 jmp q0, } q0 sne.i found+qm*qa1, found+qm*qa1+qb2 seq.i < (qTab1-1), found+qm*(qa1-1)+qb2 djn.a q0, { q0 sne.i found+qm*qa2, found+qm*qa2+qb2 seq.i < qTab1, found+qm*(qa2-1)+qb2 jmp q0, { q0 ;; q1 mutations sne.i found+qm*qb1, found+qm*qb1+qb1 seq.i < (qTab2-1), found+qm*(qb1-1)+(qb1-1) jmp q0, { q1 sne.i found+qm*qb3, found+qm*qb3+qb3 seq.i < (qTab2+1), found+qm*(qb3-1)+(qb3-1) jmp q0, } q1 ;; no mutation sne.i found+qm*qb2, found+qm*qb2+qb2 seq < qTab2, found+qm*(qb2-1)+(qb2-1) jmp q0, < found+qm*qb2 ;; qm mutation seq.i > found, found+qm+(qb2-1) jmp qSelect, < found ;; q0 mutation seq.i found+(qm+1)*(qc2-1), found+(qm+1)*(qc2-1)+(qb2-1) jmp q0, } q0 seq.i found+(qm+1)*(qa2-1), found+(qm+1)*(qa2-1)+(qb2-1) jmp q0, { q0 seq.i found+(qm+1)*(qa1-1), found+(qm+1)*(qa1-1)+(qb2-1) djn.a q0, { q0 ;; no mutation (free scan) jmz.f boot, found+(qm+1)*(qb2-1)+(qb2-1) ;; decoder q0 mul.b * q1, found qSelect sne { qTab1, @ found q1 add.b qTab2, found ;; bombing engine VI qOffset EQU -86 qTimes EQU 19 ; number of bombs to throw qStep EQU -7 ; distance between bombs throw mov.i qTab3, @ found found mov.i qBomb, } qm sub # qStep, found djn throw, # qTimes jmp boot, < decoy ; start paper END -- Jens Gutzeit From: "usenetposter@mac.com" Subject: Re: Harmless Fluffy Bunny Date: 22 Dec 2005 19:54:27 -0800 Message-ID: <1135310067.856786.246390@f14g2000cwb.googlegroups.com> Hmmm... it looks like your "open ended" silk is vulnerable to true replicators that have a good error detection mechanism capable of shedding unwanted bunny processes. A good replicator would stay fit long enough to snuff out all of the spl/mov pairs in Bunny. Try your silk against the following variation of P.Kline's "Puff", which has been modified to kill Harmless Fluffy Bunny. boot spl 2,0 spl 2,0 spl 1,0 top spl 1, >src mov d3, >5000 mov d3, >5250 mov d3, {dest mov 0, #0 jmz.f top, src dest jmp 3700, Subject: Re: Harmless Fluffy Bunny Date: 23 Dec 2005 09:18:10 -0800 Message-ID: <1135358289.991505.128520@g49g2000cwa.googlegroups.com> HFB would do better if there were more stone-imps on the hill. But right now the majority are papers. Stone-papers, imp-papers, and just papers all propped up with cooperating qscans. Also a few miserable scanners. Qscan is just about the equivalent of handshaking except it is non-proprietary, veryone who has one shares equally. HFB's silk3 is just a hopper, silk2 is a hopper spawner, and silk1 is a spawner-spawner. Three silk1's are launched and if they are killed early enough, most papers would have no trouble killing off the rest. Also, using 8 processes in silk3 is overkill and slow. You might try a binary silk: silk1 spl @0 ,silk1 mov {silk1 ,pStep3 mov.i # iStep, { 1 mov.i x, < y dat 0 ,0 Since it is also use-once code it leaves behind a large amount of trash that may slow a scanner down. P. Kline From: "iapdk@admin.drake.edu" Subject: Re: Harmless Fluffy Bunny Date: 23 Dec 2005 09:21:10 -0800 Message-ID: <1135358470.676160.158600@o13g2000cwo.googlegroups.com> BTW, Thanks for posting!! From: "bescritt@gmail.com" Subject: Re: cooperative warriors return Date: 23 Dec 2005 13:57:26 -0800 Message-ID: <1135375046.040984.95250@f14g2000cwb.googlegroups.com> > The cooperative warriors with 50:50 win-lost strategy currently on the > 94-hill reminded me on the same strategy that wiped-out all warriors > from the hill some time ago. Luckily, current author limit the warrior > to only 5 and not the cleansing 20. Similar on the lp-hill; slightly > different modus operandi but moving towards the same direction. LOL, its not at all anyone's intention to 'cleanse' the hill. In fact, I limit myself to the more modest 4 warriors, which seems to be the socially acceptable norm. Certainly if someone wanted to cleanse the hill they could do so despite the 5 warrior limit (email aliases and spoofed author names). Even though I haven't been involved in redcode for much more than a year, it seems apparent that the PIN pseudo-op has caused a lot of debate since it was introduced. > > Personally, I prefer if cooperation between two or more warriors are > limited to non-hill tournaments so that we can prevent hill cleansing > (when the only solution was to reset the hill years ago?). It is my opinion that if cooperation becomes a problem on a hill, then the hill should not be reset. Warriors that use PIN are perfectly valid and defeating them might provide an interesting challenge. In fact, defeating warriors that use the prevailing form of handshake is indeed possible, and one doesn't even need to know the warrior's PIN code. (hint: evolvers. when i rediscover the anti-handshake warrior that i found, i will certainly post it here.) Redcode seems to be needing more unique challenges and opportunities for innovation, an arms race between cooperative warriors and their opponents might liven things up a bit. > > Please don't repeat the history. I would suggest that, to end this debate finally, a new hilltype be created that disallows the PIN pseudo-op. It seems that a similar debate (between pspacers and non-pspacers) was solved years ago, and resulted in the creation of specialized hilltypes. From: sayembara@gmail.com Subject: Re: cooperative warriors return Date: 23 Dec 2005 15:00:41 -0800 Message-ID: <1135378841.029986.45870@g49g2000cwa.googlegroups.com> Thanks for not sending more than 4 or 5 warriors. And it is a challenge to stay on the hill if another authors sending their own 5-warrior cooperative attack (I can too but...). This leads to your suggestion on a specialised hill where everyone must send none but cooperative warriors :) From: "bescritt@gmail.com" Subject: Re: cooperative warriors return Date: 23 Dec 2005 16:15:54 -0800 Message-ID: <1135383354.322303.93910@z14g2000cwz.googlegroups.com> You got me slightly wrong there. I don't suggest creating a hill that is only for PIN warriors. I suggest creating a hill where pspace is allowed, but PIN is not. From: sayembara@gmail.com Subject: Re: cooperative warriors return Date: 24 Dec 2005 02:17:19 -0800 Message-ID: <1135419439.031608.29630@g14g2000cwa.googlegroups.com> bescritt@gmail.com wrote: > You got me slightly wrong there. I don't suggest creating a hill that > is only for PIN warriors. I suggest creating a hill where pspace is > allowed, but PIN is not. I see. That would be a good idea. From: "inversed" Subject: Paper Experiments Part 1 Date: 24 Dec 2005 10:03:38 -0800 Message-ID: <1135447418.158270.273840@f14g2000cwb.googlegroups.com> Paper Experiments Part 1 Deep under ground in my secret lab I breed papery. Long time ago I was reading paper tutorial at corewar.info and the following comment about Moore-style paper attracted my attention: 'The advantage is that it nicley kill several coreclear paper and heavily optimized anti-imp papers.' I've tested example of moore paper from the site and found that comment to be true (score 150 against basic coreclearing paper), but I had no idea why this happens. As far as I know, it's now considered that this happens because it's code cannot be executed by other replicators (wrong number of processes will mess up the replication). But I didn't knew that (as you'll see, this is only tip of the iceberg) and I started my own investigation. First, I thought about self-checking. When I replaced jmz with jmp, the miracle disappeared: 100% ties. So, self-checking did the trick? But there are other types of paper with self-checking, paperone-like replicators for example. So I've coded some variations with different types of self-checking and even self-destruction on fail and they all scored similar: score near 110 against my basic CC paper. That's better than 100, but not as good as moore-style. Apparently self-checking has something to do with paper-vs-paper abilities. I ran out of ideas and decided to put this question to evolution's disposal. But first I had to make a testset to evolve against. I ran moore-style paper against many other papers and picked ones that gave most score. The testset contains papers from: 2b!!|2b Benj's revenge Cheep! Half Off! Disincentive My First Paper Reepicheep Soldier of Silkland Tyrant Venomous Philtre Wallpaper I'll discuss this testset later. Then I was feeding different kinds of papery to YACE and looking what happens. This is what I've got (after cleaning load files, ;score indicates score against testset mentioned above): ;redcode-94nop ;author inversed ;strategy Evolved from CC-style paper ;score 158.9 ;assert (CORESIZE==8000) && (MAXPROCESSES==8000) ofs0 equ 3979 ofs1 equ 28 ofs2 equ 6460 a1 equ 2652 a2 equ 4018 b1 equ 7531 b2 equ 2023 djs equ 1918 spl 1, 0 spl 1, 0 mov -1, 0 silk0 spl @0, }ofs0 mov }silk0, >silk0 mov }silk0, >silk0 silk1 spl @0, silk1 silk2 spl @0, }ofs2 mov }silk2, >silk2 mov >a1, {b1 loop add.a #a2, {b2 djn.f loop, {djs ;redcode-94nop ;author inversed ;strategy Evolved from Timescape-style paper ;score 146.7 ;assert (CORESIZE==8000) && (MAXPROCESSES==8000) ofs1 equ 7486 ofs2 equ 7991 a1 equ 2022 b1 equ 28 spl 1, 0 spl 1, 0 spl 1, 0 silk1 spl @0, }ofs1 mov }silk1, >silk1 add.f #a1, {b1 mov {silk1, ofs2 ;redcode-94nop ;author inversed ;strategy Evolved from Kline-style paper ;score 187.4 ;assert (CORESIZE==8000) && (MAXPROCESSES==8000) ofs equ 534 a1 equ 2682 a2 equ 2644 b1 equ 3996 b2 equ 2682 pba equ 1982 pbb equ 5334 spl 1, 0 spl 1, 0 spl 1, 0 ptr mov pbomb, >pbomb+1 mov ofs mov }a1, a2, {b1 add pbomb, >b2 jmn.f @0, >ptr pbomb dat }pba, b2 ;redcode-94nop ;author inversed ;strategy Evolved from 8-line Moore-style paper ;score 223.8 ;assert (CORESIZE==8000) && (MAXPROCESSES==8000) ofs1 equ 3581 a1 equ 2664 b1 equ 6494 a2 equ 1976 b2 equ 2027 a3 equ 2656 b3 equ 3978 spl 1, 0 spl 1, 0 spl 1, 0 to spl ofs1, {from mov }from, }to mov }a1, {b1 add.ba #a2, {b2 from mov @to+8, }to mov >a3, {b3 jmz to, *from ;redcode-94nop ;author inversed ;strategy Evolved from Paperone-style paper ;score 201.1 ;assert (CORESIZE==8000) && (MAXPROCESSES==8000) ofs0 equ 30 b1 equ 1995 a2 equ 1999 b2 equ 5596 a3 equ 13 b3 equ 2679 a4 equ 2696 b4 equ 1988 spl 1, 0 spl 1, 0 spl 1, 0 silk spl @0, }ofs0 mov }-1, >-1 mov pbomb, {b1 mov or } or <), {x bombing. What does this means? Removing or replacing these lines worses performance, so they're important. Maybe it's related to paper we're fighting against? Let's look at basic cc paper (unoptimized example): ;redcode-94nop ;author inversed ;strategy Simple coreclearing paper ;assert (CORESIZE==8000) && (MAXPROCESSES==8000) ofs0 equ 713 ofs1 equ 2483 ofs2 equ 2037 bs equ 804 gate equ 7182 spl 1, 0 spl 1, 0 mov -1, 0 silk0 spl @0, silk0 mov }silk0, >silk0 silk1 spl @0, silk1 silk2 spl @0, silk2 mov bomb, >bs djn.f -2, x imps. They're former bombing lines. Somewhy they were a-fiels decremented 2 times and started to replicate themselves. There are almost no working paper copies, and many processes execute these imps. I call this effect imp degradation. And what if we add something to that imp? It will become MOV x, >y and it will not copy itself, but it will copy some core locations maybe killing other imps. MOV (> or } or <), {x kills such imps too - it overwrites them with some core locations, but there are some restrictions: second field MUST have {x form. For even more efficiency, first field must not have this form. This bombing type was used by Jens Gutzeit in his Yatima paper (without any theoretical basis), and it works well because it can kill other papers. But what paprs are vulnetable to such attacks and what are not? Looking at testset, we see two types of papers: coreclearing and heavy-optimized anti-imp papers. Let's look at CC paper (with 3 silk pairs) replication (kind of symbolic dynamics). Designations: Complete paper '1' Paper without first silk '2' Paper without first and second silks (smallest fraction) '3' We start with '1' and three rules: '1'->'12', '2'->'23', '3'->'3' (each silk replicates itself and lower silks). Replication looks as: 1 12 1223 1223233 12232332333 1223233233323333 ... We see that concentration of '3' is growing (it is evident that lim n3/nall, t->+inf = 1). Smallest fraction only copies itself and starts coreclear. Or we can denote clear by separate symbol and it will look like this: 1 12 1223 1223233c 1223233c233c3cc 1223233c233c3cc233c3cc3ccc Here concentration of 'c' is increasing (3 develops to 3ccccccccc..... ). So one can kill paper copies one by one and be sure that no new copies will arise - replication potential of ccpapers is low, so they can be killed by other papers. Timescape-style papers behave differently. silk-bombing-silk completely reproduces itself twice, so usually they cannot be killed by other papers. Exception are heavy-optimized anti-imp papers. They have special steps to kill imps effectively. I don't know why they're vulnerable to other papers, and I don't know EXACT mechanism of how they kill imps (I'd like to hear it from you). These papers need special investigation. Conclusion To say in one word, main thing for paper to be able to kill other papers is DURABILITY. When typical paper turns to imps, Moore-style replicator still has many healthy copies. Durability arises from: Self-checking Long time interval before imp degradation Resistance to imp degradation of enemy Resistance to execution by enemy There is another interesting mechanism found in timescape-style paper above: it has special steps and it decrements it's own copies with djn. If you can figure out how exactly it works, please tell me. And on the other side, if your paper has some kind of silk-imps or mov.i anti-imp bombs, it will tend to tie. Most interesting things started later, but you'll have to wait for part 2. inversed From: "inversed" Subject: Re: Speedscanner Date: 24 Dec 2005 10:13:17 -0800 Message-ID: <1135447997.348635.63740@o13g2000cwo.googlegroups.com> I was thinking about zoooming in and out and one of the problems was detection through a-field. Look at this: . empty locations x enemy locations * scanned locations .....*....xx*xxx..... Your scanner will zooom in, move one spl and zooom out, without actually wiping the enemy. It will not work. From: "iapdk@admin.drake.edu" Subject: Re: Paper Experiments Part 1 Date: 24 Dec 2005 13:02:56 -0800 Message-ID: <1135458175.994289.113710@g43g2000cwa.googlegroups.com> In my tests, this: spl 2 spl 1 spl 1 makes weaker silk than this: spl 1 mov.i -1,#0 spl 1 P. Kline From: sayembara@gmail.com Subject: Re: Paper Experiments Part 1 Date: 24 Dec 2005 15:45:42 -0800 Message-ID: <1135467942.299514.101740@g44g2000cwa.googlegroups.com> a process is a process. How it distinguishes itself as mentioned above? back to the papery lab, papers kill each other and can be grouped into some sort of 'predatory' relationship (would follow the stone-scissor-paper process). To know into how and what make that happens in smallest chunk of code is like going nanotechnology. You can reap huge output by knowing how to manage, control or manipulate significant molecules. Hope to see your study go further. From: =?ISO-8859-2?Q?=A3ukasz_Adamowski?= Subject: Happy Christmas!!! Date: Sat, 24 Dec 2005 22:53:21 -0500 (EST) Message-ID: <43adb51195dbd@wp.pl> Greetings!!! Congratulations to all who scored well in this passing year! I hope your results will be even better in 2006. Thanks for everyone who decided to host a RF round or other tournament. And thanks for all that participated! Thanks for all that fun! Peace for all corecoders in the world and may the core be with you! :D Lukasz Adamowski -= "War is a problem, never a solution" =- -= "Wojna jest problemem, a nie rozwiazaniem" =- ---------------------------------------------------- Pami�taj o wszystkich/ -im w te �wi�ta! Zajrzyj na swieta.wp.pl i wygraj aparaty cyfrowe Panasonic! Kliknij: http://klik.wp.pl/?adr=www.swieta.wp.pl&sid=599 From: "inversed" Subject: Blotter2 Date: 25 Dec 2005 00:50:53 -0800 Message-ID: <1135500653.316195.135870@z14g2000cwz.googlegroups.com> Here is Blotter2, warrior that has been pushed off 94nop recently. I'm surprised that it climbed the hill, the strategy is quite unusual: paper with separate dclear. There is a similar warrior 'Bravo' by Lukasz Grabun, but in his warrior dclear doesn't lives long. In my warrior, dclear survives until the end of the battle. This allows blotter to beat stone/imps without having anti-imp paper; paper in blotter is very simple and used for defence rather than offence. It ties with most papers, scores ok against cds, but it's vulnerable to *some* scanners. That's why it was pushed off. ;redcode-94nop ;author inversed ;name Blotter2 ;strategy Paper/dclear ;assert (CORESIZE==8000) && (MAXPROCESSES==8000) ofs0 equ 7679 ofs1 equ 2981 ofs2 equ 2432 zofs equ 670 dist equ 3058 gap0 equ 9 gap1 equ 6 gap2 equ 3 f equ 4697 y equ 5033 dq equ (y+1)%CORESIZE qa1 equ (1+f*(qt1-1-found))%CORESIZE qa2 equ (1+f*(qt1 -found))%CORESIZE qb1 equ (1+f*(qt2-1-found))%CORESIZE qb2 equ (1+f*(qt2 -found))%CORESIZE qb3 equ (1+f*(qt2+1-found))%CORESIZE qc2 equ (1+f*(qt3 -found))%CORESIZE qt3 equ qbomb org qgo silk0 spl @0, silk0 mov }silk0, >silk0 silk1 spl @0, silk1 mov {silk1, ofs2 for gap0 dat 0, 0 rof dat 0, qb1 qt2 dat 0, qb2 dat 0, qb3 wgo mov cptr, cptr+dist-gap1 mov bomb, bomb+dist+gap2 spl 1, qa1 qt1 spl 1, qa2 mov cptr-gap1 spl #0, >cptr-gap1 mov bomb+gap2, >cptr-gap1 dj djn.f -1, >cptr-gap1 dat 0, 0 bomb dat 0, (bomb-cptr+gap1+gap2+1) for 29 dat 0, 0 rof ;q0 mutations qgo sne found+dq*qc2, found+dq*qc2+qb2 seq found, found+dq+(qb2-1) jmp qsel, Subject: Re: Speedscanner Date: 25 Dec 2005 03:39:21 -0800 Message-ID: <1135510761.606521.242770@g14g2000cwa.googlegroups.com> Hi. Actually, there is a way to avoid the problem that inversed mentioned. I managed to make a fully functional re-zooom scanner today, that never misses the found target. It wasn't so hard to make. Of course, I don't have time for optimization now, so I won't do any hill submissions yet. I like this idea and I think that it would be good if other players decided to explore it, as well, and try to make some good warriors while using rezooom approach. About the size - we're not only discussing CORESIZE==8000 94nop hill here. In larger cores, such in X hill, it may prove to be very useful. From: "Nenad Tomasev" Subject: Re: cooperative warriors return Date: 25 Dec 2005 03:46:14 -0800 Message-ID: <1135511174.782470.201960@o13g2000cwo.googlegroups.com> I agree that, generally speaking, the existance of such a hill would be a good idea. However, the presemt state of corewar, where there are only a few active players left, suggests that there shouldn't be many new hills opened in the near future. That would only lead to less frequent challenges per hill, and therefore less competition. 50-50 scores between warriors are allowed on 94draft hill. If someone wants to make cooperative warriors, so let him. There are ways to fight those, too. :) There is a way to fight any possible strategy. There weren't many brainwashers on the hill lately. Maybe it's finally time to start making some. :) From: "Nenad Tomasev" Subject: Re: Harmless Fluffy Bunny Date: 25 Dec 2005 03:48:26 -0800 Message-ID: <1135511306.715156.158400@g47g2000cwa.googlegroups.com> Thanks for posting, Jens! I hope that your new papers will do even better on the hill. From: "Nenad Tomasev" Subject: Re: Happy Christmas!!! Date: 25 Dec 2005 03:52:26 -0800 Message-ID: <1135511546.302146.183640@g43g2000cwa.googlegroups.com> To all the redcoders: I wish you a marry Christmas and a happy New Year + all the luck you can get when designing your new unbeatable warriors + to see you all in Holland when Roy decides to organize the corewar meeting. :) Regards, Nenad From: "Nenad Tomasev" Subject: Re: Paper Experiments Part 1 Date: 25 Dec 2005 04:04:11 -0800 Message-ID: <1135512251.191874.265740@o13g2000cwo.googlegroups.com> I don't see why: spl 2 spl 1 spl 1 would be any weaker than spl 1 mov.i -1, #0 spl 1 it can only be the opposite, because the first three-line segment is executed one time unit faster. but that won't change the score much, anyway. The things that inversed mentioned here about different kinds of papers and how they score when confronted sounds pretty interesting. Maybe we could even organize once a "paper round" of RF tournament? Would anyone be willing to do that? It would also be wonderful if we could produce some sort of formula to predict (with an error within certain limits) the result of a paper-paper combat. There are many interesting topics to discuss when it comes to papers. So, if you have enough time and are willing to try interpreting why certain patterns emerge in combat between papers of specific types, go ahead - and good luck! Regards, Nenad From: "fizmo" Subject: Arrow (the magic scanner ;-) Date: 25 Dec 2005 13:32:25 -0800 Message-ID: <1135546345.793358.290580@g14g2000cwa.googlegroups.com> Merry Christmas to all. As a christmas gift I have Arrow's code ;-) It was seen the most time in high position on the 94nop before it perished. It's basically a blur-scanner with zoom trick, but with some nice snippets. It counts the hits and not the scanned locations before it switches to d-clear. This gives a more freely choice of the scan step and the starting position of the scan. Arrow uses a quite small backward scanning step size, which turned out far the best. Because after switching to d-clear the already spl-wiped locations will be dat-wiped at latest. This is of advantage if fighting papers, because while the paper is dat-cleared the number of processes in the spl-wiped parts will faster increase slowing down the paper much faster. As in other of my scanner I also added a qscan which gives me after optimization of the bootstep some few extra points. ;redcode-94nop ;name Arrow ;author Christian Schmidt ;strategy scanner ;assert 1 ;optimax cds sStep equ 7982 sHit equ 20 sTrain equ 573 cGate equ (sHead-2) pBoot equ 4414 zero equ qbomb qtab3 equ qbomb qbomb dat >qoff , >qc2 dat 0 , 0 bPtr dat cBmb+2 , 1800 sWip mov *sAdd, >sHead sAdd add.f step, sScan sScan sne }2*sStep+8, 2*sStep sFlag djn.f sAdd, cGate djn.f cLoo, >cGate cBmb dat <2667, 2-cGate for 35 dat 0 , 0 rof qc2 equ ((1+(qtab3-qptr)*qy)%CORESIZE) qb1 equ ((1+(qtab2-1-qptr)*qy)%CORESIZE) qb2 equ ((1+(qtab2-qptr)*qy)%CORESIZE) qb3 equ ((1+(qtab2+1-qptr)*qy)%CORESIZE) qa1 equ ((1+(qtab1-1-qptr)*qy)%CORESIZE) qa2 equ ((1+(qtab1-qptr)*qy)%CORESIZE) qz equ 2108 qy equ 243 ;qy*(qz-1)=1 ;q0 mutation qgo sne qptr+qz*qc2 , qptr+qz*qc2+qb2 seq qptr , qptr+qz+(qb2-1) jmp q2 , Fight fire with fire ;) IMHO, brainwasher will not be that effective against PIN. But Qscan will be a an option. Finally, I would really like to see Fizmo sending his (improved) Artabmoc to the hill again ! Combatra-type of warrior may be the effective PIN killer. From: sayembara@gmail.com Subject: Re: Speedscanner Date: 25 Dec 2005 15:14:49 -0800 Message-ID: <1135552489.726108.243680@g43g2000cwa.googlegroups.com> Great! zooming to the X factor. A new year challenge on X hill would be much anticipated. From: "Waknuk" Subject: Re: Paper Experiments Part 1 Date: 25 Dec 2005 21:33:32 -0800 Message-ID: <1135575212.645811.227320@g47g2000cwa.googlegroups.com> Nenad Tomasev wrote: > I don't see why: > > spl 2 > spl 1 > spl 1 > > would be any weaker than > > spl 1 > mov.i -1, #0 > spl 1 > > it can only be the opposite, because the first three-line segment is > executed one time unit faster. but that won't change the score much, > anyway. > I assume Paul posted this _because_ his results were counter-intuitive. Some speculation on my part as to how/why this can be. Firstly, it could be a freak result due to a small number of rounds and a lucky scan or indirection but Paul is wise to such issues (and there's a suggestion he's using optimax - which has a large test set). One difference is that the all-SPL version is unaltered during execution, so a lucky process landing on the first instruction would re-execute the launch - it may be that the following code is still viable after first use. Perhaps there is a seq-scanner effect for this warrior such that the second form serves to "hide" an instruction pair. Another, weak, suggestion is that in both cases lucky processes landing on the first instruction would be on a short SPL carpet which may be enough to occassionally keep them alive against non-clearing opposition. In this case the 2/1/1/ version may be more susceptible to breakage from decrements or increments. Likewise weak, an enemy indirection (bomb or SPL) through the all-SPL version is more likely to directed towards the body of the main warrior maybe resulting in one or two catches at start-up. A thought for both forms is to make the second line invisible to f-scanners. e.g. spl {0 & mov {0, #0 Moving on ... I'm following inversed's paper investigations with interest and the cooperative warriors posts. I stopped using the SAL LP hill when I found The King was supported by 5 warriors. They don't seem to have hindered you from becoming KOTH with D-Knight though. Nice. Philb From: KOTH Subject: KOTH.ORG: Status - Standard 12/26/05 Date: Mon, 26 Dec 2005 00:18:12 -0500 (EST) Message-ID: <200512260500.jBQ500un021951@asgard.t-b-o-h.net> Weekly Status on 12/26/05 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG Standard KotH CoreWar Hill : Last battle concluded at : Mon Dec 19 09:16:20 EST 2005 # %W/ %L/ %T Name Author Score Age 1 35/ 22/ 43 Test Alexander (Sasha) Wa 147 174 2 40/ 37/ 23 My 1st try Christian Schmidt 143 66 3 35/ 28/ 37 The Next Step '88 David Houston 142 50 4 32/ 23/ 45 The Hurricaner G.Labarga 140 21 5 40/ 40/ 20 July Nenad Tomasev 139 7 6 31/ 23/ 46 Guardian Ian Oversby 139 234 7 42/ 47/ 11 Scan Test C 6 Steve Gunnell 138 73 8 40/ 41/ 19 Scan the Can Christian Schmidt 138 15 9 30/ 22/ 48 test G.Labarga 138 17 10 39/ 40/ 21 Moonwipe Christian Schmidt 138 31 11 42/ 49/ 9 Replihater Some Redcoder 135 5 12 25/ 14/ 61 Utterer '88 Christian Schmidt 135 9 13 32/ 30/ 37 The Seed Roy van Rijn 135 52 14 41/ 47/ 12 Speeed 88mph Christian Schmidt 135 34 15 38/ 42/ 20 trick shot John Metcalf 135 11 16 31/ 29/ 40 A.I.P. Christian Schmidt 132 42 17 21/ 12/ 67 IMParable G.Labarga 129 22 18 26/ 23/ 52 Scopulos pluviae G.Labarga 128 1 19 28/ 29/ 43 SoundOfDarkness Nenad Tomasev 127 2 20 29/ 35/ 36 Something Simple Some Redcoder 123 4 21 7/ 41/ 53 test Jens Gutzeit 72 0 From: KOTH Subject: KOTH.ORG: Status - MultiWarrior 94 12/26/05 Date: Mon, 26 Dec 2005 00:18:11 -0500 (EST) Message-ID: <200512260503.jBQ5301Q022079@asgard.t-b-o-h.net> Weekly Status on 12/26/05 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG Multiwarrior 94 CoreWar Hill: Last battle concluded at : Sat Dec 24 14:45:34 EST 2005 # Name Author Score Age 1 nameless fragment S.Fernandes 35 20 2 Diptera Nenad Tomasev 28 35 3 Urgle Daniel Rivas 27 1 4 the price of hostility John Metcalf 27 8 5 JustADirtyClearTest Nenad Tomasev 25 50 6 kingdom of the grasshoppe simon wainwright 24 116 7 Gungnir John Metcalf 23 3 8 Fluffy Paper VI Jens Gutzeit 21 21 9 FearIsTheName Nenad Tomasev 18 4 10 Simon Gruber datagram 15 16 11 Harmless Fluffy Gremlin Jens Gutzeit 1 0 From: KOTH Subject: KOTH.ORG: Status - ICWS Experimental 94 12/26/05 Date: Mon, 26 Dec 2005 00:18:09 -0500 (EST) Message-ID: <200512260506.jBQ560Q0022339@asgard.t-b-o-h.net> Weekly Status on 12/26/05 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG ICWS Experimental 94 CoreWar Hill: Last battle concluded at : Wed Dec 21 14:36:47 EST 2005 # %W/ %L/ %T Name Author Score Age 1 45/ 36/ 19 Fatamorgana X Zul Nadzri 154 10 2 43/ 37/ 20 The X Machine Zul Nadzri 149 34 3 43/ 38/ 19 Ogre Christian Schmidt 147 171 4 35/ 23/ 42 xd100 test David Houston 146 20 5 42/ 40/ 18 Eliminator X Zul Nadzri 144 35 6 26/ 12/ 62 Evol Cap 4 X John Wilkinson 140 292 7 33/ 26/ 41 KAT v5 Dave Hillis 139 155 8 33/ 28/ 38 Glenstorm John Metcalf 139 85 9 39/ 40/ 20 Bewitching S.Fernandes 138 1 10 40/ 42/ 17 Black Moods Ian Oversby 138 219 11 37/ 38/ 24 Trefoil F 13 Steve Gunnell 136 106 12 40/ 44/ 16 Giant Hazy Test 13 Steve Gunnell 135 50 13 37/ 40/ 23 Trefoil Test F 14 Steve Gunnell 135 7 14 33/ 31/ 36 Olivia X Ben Ford 135 104 15 38/ 42/ 20 Simply Intelligent Zul Nadzri 134 16 16 20/ 6/ 74 Evolve X v4.0 John Wilkinson 134 240 17 36/ 38/ 26 test Some Redcoder 133 4 18 37/ 42/ 21 Controlled Aggression Ian Oversby 133 223 19 39/ 46/ 16 O_Fortuna3X Nenad Tomasev 132 6 20 39/ 47/ 14 Fatal Choice Some Redcoder 131 5 21 30/ 58/ 12 icy waters John Metcalf 103 0 From: KOTH Subject: KOTH.ORG: Status - 94 No Pspace 12/26/05 Date: Mon, 26 Dec 2005 00:38:30 -0500 (EST) Message-ID: <200512260509.jBQ590HU022456@asgard.t-b-o-h.net> Weekly Status on 12/26/05 -=- irc.KOTH.org is up! Meetings held in #corewars -=- Tons of new features on www.KOTH.org/koth.html pages -=- *FAQ* page located at: www.KOTH.org/corewar-faq.html Current Status of the KOTH.ORG 94 No Pspace CoreWar Hill: Last battle concluded at : Sun Dec 25 21:53:35 EST 2005 # %W/ %L/ %T Name Author Score Age 1 48/ 43/ 9 speed of light Christian Schmidt 154 51 2 41/ 44/ 14 Substratum Roy/Jorinda 138 14 3 28/ 22/ 49 Mandragora Christian Schmidt 135 96 4 39/ 47/ 14 Grendel S.Fernandes 132 66 5 38/ 45/ 17 vamps are back 0.2 elkauka 132 187 6 37/ 42/ 21 anything for a rich girl John Metcalf 131 88 7 36/ 42/ 22 Shot to Nothing Christian Schmidt 131 300 8 28/ 25/ 47 CrashAndBurn Nenad Tomasev 131 102 9 22/ 13/ 65 2by4k P.Kline 130 3 10 23/ 16/ 61 Rust [v0.2] inversed 130 48 11 25/ 20/ 55 Last Judgement Christian Schmidt 129 125 12 28/ 27/ 45 HullabaTwo Roy 129 270 13 27/ 27/ 46 Eccentric Roy van Rijn 126 216 14 26/ 26/ 48 Gods Of Destiny Nenad Tomasev 126 69 15 25/ 25/ 50 DanceOfFallenAngels Nenad Tomasev 126 54 16 22/ 20/ 58 Supernova 94nop Remix Sascha Zapf 125 49 17 21/ 18/ 61 Lucky_Misfortune Nenad Tomasev 125 63 18 23/ 22/ 55 Harmless Fluffy Bunny Jens Gutzeit 124 202 19 22/ 20/ 58 papt1 Christian Schmidt 124 1 20 24/ 26/ 50 Yikes! Christian Schmidt 123 95 21 8/ 21/ 71 cc test john morahan 95 0 From: amandachesley@gmail.com Subject: Re: cooperative warriors return Date: 26 Dec 2005 02:12:30 -0800 Message-ID: <1135591950.869138.182720@f14g2000cwb.googlegroups.com> Yes, I agree that it would make hill challenges sparser, unless warriors are automatically submitted to each hill that they are compatable with. (Like Koenigstuhl. Ex. warrior A challenges 94-nop, is also sent to standard. warrior B is submitted to 94-no-pin, is also sent to 94 standard.) I'm still working on recovering that anti handshake strategy that i discovered. It's on my old pentium 133 rig that i evolved it on. Once i get it up and running again i'll submit that warrior here. The strategy doesn't always defeat a handshake. Half the time it will cause the other warrior to lose every round, other times it gets mostly losses. I suppose that coupling this warrior with a pspace routine that switches between more powerful warriors if the handshake hasn't been defeated might be worth a try. Ok, now i'm motivated, i'm going to try to bring my old machine back to life once i send this. From: sayembara@gmail.com Subject: Re: Paper Experiments Part 1 Date: 26 Dec 2005 02:13:00 -0800 Message-ID: <1135591980.841282.184410@f14g2000cwb.googlegroups.com> Interesting, may be the mov -1, 1 instruction does have some impact in preventing copycats. Do not avoid any hill because of someone else's entries. I have tried my best with my series of 'democracy' warriors to topple the King until I think I have sent enough (to my personal limit, not too many) that other author's entries will cause some dramatic changes. Of course the King will strikes back soon and this adds some dynamic to this almost frozen hill. Now I have to think how to attack the 94hill, taking advantage of the huge decoy :) From: amandachesley@gmail.com Subject: Re: cooperative warriors return Date: 26 Dec 2005 02:24:55 -0800 Message-ID: <1135592694.964716.86850@z14g2000cwz.googlegroups.com> An anti-pin warrior should be relatively easy to build, in fact, people, here is the PIN code for all of my handshaking warriors: 1123. I'm curious how long it will take until some warriors start scoring 300 against my warriors now... As a side note, combatra doesn't score noticeably better against my handshakes. Does anybody know of a handshake that doesn't roughly follow the form of the one that was featured in CoreWarrior? Just an idea, defeating the handshake can be done by tampering with the last few lines of the handshake code. A non-destructive scanning routine that finds and corrupts the handshake code in the proper way might be worth running for the first rounds. From: "bescritt@gmail.com" Subject: Re: cooperative warriors return Date: 26 Dec 2005 02:52:41 -0800 Message-ID: <1135594356.837033.34230@g49g2000cwa.googlegroups.com> OK, lol, i hadn't noticed that my mom had signed into her google account before i posted those messages. anything that i accidently send from amandachesley@gmail.com is me. i got my pentium running again, but i still don't have the warrior. Additionally i can't find the floppy that i have all of my redcode and assembly programs archived on. :( So i have to either clean my room, or evolve a similar strategy. If any of you have some extra processor time, i'd like some help. The way i first discovered the warrior was to run species against a handshaker, as both the opponent and the benchmark. If warriors appear that occasionally benchmark with scores of 300, then we've found the strategy. If you put, in your startup folder, a shortcut to a batch file that runs this code: start /low /min /separate species.exe then the evolver will only use leftover processor time. From: "Neogryzor" Subject: Re: Paper Experiments Part 1 Date: 26 Dec 2005 04:29:32 -0800 Message-ID: <1135600172.228377.49430@g43g2000cwa.googlegroups.com> sayembara@gmail.com ha escrito: > Interesting, may be the mov -1, 1 instruction does have some impact in > preventing copycats. > > Do not avoid any hill because of someone else's entries. I have tried > my best with my series of 'democracy' warriors to topple the King until > I think I have sent enough (to my personal limit, not too many) that > other author's entries will cause some dramatic changes. Of course the > King will strikes back soon and this adds some dynamic to this almost > frozen hill. > > Now I have to think how to attack the 94hill, taking advantage of the > huge decoy :) I think that every trick has its weaknesses. The bigger code and slower startup of a handshaker makes it more vulnerable to Qscans. Also, slave warriors get lower scores and they are easier to push off, so after some time, The King loses support and starts to fall down, as actually happens. Also, LP's The King uses obsolete components and it is becoming more and more difficult to mantain it on top. Actually, 3 warriors are supporting The King, my two others are acting on their own and i don't have anything ready for that hill. Don't hesitate to try the LP. Kill the slaves and The King will drop very fast. The King requires a heir, and i need some motivation to create one. Neogryzor From: "Jens Gutzeit" Subject: Re: Harmless Fluffy Bunny Date: 26 Dec 2005 05:07:47 -0800 Message-ID: <1135602467.158445.146200@o13g2000cwo.googlegroups.com> Indeed, HFB really loves stone/imps (especially a-imps). I've known that from the start, but unfortunately nobody volunteered to send new stone/imps ;-) So it ran out of food after a while. But I was very pleased to see HFB at the top a while. I've already written, that it scores quite similar to nPaper II. It doesn't seem to matter, that nPaper II ends with a djn. The extra silk of HFB probably makes up for that. Altough nobody really seems to have noticed I've tried to adjust the constants of HFB's qscan according to the results of my Qscan- tutorial. Everybody should do that in order to get better results :-) Against fsh94nop-0.2 HFB scores as follows: cds: 159.27 (W 46.07, T 21.05, L 32.88) clr: 138.11 (W 35.44, T 31.79, L 32.77) pap: 117.90 (W 15.83, T 70.42, L 13.75) pwi: 118.64 (W 14.40, T 75.45, L 10.15) pws: 132.22 (W 22.29, T 65.34, L 12.37) sai: 196.76 (W 55.50, T 30.28, L 14.22) sbi: 118.86 (W 17.39, T 66.67, L 15.93) scn: 139.11 (W 40.37, T 18.01, L 41.63) stn: 172.61 (W 48.32, T 27.65, L 24.03) avg: 143.72 (W 32.84, T 45.18, L 21.97) So the greatest enemy of HFB are papers, which was quite surprisingly for me. - Jens Gutzeit From: "Jens Gutzeit" Subject: Re: Paper Experiments Part 1 Date: 26 Dec 2005 05:23:41 -0800 Message-ID: <1135603420.998365.204250@o13g2000cwo.googlegroups.com> Hi inversed, thank you very much for part I. Now I understand HFB a little bit more, altough not completely :-) I hope to see part II soon on r.g.c. In any case you have given me some good hints for developing a successor to HFB :-) - Jens Gutzeit From: "fizmo" Subject: 94nop warrior: Bite the Bullet Date: 26 Dec 2005 07:55:17 -0800 Message-ID: <1135612517.427673.105920@g47g2000cwa.googlegroups.com> Hi all, here is a stone/imp I've written two years ago. After I found it in an old directory I re-optimized it and send it onto the 94nop hill. It was quite successful for a while. Nevertheless I can't remember from which source I used the uncommon stone. It scores a bit different to other stone/imps ;-) ;redcode-94nop ;name Bite the Bullet ;author Christian Schmidt ;strategy q^4.5, stone/imp ;strategy it uses a quite strange stone ;assert 1 ;------------ Qscan Constant --------------- zero equ qbomb qtab3 equ qbomb qz equ 2108 qy equ 243 qc2 equ ((1 + (qtab3-qptr)*qy) % CORESIZE) qb1 equ ((1 + (qtab2-1-qptr)*qy) % CORESIZE) qb2 equ ((1 + (qtab2-qptr)*qy) % CORESIZE) qb3 equ ((1 + (qtab2+1-qptr)*qy) % CORESIZE) qa1 equ ((1 + (qtab1-1-qptr)*qy) % CORESIZE) qa2 equ ((1 + (qtab1-qptr)*qy) % CORESIZE) qoff equ -88 qstep equ -7 qtime equ 20 ;-------Constants for optimization---------- boot equ zero+7060 ; boot distance bdista equ 7 ; distance to anti-imp bomb bdistb equ 10 ; distance to standard bomb ldist equ 7876 ; distance to imp launcher idist equ 4897 ; distance to imp istep equ 1143 hop equ 13 step equ 119 time equ 1478 ;------------------------------------------- dat 0, 0 qbomb dat >qoff, >qc2 ;------ 45 instructions -------------------- pGo mov bomba, boot+bdista mov bombb, boot+bdistb mov imp, boot+idist spl 2 spl 1 spl 1 mov hit-(hop+time*step) hit mov stone+bdistb, @loop add #step, @hit djn.f loop, <-1150 for 6 dat 0 , 0 rof ;------------------------------------------- dat 0, qptr, qptr+qz+(qb2-1) jmp q2, Huh! Luckily I read further before scratching my head and wondering who on earth is amandaches...@gmail.com !! To beat handshakers, you have to break about 7 digits 'password': 4 numbers for the PIN and another 3 numbers for the space location. This is unpractical for corewar cycle duration unless the author uses short cuts (sloppy) to speed up the identification. I did something like that but I consider minimal risk because communicates only suring self fight. I look forward for you, or your mom's, submission on the anti handshake strategy. If it exists, it's truely thinking way outside the box for me. You may proceed to manipulate my warriors on 94hill, X and LP. BTW, handshaking -> did I hear cooperative warriors or self-identify warrior? From: "Waknuk" Subject: Re: Paper Experiments Part 1 Date: 26 Dec 2005 09:21:48 -0800 Message-ID: <1135617708.035749.3950@g44g2000cwa.googlegroups.com> sayemb...@gmail.com ha escrito: > Don't hesitate to try the LP. Kill the slaves and The King will drop > very fast. It's an interesting challenge but requires more time (than writing a single warrior). From: roy.van.rijn@gmail.com Subject: Re: Harmless Fluffy Bunny Date: 26 Dec 2005 11:21:11 -0800 Message-ID: <1135624871.803855.184090@g14g2000cwa.googlegroups.com> Hey Jens, Thanks for posting the warrior, I always like the open-source idea. By describing warriors with a new trick/thing, or just the development process people can learn new stuff and get inspired. Because you encouraged us to play with the code I made the "Hairy Puffy Twins" It boots the paper twice, but the second time it uses the booted paper, got that from "Paper(Paper(Paper(Clear)))". The second change was optimising all constants (don't want to copy everything ofcourse), the third change was the mov.i X,>Y into mov.i X,}Y (scored a bit better). And finally I re-did the qscan a little bit (I use this one all the time now), just for my personal stuff. The new optimax score is 145 (the old one had 143) and its a bit better on the hill. Here is the complete code: ;redcode-94nop ;name Hairy Puffy Twins ;author Roy van Rijn ;assert 1 ;optimax 1234 ;optimax work test ;optimax rounds 1 100 100 300 ;optimax suite fsh94nop0.2 ;optimax phase2 fsh94nop0.2/pws/Metal.red ;optimax phase2 95% ;optimax phase3 top15 ;optimax phase3 clr:cds:stn ;optimax phase3 98% ;optimax phase4 top15 ;optimax phase4 100% bDist1 equ 1645 bDist2 equ 1258 zero equ qbomb qtab3 equ qbomb qbomb dat >qoff , >qc2 dat 0 , 0 pGo spl 1 , 1 pBoot2 jmp bDist2 , bDist2 for 8 dat 0 , 0 rof dat zero-1 , qa1 qtab1 dat zero-1 , qa2 for 5 dat 0 , 0 rof pap2 spl @8 , <7205 mov.i }-1 , >-1 spl @0 , <984 mov.i }-1 , >-1 spl @0 , <2001 mov.i }-1 , >-1 mov.i #7285 , {1 mov.i 256 , }1352 for 33 dat 0 , 0 rof qc2 equ ((1+(qtab3-qptr)*qy)%CORESIZE) qb1 equ ((1+(qtab2-1-qptr)*qy)%CORESIZE) qb2 equ ((1+(qtab2-qptr)*qy)%CORESIZE) qb3 equ ((1+(qtab2+1-qptr)*qy)%CORESIZE) qa1 equ ((1+(qtab1-1-qptr)*qy)%CORESIZE) qa2 equ ((1+(qtab1-qptr)*qy)%CORESIZE) qy equ 5931 qz equ 3972 ;q0 mutation qgo sne qptr+qz*qa1 , qptr+qz*qa1+qb2 seq <(qtab1-1) , qptr+qz*(qa1-1)+qb2 djn.a q0 , {q0 sne qptr+qz*qc2 , qptr+qz*qc2+qb2 seq qptr , qptr+qz+(qb2-1) jmp q2 , Subject: Re: Scanners on 94nop Date: 26 Dec 2005 12:57:37 -0800 Message-ID: <1135630657.850959.190990@g14g2000cwa.googlegroups.com> > Paul, it's nice to watch your entries on 94nop. I'm still curious about > your scanner too. And of course you a nice hill aging ;-) > Doing a bit of hill aging yourself now, thanks for putting up Hazy Lazy, 2by4k needed a boost :-) P. Kline From: "usenetposter@mac.com" Subject: Re: Harmless Fluffy Bunny Date: 26 Dec 2005 14:56:07 -0800 Message-ID: <1135637767.676856.308290@g49g2000cwa.googlegroups.com> You're hitting imps with this: mov.i #7285, {1 mov.i #7285, {1 mov.i #7285, {1 However, 7285 doesn't point to the next imp, so only the last bomb in the strip will work (if there's an imp immediately after it). Perhaps you can do better with this: mov.i #2667, {1 mov.i #2667, {1 ;points to next imp mov.i #2667, {1 ;points to next imp That might get you some extra points versus 3 point imps. From: roy.van.rijn@gmail.com Subject: Re: Harmless Fluffy Bunny Date: 27 Dec 2005 05:04:37 -0800 Message-ID: <1135688677.263714.142760@g44g2000cwa.googlegroups.com> I tried that too a while ago, and tested it just now, but it doesn't seem to be better, neither does having #1,{1... (against djn-streams). Maybe the imps are being hit like this: mov.i #7285,{1 mov.i #7285,{1 mov.i #7285,{1 mov.i #2667,1 ;becomes #2666 thus rendering it useless... (or something) dat 0,0 I don't know... From: "CoreChild" Subject: Re: 94nop warrior: Bite the Bullet Date: 27 Dec 2005 05:58:02 -0800 Message-ID: <1135691882.554376.95920@g14g2000cwa.googlegroups.com> This one maybe :-) http://www.ociw.edu/~birk/COREWAR/ODD/HILL/lodestone.red fizmo wrote: > here is a stone/imp I've written two years ago. After I found it in an > old directory I re-optimized it and send it onto the 94nop hill. It was > quite successful for a while. Nevertheless I can't remember from which > source I used the uncommon stone. It scores a bit different to other > stone/imps ;-) From: "fizmo" Subject: Re: 94nop warrior: Bite the Bullet Date: 28 Dec 2005 00:30:18 -0800 Message-ID: <1135758618.823941.200260@z14g2000cwz.googlegroups.com> Hey, yes. That looks pretty close, except that it didn't throw spl-bombs, but another dat-bomb. From: "usenetposter@mac.com" Subject: Re: Harmless Fluffy Bunny Date: 28 Dec 2005 08:37:58 -0800 Message-ID: <1135787878.474541.245050@o13g2000cwo.googlegroups.com> It's because the non-2667 version is distributed better when you hit your own processes with it. From: "usenetposter@mac.com" Subject: Re: Paper Experiments Part 1 Date: 28 Dec 2005 08:53:21 -0800 Message-ID: <1135788801.292669.72390@g43g2000cwa.googlegroups.com> The reason why the new approach (using spl 2) is sometimes worse is because the 6 processes don't execute all together. Instead of AAAAAA (everything else) BBBBBB (everything else) CCCCCC ... you get AA (everything else) AAAABB (everything else) BBBBCC ... pmars -e is your friend. From: amandachesley@gmail.com Subject: Re: cooperative warriors return Date: 28 Dec 2005 22:31:36 -0800 Message-ID: <1135837896.223205.134880@o13g2000cwo.googlegroups.com> Well, after only a few days of evolving, i've found it. I'm not sure if its the same one I had originally discovered, but it does occasionally kill a handshake 100%. The ability to kil handshakes seems to come from clearing backwards, subtracting 26 from the a fields. If i get around to it, i'll write a scanner that locates the handshake code, then attacks the end in the appropriate way. ;redcode-94 ;name s4-93128 ;author Blake Escritt ;email bescritt@gmail.com ;generation 219 ;strategy made with Species by Will Varfar ;strategy http://redcoder.sourceforge.net ;strategy This is an evolved warrior ;benchmark 300 CANDIDATE! ;father 1 ;info 1 6 11 ;assert (CORESIZE==8000) ORG START dat.a $ 703 , $ 0 sub.ba @ 0 , $ 327 spl.f } 0 , # -1 djn.x $ 1 , $ 1 mod.a < -2 , { 4 dat.x $ -1 , { 7 dat.x $ 3 , $ 6 ldp.i { 1179 , $ -4 dat.ba $ 1 , $-2064 dat.ba $ 1 , $ -1 dat.a < 17 , { 2 mov.i $ -9 , $ 5 dat.f $ 0 , $ -1 dat.f $ -56 , $ 0 mov.i $ -35 , $ 14 sub.f } -31 , } -1 START spl.x # -1 , < -1 add.a # -13 , { 37 dat.f $-3291 , $ 1902 dat.f $ 5 , $ -1 END > did I hear cooperative warriors or self-identify warrior? Well usually it means a self-identifying warrior, however I've modified the handshake from CoreWarrior so that it correctly self-identifies and cooperates at the same time. From: sayembara@gmail.com Subject: Re: cooperative warriors return Date: 29 Dec 2005 01:33:32 -0800 Message-ID: <1135848812.046102.43090@g43g2000cwa.googlegroups.com> LP hill is a good test ground. There are about 6-8 handshakers there including 3 from me. If there were handshakers that lose 100%, that probably won't be mine :) (7-digit-code handshake warriors) Message-ID: From: anton@paradise.net.nz (Anton Marsden) Subject: Core War Frequently Asked Questions (rec.games.corewar FAQ) Date: 29 Dec 2005 05:33:52 GMT Archive-name: games/corewar-faq Last-Modified: September 4, 1999 Version: 4.2 URL: http://homepages.paradise.net.nz/~anton/cw/corewar-faq.html Copyright: (c) 1999 Anton Marsden Maintainer: Anton Marsden Posting-Frequency: once every 2 weeks Core War Frequently Asked Questions (rec.games.corewar FAQ) These are the Frequently Asked Questions (and answers) from the Usenet newsgroup rec.games.corewar. A plain text version of this document is posted every two weeks. The latest hypertext version is available at http://homepages.paradise.net.nz/~anton/cw/corewar-faq.html and the latest plain text version is available at http://homepages.paradise.net.nz/~anton/cw/corewar-faq.txt. This document is currently being maintained by Anton Marsden (anton@paradise.net.nz). Last modified: Sat Sep 4 00:22:22 NZST 1999 ------------------------------------------------------------------------ To Do * Add the new No-PSpace '94 hill location * Add online location of Dewdney's articles * Make question 17 easier to understand. Add a state diagram? * Add info about infinite hills, related games (C-Robots, Tierra?, ...) * New question: How do I know if my warrior is any good? Refer to beginners' benchmarks, etc. * Add a Who's Who list? * Would very much like someone to compile a collection of the "revolutionary" warriors so that beginners can see how the game has developed over the years. Mail me if interested. ------------------------------------------------------------------------ What's New * Changed primary location of FAQ (again!) * Changed Philip Kendall's home page address. * Updated list server information * Changed primary location of FAQ * Vector-launching code was fixed thanks to Ting Hsu. * Changed the location of Ryan Coleman's paper (LaunchPad -> Launchpad) * Changed pauillac.inria.fr to para.inria.fr ------------------------------------------------------------------------ Table of Contents 1. What is Core War 2. Is it "Core War" or "Core Wars"? 3. Where can I find more information about Core War? 4. Core War has changed since Dewdney's articles. Where do I get a copy of the current instruction set? 5. What is ICWS'94? Which simulators support ICWS'94? 6. What is the ICWS? 7. What is Core Warrior? 8. Where are the Core War archives? 9. Where can I find a Core War system for ...? 10. Where can I find warrior code? 11. I do not have FTP. How do I get all this great stuff? 12. I do not have access to Usenet. How do I post and receive news? 13. Are there any Core War related WWW sites? 14. What is KotH? How do I enter? 15. Is it DAT 0, 0 or DAT #0, #0? How do I compare to core? 16. How does SLT (Skip if Less Than) work? 17. What is the difference between in-register and in-memory evaluation? 18. What is P-space? 19. What does "Missing ;assert .." in my message from KotH mean? 20. How should I format my code? 21. Are there any other Core War related resources I should know about? 22. What does (expression or term of your choice) mean? 23. Other questions? ------------------------------------------------------------------------ 1. What is Core War? Core War is a game played by two or more programs (and vicariously by their authors) written in an assembly language called Redcode and run in a virtual computer called MARS (for Memory Array Redcode Simulator). The object of the game is to cause all processes of the opposing program to terminate, leaving your program in sole posession of the machine. There are Core War systems available for most computer platforms. Redcode has been standardised by the ICWS, and is therefore transportable between all standard Core War systems. The system in which the programs run is quite simple. The core (the memory of the simulated computer) is a continuous array of instructions, empty except for the competing programs. The core wraps around, so that after the last instruction comes the first one again. There are no absolute addresses in Core War. That is, the address 0 doesn't mean the first instruction in the memory, but the instruction that contains the address 0. The next instruction is 1, and the previous one obviously -1. However, all numbers are treated as positive, and are in the range 0 to CORESIZE-1 where CORESIZE is the amount of memory locations in the core - this means that -1 would be treated as CORESIZE-1 in any arithmetic operations, eg. 3218 + 7856 = (3218 + 7856) mod CORESIZE. Many people get confused by this, and it is particularly important when using the SLT instruction. Note that the source code of a program can still contain negative numbers, but if you start using instructions like DIV #-2, #5 it is important to know what effect they will have when executed. The basic unit of memory in Core War is one instruction. Each Redcode instruction contains three parts: * the opcode * the source address (a.k.a. the A-field) * the destination address (a.k.a. the B-field) The execution of the programs is equally simple. The MARS executes one instruction at a time, and then proceeds to the next one in the memory, unless the instruction explicitly tells it to jump to another address. If there is more than one program running, (as is usual) the programs execute alternately, one instruction at a time. The execution of each instruction takes the same time, one cycle, whether it is MOV, DIV or even DAT (which kills the process). Each program may have several processes running. These processes are stored in a task queue. When it is the program's turn to execute an instruction it dequeues a process and executes the corresponding instruction. Processes that are not killed during the execution of the instruction are put back into the task queue. Processes created by a SPL instruction are added to the task queue after the creating process is put back into the task queue. [ToC] ------------------------------------------------------------------------ 2. Is it "Core War" or "Core Wars"? Both terms are used. Early references were to Core War. Later references seem to use Core Wars. I prefer "Core War" to refer to the game in general, "core wars" to refer to more than one specific battle. [ToC] ------------------------------------------------------------------------ 3. Where can I find more information about Core War? Core War was first described in the Core War Guidelines of March, 1984 by D. G. Jones and A. K. Dewdney of the Department of Computer Science at The University of Western Ontario (Canada). Dewdney wrote several "Computer Recreations" articles in Scientific American which discussed Core War, starting with the May 1984 article. Those articles are contained in two anthologies: Library of Author Title Published ISBN Congress Call Number The Armchair Dewdney, Universe: An New York: W. QA76.6 .D517 A. K. Exploration of H. Freeman �0-7167-1939-8 1988 Computer Worlds 1988 The Magic 0-7167-2125-2 Dewdney, Machine: A New York: W.(Hardcover), QA76.6 A. K. Handbook of H. Freeman �0-7167-2144-9 .D5173 1990 Computer Sorcery 1990 (Paperback) A.K. Dewdney's articles are still the most readable introduction to Core War, even though the Redcode dialect described in there is no longer current. For those who are interested, Dewdney has a home page at http://www.csd.uwo.ca/faculty/akd/. [ToC] ------------------------------------------------------------------------ 4. Core War has changed since Dewdney's articles. Where do I get a copy of the current instruction set? A draft of the official standard (ICWS'88) is available as ftp://www.koth.org/corewar/documents/standards/redcode-icws-88.Z. This document is formatted awkwardly and contains ambiguous statements. For a more approachable intro to Redcode, take a look at Mark Durham's tutorials, ftp://www.koth.org/corewar/documents/tutorial.1.Z and ftp://www.koth.org/corewar/documents/tutorial.2.Z. Steven Morrell has prepared a more practically oriented Redcode tutorial that discusses different warrior classes with lots of example code. This and various other tutorials can be found at http://www.koth.org/papers.html. Even though ICWS'88 is still the "official" standard, you will find that most people are playing by ICWS'94 draft rules and extensions. [ToC] ------------------------------------------------------------------------ 5. What is ICWS'94? Which simulators support ICWS'94? There is an ongoing discussion about future enhancements to the Redcode language. A proposed new standard, dubbed ICWS'94, is currently being evaluated. A major change is the addition of "instruction modifiers" that allow instructions to modify A-field, B-field or both. Also new is a new addressing modes and unrestricted opcode and addressing mode combination ("no illegal instructions"). ICWS'94 is backwards compatible; i.e. ICWS'88 warriors will run correctly on an ICWS'94 system. Take a look at the ICWS'94 draft at ftp://www.koth.org/corewar/documents/icws94.0202.Z for more information. There is a HTML version of this document available at http://www.koth.org/info/icws94.html. You can try out the new standard by submitting warriors to the '94 hills of the KotH servers. Two corewar systems currently support ICWS'94, pMARS (many platforms) and Redcoder (Mac), both available at ftp://www.koth.org/corewar. Note that Redcoder only supports a subset of ICWS'94. [ToC] ------------------------------------------------------------------------ 6. What is the ICWS? About one year after Core War first appeared in Scientific American, the "International Core War Society" (ICWS) was established. Since that time, the ICWS has been responsible for the creation and maintenance of Core War standards and the running of Core War tournaments. There have been six annual tournaments and two standards (ICWS'86 and ICWS'88). The ICWS is no longer active. [ToC] ------------------------------------------------------------------------ 7. What is Core Warrior? Following in the tradition of the Core War News Letter, Push Off, and The 94 Warrior, Core Warrior is a newsletter about strategies and current standings in Core War. Started in October 1995, back issues of Core Warrior (and the other newsletters) are available at http://para.inria.fr/~doligez/corewar/. There is also a Core Warrior index page at http://www.kendalls.demon.co.uk/pak21/corewar/warrior.html which has a summary of the contents of each issue of Core Warrior. Many of the earlier issues contain useful information for beginners. [ToC] ------------------------------------------------------------------------ 8. Where are the Core War archives? Many documents such as the guidelines and the ICWS standards along with previous tournament Redcode entries and complete Core War systems are available via anonymous ftp from ftp://ftp.csua.berkeley.edu/pub/corewar. Also, most of past rec.games.corewar postings (including Redcode source listings) are archived there. Jon Blow (blojo@csua.berkeley.edu) is the archive administrator. When uploading to /pub/corewar/incoming, ask Jon to move your upload to the appropriate directory and announce it on the net. This site is mirrored at: * http://www.koth.org/corewar/ * ftp://www.koth.org/corewar/ * ftp://ftp.inria.fr/INRIA/Projects/para/doligez/cw/mirror The plain text version of this FAQ is automatically archived by news.answers (but this version is probably out-of-date). [ToC] ------------------------------------------------------------------------ 9. Where can I find a Core War system for . . . ? Core War systems are available via anonymous FTP from www.koth.org in the corewar/systems directory. Currently, there are UNIX, IBM PC-compatible, Macintosh, and Amiga Core War systems available there. It is a good idea to check ftp://www.koth.org/corewar/incoming for program updates first. CAUTION! There are many, many Core War systems available which are NOT ICWS'88 (or even ICWS'86) compatible available at various archive sites other than www.koth.org. Generally, the older the program - the less likely it will be ICWS compatible. If you are looking for an ICWS'94 simulator, get pMARS, which is available for many platforms and can be downloaded from: * ftp://ftp.csua.berkeley.edu/pub/corewar (original site) * ftp://www.koth.org/corewar (koth.org mirror) * ftp://ftp.inria.fr/INRIA/Projects/para/doligez/cw/mirror (Planar mirror) * http://www.nc5.infi.net/~wtnewton/corewar/ (Terry Newton) * ftp://members.aol.com/ofechner/corewar (Fechter) Notes: * If you have trouble running pMARS with a graphical display under Win95 then check out http://www.koth.org/pmars.html which should have a pointer to the latest compilation of pMARS for this environment. * RPMs for the Alpha, PowerPC, Sparc and i386 can be found at ftp://ftp.inria.fr/INRIA/Projects/para/doligez/cw/pmars-rpm/ Reviews of Core War systems would be greatly appreciated in the newsgroup and in the newsletter. Below is a not necessarily complete or up-to-date list of what's available at www.koth.org: MADgic41.lzh corewar for the Amiga, v4.1 MAD4041.lzh older version? MAD50B.lha corewar for the Amiga, beta version 5.0 Redcoder-21.hqx corewar for the Mac, supports ICWS'88 and '94 (without extensions) core-11.hqx corewar for the Mac core-wars-simulator.hqx same as core-11.hqx? corewar_unix_x11.tar.Z corewar for UNIX/X-windows, ICWS'86 but not ICWS'88 compatible koth31.tar.Z corewar for UNIX/X-windows. This program ran the former KotH server at intel.com koth.shar.Z older version kothpc.zip port of older version of KotH to the PC deluxe20c.tar.Z corewar for UNIX (broken X-windows or curses) and PC mars.tar.Z corewar for UNIX, likely not ICWS'88 compatible icons.zip corewar icons for MS-Windows macrored.zip a redcode macro-preprocessor (PC) c88v49.zip PC corewar, textmode display mars88.zip PC corewar, graphics mode display corwp302.zip PC corewar, textmode display, slowish mercury2.zip PC corewar written in assembly, fast! mtourn11.zip tournament scheduler for mercury (req. 4DOS) pmars08s.zip portable system, ICWS'88 and '94, runs on UNIX, PC, Mac, Amiga. C source archive pmars08s.tar.Z same as above pmars08.zip PC executables with graphics display, req 386+ macpmars02.sit.hqx pMARS executable for Mac (port of version 0.2) buggy, no display MacpMARS1.99a.cpt.hqx port of v0.8 for the Mac, with display and debugger MacpMARS1.0s.cpt.hqx C source (MPW, ThinkC) for Mac frontend pvms08.zip pMARS v0.8 for VMS build files/help (req. pmars08s.zip) ApMARS03.lha pMARS executable for Amiga (port of version 0.3.1) wincor11.zip MS-Windows system, shareware ($15) [ToC] ------------------------------------------------------------------------ 10. Where can I find warrior code? To learn the game, it is a good idea to study previously posted warrior code. The FTP archives have code in the ftp://www.koth.org/corewar/redcode directory. A clearly organized on-line warrior collection is available at the Core War web sites (see below). [ToC] ------------------------------------------------------------------------ 11. I do not have FTP. How do I get all this great stuff? There is an FTP email server at bitftp@pucc.princeton.edu. This address may no longer exist. I haven't tested it yet. Send email with a subject and body text of "help" (without the quotes) for more information on its usage. Note that many FTP email gateways are shutting down due to abuse. To get a current list of FTP email servers, look at the Accessing the Internet by E-mail FAQ posted to news.answers. If you don't have access to Usenet, you can retrieve this FAQ one of the following ways: * Send mail to mail-server@rtfm.mit.edu with the body containing "send usenet/news.answers/internet-services/access-via-email". * Send mail to mailbase@mailbase.ac.uk with the body containing "send lis-iis e-access-inet.txt". [ToC] ------------------------------------------------------------------------ 12. I do not have access to Usenet. How do I post and receive news? To receive rec.games.corewar articles by email, join the COREWAR-L list run on the Koth.Org list processor. To join, send the message SUB COREWAR-L FirstName LastName to listproc@koth.org. You can send mail to corewar-l@koth.org to post even if you are not a member of the list. Responsible for the listserver is Scott J. Ellentuch (ttsg@ttsg.com). Servers that allow you to post (but not receive) articles are available. Refer to the Accessing the Internet by E-Mail FAQ for more information. [ToC] ------------------------------------------------------------------------ 13. Are there any Core War related WWW sites? You bet. Each of the two KotH sites sport a world-wide web server. Stormking's Core War page is http://www.koth.org; pizza's is http://www.ecst.csuchico.edu/~pizza/koth . Damien Doligez (a.k.a. Planar) has a web page that features convenient access to regular newsletters (Push Off, The '94 Warrior, Core Warrior) and a well organized library of warriors: http://para.inria.fr/~doligez/corewar/. Convenient for U.S. users, this site is also mirrored at koth.org. [ToC] ------------------------------------------------------------------------ 14. What is KotH? How do I enter? King Of The Hill (KotH) is an ongoing Core War tournament available to anyone with email. You enter by submitting via email a Redcode program (warrior) with special comment lines. You will receive a reply indicating how well your program did against the current top programs "on the hill". There are two styles of KotH tournaments, "classical" and "multi-warrior". The "classical" KotH is a one-on-one tournament, that is your warrior will play 100 battles against each of the 20 other programs currently on the Hill. You receive 3 points for each win and 1 point for each tie. (The existing programs do not replay each other, but their previous battles are recalled.) All scores are updated to reflect your battles and all 21 programs are ranked from high to low. If you are number 21 you are pushed off the Hill, if you are higher than 21 someone else is pushed off. In "multi-warrior" KotH, all warriors on the hill fight each other at the same time. Score calculation is a bit more complex than for the one-on-one tournament. Briefly, points are awarded based on how many warriors survive until the end of a round. A warrior that survives by itself gets more points than a warrior that survives together with other warriors. Points are calculated from the formula (W*W-1)/S, where W is the total number of warriors and S the number of surviving warriors. The pMARS documentation has more information on multi-warrior scoring. The idea for an email-based Core War server came from David Lee. The original KotH was developed and run by William Shubert at Intel starting in 1991, and discontinued after almost three years of service. Currently, KotHs based on Bill's UNIX scripts but offering a wider variety of hills are are running at two sites: koth@koth.org is maintained by Scott J. Ellentuch (tuc@ttsg.com) and pizza@ecst.csuchico.edu by Thomas H. Davies (sd@ecst.csuchico.edu). Up until May '95, the two sites provided overlapping services, i.e. the some of the hill types were offered by both "pizza" and "stormking". To conserve resources, the different hill types are now divided up among the sites. The way you submit warriors to both KotHs is pretty much the same. Therefore, the entry rules described below apply to both "pizza" and "stormking" unless otherwise noted. Entry Rules for King of the Hill Corewar * Write a corewar program. KotH is fully ICWS '88 compatible, EXCEPT that a comma (",") is required between two arguments. * Put a line starting with ";redcode" (or ";redcode-94", etc., see below) at the top of your program. This MUST be the first line. Anything before it will be lost. If you wish to receive mail on every new entrant, use ";redcode verbose". Otherwise you will only receive mail if a challenger makes it onto the hill. Use ";redcode quiet" if you wish to receive mail only when you get shoved off the hill. Additionally, adding ";name " and ";author " will be helpful in the performance reports. Do NOT have a line beginning with ";address" in your code; this will confuse the mail daemon and you won't get mail back. Using ";name" is mandatory on the Pizza hills. In addition, it would be nice if you have lines beginning with ";strategy" that describe the algorithm you use. There are currently seven separate hills you can select by starting your program with ;redcode-94, ;redcode-b, ;redcode-lp, ;redcode-x, ;redcode, ;redcode-94x or ;redcode-94m. The former four run at "pizza", the latter three at "stormking". More information on these hills is listed below. * Mail this file to koth@koth.org or pizza@ecst.csuchico.edu. "Pizza" requires a subject of "koth" (use the -s flag on most mailers). * Within a few minutes you should get mail back telling you whether your program assembled correctly or not. If it did assemble correctly, sit back and wait; if not, make the change required and re-submit. * In an hour or so you should get more mail telling you how your program performed against the current top 20 (or 10) programs. If no news arrives during that time, don't worry; entries are put in a queue and run through the tournament one at a time. A backlog may develop. Be patient. If your program makes it onto the hill, you will get mail every time a new program makes it onto the hill. If this is too much mail, you can use ";redcode[-??] quiet" when you first mail in your program; then you will only get mail when you make it on the top 25 list or when you are knocked off. Using ";redcode[-??] verbose" will give you even more mail; here you get mail every time a new challenger arrives, even if they don't make it onto the top 25 list. Often programmers want to try out slight variations in their programs. If you already have a program named "foo V1.0" on the hill, adding the line ";kill foo" to a new program will automatically bump foo 1.0 off the hill. Just ";kill" will remove all of your programs when you submit the new one. The server kills programs by assigning an impossibly low score; it may therefore take another successful challenge before a killed program is actually removed from the hill. Sample Entry ;redcode ;name Dwarf ;author A. K. Dewdney ;strategy Throw DAT bombs around memory, hitting every 4th memory cell. ;strategy This program was presented in the first Corewar article. bomb DAT #0 dwarf ADD #4, bomb MOV bomb, @bomb JMP dwarf END dwarf ; Programs start at the first line unless ; an "END start" pseudo-op appears to indicate ; the first logical instruction. Also, nothing ; after the END instruction will be assembled. Duration Max. Hill Name Hill Core Max. Before Entry Min. Rounds Instr. Size Size Processes Distance Fought Set Tie Length Pizza's ICWS '94 Draft Hill Extended (Accessed with 25 8000 8000 80000 100 100 200 ICWS '94 ";redcode-94") Draft Pizza's Beginner's Extended Hill (Accessed 25 8000 8000 80000 100 100 200 ICWS '94 with ";redcode-b") Draft Pizza's Experimental Extended (Small) Hill 25 800 800 8000 20 20 200 ICWS '94 (Accessed with Draft ";redcode-x") Pizza's Limited Process (LP) Hill Extended (Accessed with 25 8000 8 80000 200 200 200 ICWS '94 ";redcode-lp") Draft Stormking's ICWS '88 Standard Hill (Accessed with 20 8000 8000 80000 100 100 250 ICWS '88 ";redcode") Stormking's ICWS '94 No Pspace Hill (Accessed with 20 8000 8000 80000 100 100 250 ICWS '94 ";redcode-94nop") Stormking's ICWS '94 Experimental Extended (Big) Hill 20 55440 55440 500000 200 200 250 ICWS '94 (Accessed with Draft ";redcode-94x") Stormking's ICWS '94 Multi-Warrior Extended Hill (Accessed 10 8000 8000 80000 100 100 200 ICWS '94 with Draft ";redcode-94m") Note: Warriors on the beginner's hill are retired at age 100. If you just want to get a status report without actually challenging the hills, send email with ";status" as the message body (and don't forget "Subject: koth" for "pizza"). If you send mail to "pizza" with "Subject: koth help" you will receive instructions that may be more up to date than those contained in this document. At "stormking", a message body with ";help" will return brief instructions. If you submit code containing a ";test" line, your warrior will be assembled but not actually pitted against the warriors on the hill. At "pizza", you can use ";redcode[-??] test" to do a test challenge of the Hill without affecting the status of the Hill. These challenges can be used to see how well your warrior does against the current Hill warriors. All hills run portable MARS (pMARS) version 0.8, a platform-independent Core War system available at www.koth.org. The '94 and '94x hills allow five experimental opcodes and three experimental addressing modes currently not covered in the ICWS'94 draft document: * LDP - Load P-Space * STP - Store P-Space * SEQ - Skip if EQual (synonym for CMP) * SNE - Skip if Not Equal * NOP - (No OPeration) * * - indirect using A-field as pointer * { - predecrement indirect using A-field * } - postincrement indirect using A-field [ToC] ------------------------------------------------------------------------ 15. Is it DAT 0, 0 or DAT #0, #0? How do I compare to core? Core is initialized to DAT 0, 0. This is an illegal instruction (in source code) under ICWS'88 rules and strictly compliant assemblers (such as KotH or pmars -8) will not let you have a DAT 0, 0 instruction in your source code - only DAT #0, #0. So this begs the question, how to compare something to see if it is empty core. The answer is, most likely the instruction before your first instruction and the instruction after your last instruction are both DAT 0, 0. You can use them, or any other likely unmodified instructions, for comparison. Note that under ICWS'94, DAT 0, 0 is a legal instruction. [ToC] ------------------------------------------------------------------------ 16. How does SLT (Skip if Less Than) work? SLT gives some people trouble because of the way modular arithmetic works. It is important to note that all negative numbers are converted to positive numbers before a battles begins. Example: -1 becomes M-1 where M is the memory size (core size). Once you realize that all numbers are treated as positive, it is clear what is meant by "less than". It should also be clear that no number is less than zero. [ToC] ------------------------------------------------------------------------ 17. What is the difference between in-register and in-memory evaluation? These terms refer to the way instruction operands are evaluated. The '88 Redcode standard ICWS'88 is unclear about whether a simulator should "buffer" the result of A-operand evaluation before the B-operand is evaluated. Simulators that do buffer are said to use in-register evaluation, those that don't, in-memory evaluation. ICWS'94 clears this confusion by mandating in-register evaluation. Instructions that execute differently under these two forms of evaluation are MOV, ADD, SUB, MUL, DIV and MOD where the effective address of the A-operand is modified by evaluation of the B-operand. This is best illustrated by an example: L1 mov L2, mov.i #0, impsize Bootstrapping Strategy of copying the active portion of the program away from the initial location, leaving a decoy behind and making the relocated program as small as possible. B-Scanners Scanners which only recognize non-zero B-fields. example add #10, scan scan jmz example, 10 c Measure of speed, equal to one location per cycle. Speed of light. CMP-Scanner A Scanner which uses a CMP instruction to look for opponents. example add step, scan scan cmp 10, 30 jmp attack jmp example step dat #20, #20 Colour Property of bombs making them visible to scanners, causing them to attack useless locations, thus slowing them down. example dat #100 Core-Clear Code that sequentially overwrites core with DAT instructions; usually the last part of a program. Decoys Bogus or unused instructions meant to slow down scanners. Typically, DATs with non-zero B-fields. Decrement Resistant Property of warriors making them functional (or at least partially functional) when overrun by a DJN-stream. DJN-Stream (also DJN-Train) Using a DJN command to rapidly decrement core locations. example ... ... djn example, <4000 Dwarf The prototypical small bomber. Gate-busting (also gate-crashing) technique to "interweave" a decrement-resistant imp-spiral (e.g. MOV 0, 2668) with a standard one to overrun imp-gates. Hybrids warriors that combine two or more of the basic strategies, either in sequence (e.g. stone->paper) or in parallel (e.g. imp/stone). Imp Program which only uses the MOV instruction. example mov 0, 1 or example mov 0, 2 mov 0, 2 Imp-Gate A location in core which is bombed or decremented continuously so that an Imp can not pass. Also used to describe the program-code which maintains the gate. example ... ... spl 0, mov.i #0,IMPSIZE Mirror see reflection. On-axis/off-axis On-axis scanners compare two locations M/2 apart, where M is the memory size. Off-axis scanners use some other separation. Optimal Constants (also optima-type constants) Bomb or scan increments chosen to cover core most effectively, i.e. leaving gaps of uniform size. Programs to calculate optimal constants and lists of optimal numbers are available at www.koth.org. Paper A Paper-like program is one which replicates itself many times. Part of the Scissors (beats) Paper (beats) Stone (beats Scissors) analogy. P-Warrior A warrior which uses the results of previous round(s) in order to determine which strategy it will use. Pit-Trapper (also Slaver, Vampire). A program which enslaves another. Usually accomplished by bombing with JMPs to a SPL 0 pit with an optional core-clear routine. Q^2 Scan A modern version of the Quick Scan where anything found is attacked almost immediately. Quick Scan 2c scan of a set group of core locations with bombing if anything is found. Both of the following codes snips scan 16 locations and check for a find. If anything is found, it is attacked, otherwise 16 more locations are scanned. Example: start s1 for 8 ;'88 scan cmp start+100*s1, start+100*s1+4000 ;check two locations mov #start+100*s1-found, found ;they differ so set pointer rof jmn attack, found ;if we have something, get it s2 for 8 cmp start+100*(s2+6), start+100*(s2+6)+4000 mov #start+100*(s2+6)-found, found rof found jmz moveme, #0 ;skip attack if qscan found nothing attack cmp @found, start-1 ;does found points to empty space? add #4000, found ;no, so point to correct location mov start-1, @found ;move a bomb moveme jmp 0, 0 In ICWS'94, the quick scan code is more compact because of the SNE opcode: start ;'94 scan s1 for 4 sne start+400*s1, start+400*s1+100 ;check two locations seq start+400*s1+200, start+400*s1+300 ;check two locations mov #start+400*s1-found, found ;they differ so set pointer rof jmn which, found ;if we have something, get it s2 for 4 sne start+400*(s2+4), start+400*(s2+4)+100 seq start+400*(s2+4)+200, start+400*(s2+4)+300 mov #start+400*(s2+4)-found-100, found rof found jmz moveme, #0 ;skip attack if qscan found nothing add #100, -1 ;increment pointer till we get the which jmn -1, @found ;right place mov start-1, @found ;move a bomb moveme jmp 0, 0 Reflection Copy of a program or program part, positioned to make the active program invisible to a CMP-scanner. Replicator Generic for Paper. A program which makes many copies of itself, each copy also making copies. Self-Splitting Strategy of amplifying the number of processes executing a piece of code. example spl 0 loop add #10, example mov example, @example jmp loop Scanner A program which searches through core for an opponent rather than bombing blindly. Scissors A program designed to beat replicators, usually a (B-field scanning) vampire. Part of the Paper-Scissors-Stone analogy. Self-Repair Ability of a program to fix it's own code after attack. Silk A replicator which splits off a process to each new copy before actually copying the code. This allows it to replicate extremely quickly. This technique is only possible under the '94 draft, because it requires post-increment indirect addressing. Example: spl 1 mov -1, 0 spl 1 ;generate 6 consecutive processes silk spl 3620, #0 ;split to new copy mov >-1, }-1 ;copy self to new location mov bomb, >2000 ;linear bombing mov bomb, }2042 ;A-indirect bombing for anti-vamp jmp silk, {silk ;reset source pointer, make new copy bomb dat >2667, >5334 ;anti-imp bomb Slaver see Pit-Trapper. Stealth Property of programs, or program parts, which are invisible to scanners, accomplished by using zero B-fields and reflections. Stone A Stone-like program designed to be a small bomber. Part of the Paper-Scissors-Stone analogy. Stun A type of bomb which makes the opponent multiply useless processes, thus slowing it down. Example is referred to as a SPL-JMP bomb. example spl 0 jmp -1 Two-Pass Core-Clear (also SPL/DAT Core-Clear) core clear that fills core first with SPL instructions, then with DATs. This is very effective in killing paper and certain imp-spiral variations. Vampire see Pit-Trapper. Vector Launch one of several means to start an imp-spiral running. As fast as Binary Launch, but requiring much less code. See also JMP/ADD Launch and Binary Launch. This example is one form of a Vector Launch: sz EQU 2667 spl 1 spl 1 jmp @vt, }0 vt dat #0, imp+0*sz ; start of vector table dat #0, imp+1*sz dat #0, imp+2*sz dat #0, imp+3*sz ; end of vector table imp mov.i #0, sz [ToC] ------------------------------------------------------------------------ 23. Other questions? Just ask in the rec.games.corewar newsgroup or contact me. If you are shy, check out the Core War archives first to see if your question has been answered before. [ToC] ------------------------------------------------------------------------ Credits Additions, corrections, etc. to this document are solicited. Thanks in particular to the following people who have contributed major portions of this document: * Mark Durham (wrote the original version of the FAQ) * Paul Kline * Randy Graham * Stefan Strack (maintained a recent version of the FAQ) ------------------------------------------------------------------------ Copyright � 1999 Anton Marsden. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ------------------------------------------------------------------------ From: "Waknuk" Subject: Re: Paper Experiments Part 1 Date: 29 Dec 2005 21:12:41 -0800 Message-ID: <1135919561.644989.152410@z14g2000cwz.googlegroups.com> usenetposter@mac.com wrote: > The reason why the new approach (using spl 2) > is sometimes worse is because the 6 processes > don't execute all together. > Instead of > AAAAAA (everything else) BBBBBB (everything else) CCCCCC ... > you get > AA (everything else) AAAABB (everything else) BBBBCC ... > > pmars -e is your friend. Once the paper has started the processes are split (separated) either way. AAAAAA AAAAABM AAAABMBM AAABMBMBM AABMBMBMBM ABMBMBMBMBM BMBMBMBMBMBM From: "usenetposter@mac.com" Subject: Re: Paper Experiments Part 1 Date: 29 Dec 2005 22:53:36 -0800 Message-ID: <1135925616.870856.243500@g44g2000cwa.googlegroups.com> You seem to have ignored the "everything else" part. Think about what happens when you have both a paper and a stone on queue. Or when you start two copies of a Puff-like paper. (I suspect Paul made his observation while writing Puff). From: "Jens Gutzeit" Subject: pMARS bug or problem with ICWS '88? Date: 30 Dec 2005 03:38:31 -0800 Message-ID: <1135942711.847558.60470@g43g2000cwa.googlegroups.com> Hi, a while ago I've started to implement yet another MARS. Now, that I think, it works well, I've started to compare the results of pMARS with the output of my MARS for all warriors on the '88 Koenigstuhl hill. I have found the warrior "The Little Screw": http://www.ociw.edu/~birk/COREWAR/88/HILL/littlescrew.red It contains the instruction SLT $ -4, # 10. According to my information that is an invalid instruction according to ICWS '88, but "pmars -8" accepts it without any warnings or errors. So what is right in this case? Is it an invalid instruction for '88? Is it a pMARS bug? Thanks for enlightening me :-) - Jens Gutzeit From: "Waknuk" Subject: Re: Paper Experiments Part 1 Date: 30 Dec 2005 04:44:04 -0800 Message-ID: <1135946644.206391.269340@g47g2000cwa.googlegroups.com> usenetposter@mac.com wrote: > You seem to have ignored the "everything else" part. > Think about what happens when you have both > a paper and a stone on queue. > Or when you start two copies of a Puff-like paper. > (I suspect Paul made his observation > while writing Puff). I saw the application to stones and think the benefit clear if applied to imp-stones but, when aplied to papers its not clear to me why it should matter so given that processes within a normal paper (e.g nPaperII) will be separated anyway. I see that Puff is unusual in this regard but Paul's initial post appears to be a generic claim. From: "iapdk@admin.drake.edu" Subject: Paper Start Experiments Date: 30 Dec 2005 09:14:38 -0800 Message-ID: <1135962878.165103.227770@g14g2000cwa.googlegroups.com> Concerning the difference between: spl 2 spl 1 spl 1 and spl 1 mov.i -1,#0 spl 1 Here are some test results: ==== TEST I I generated six processes using the two methods and tested this paper in 500 rounds against the cds:scn suite: p0 spl @0 ,>3777 mov }p0 ,>p0 mov {p0 ,2311 The spl2/spl1/spl1 version was better by about a point. ==== TEST II I then made a version that starts two papers like this: pStart spl rStart spl 2 spl 1 spl 1 p0 spl @0 ,>3777 mov }p0 ,>p0 mov {p0 ,2311 for pStart+81 dat 0 ,0 rof rStart spl 2 spl 1 spl 1 r0 spl @0 ,>3777 mov }r0 ,>r0 mov {r0 ,2311 The spl1/mov/spl1 version scored about 11 points better. ==== TEST III I changed the p1/r1 step to 311 and ran it again. Both scores dropped about 10 points and the spl1/mov/spl1 version scored 7 points better than spl2/spl1/spl1. ==== TEST IV I changed the second paper into a stone (from Puddleglum): pStart spl sGo spl 2 spl 1 spl 1 p0 spl @0 ,>3777 mov }p0 ,>p0 mov {p0 ,2311 for pStart+48 dat 0 ,0 rof sStep equ 3039 sTime equ 3357 sGo: spl #6, 0 spl #0, 0 ; aggressive stone (Spooky Wench?!) sLp: mov sBmb, @sP sSel:add #sStep, sP sP: djn.f sLp, {sSel-sStep*sTime sBmb:dat 2, >1 The spl1/mov/spl1 version scored 2.8 points better. ==== TEST V I changed the start order into this: pStart spl 2 spl 1 spl 1 p0 spl @0 ,>3777 mov }p0 ,>p0 mov {p0 ,2311 for pStart+48 dat 0 ,0 rof sStep equ 3039 sTime equ 3357 spl pStart sGo: spl #6, 0 spl #0, 0 sLp: mov sBmb, @sP sSel:add #sStep, sP sP: djn.f sLp, {sSel-sStep*sTime sBmb:dat 2, >1 end sGo-1 Both versions scored about 8 points more with this start and the spl1/mov/spl1 version scored over 10 points better than spl2/spl1/spl1. Tests IV and V point out something useful. Changing the start order gives more processes to the stone because it executes first in the process queue: stone papers stone papers*x stone papers*x*x Whereas version IV has it: papers stone papers*x stone papers*x*x stone And maybe the spl2/spl1/spl1 start is more aggressive (by one cycle) and robs the stone of cycles also. I can't offer a firm explanation of why spl1/mov/spl1 performs better in Tests II and III. 500 rounds tells me it is significant but someone else should run similar tests and confirm. P. Kline From: sayembara@gmail.com Subject: Re: Paper Experiments Part 1 Date: 30 Dec 2005 09:31:13 -0800 Message-ID: <1135963873.460447.117000@z14g2000cwz.googlegroups.com> I was zooming just to the pure paper, that was why I answered out of context. If there is additional component such as stone, that would give some impact as said in the previous replies and also from Paul's analysis. From: sayembara@gmail.com Subject: Re: pMARS bug or problem with ICWS '88? Date: 30 Dec 2005 09:42:10 -0800 Message-ID: <1135964529.960842.263980@f14g2000cwb.googlegroups.com> I'm trying to recall too....so, slt should only have: slt (# $ @ <) number, ($ @ <) number So, the illegal part should be that "#" placement. ...(running pmars). Yeah...pmars -8 allowed that. Beats me. From: Steve Gunnell Subject: Re: Paper Start Experiments Date: Fri, 30 Dec 2005 19:56:24 -0500 (EST) Message-ID: <1135984732.24249.18.camel@eldred.local> Try it against a test suite composed mostly of scanners. The first version leaves a visible 'header' out there for much longer than the second option and then splits a whole lot more processes in after a turns delay. Steve Gunnell On Fri, 2005-12-30 at 13:15 -0500, iapdk@admin.drake.edu wrote: > Concerning the difference between: > spl 2 > spl 1 > spl 1 > and > spl 1 > mov.i -1,#0 > spl 1 > > Here are some test results: > From: Steve Gunnell Subject: Re: pMARS bug or problem with ICWS '88? Date: Fri, 30 Dec 2005 19:56:25 -0500 (EST) Message-ID: <1135984122.24250.11.camel@eldred.local> That looks like a documentation bug to me. I'm pretty sure that was never enforced on pre-pmars systems. Steve Gunnell On Fri, 2005-12-30 at 13:15 -0500, sayembara@gmail.com wrote: > I'm trying to recall too....so, slt should only have: > > slt (# $ @ <) number, ($ @ <) number > > So, the illegal part should be that "#" placement. > > ..(running pmars). Yeah...pmars -8 allowed that. Beats me. > From: "iapdk@admin.drake.edu" Subject: Re: Paper Start Experiments Date: 31 Dec 2005 05:47:09 -0800 Message-ID: <1136036829.205382.53660@z14g2000cwz.googlegroups.com> > Try it against a test suite composed mostly of scanners. The scn:cds suite are all scanners. 'cds' are blur-type and 'scn' are all others. P. Kline From: sayembara@gmail.com Subject: Re: Paper Start Experiments Date: 31 Dec 2005 07:04:51 -0800 Message-ID: <1136041491.523772.327320@g43g2000cwa.googlegroups.com> The more I think about it, the more words I can rap :) Ok, I am now favor this (cut & paste from the other thread): "Instead of AAAAAA (everything else) BBBBBB (everything else) CCCCCC ...you get AA (everything else) AAAABB (everything else) BBBBCC for spl2 version" That is the weakness. spl2 jump starts the sequence. It does move the silk earlier but it simply leave it 'unfinished'. It is always holding 2 processes which is just to be executed next. When the processes got too many, there will be many such hold-up processes that risk some damage to stone. Just imagine the set of 6 processes are doing two places at one time. On the other hand, the normal mov-1 will complete the each silk before the respective 6-process group transfer to other cores. One place, one job, so 50% risk of being stoned (or is it just 5% from the statistic?). Not supported by any simulation. Just pure imagination. Wide open for criticism.