.xX$$x. .x$$$$$$$x. d$$$$$$$$$$$ ,$$$$$$$P' `P' , . $$$$$$P' ' .d b $$$$$P b ,$$x ,$$x ,$$x ,$$b $$. Y$$$$' `$. $$$$$$. $$$$$$ $$P~d$. d$$$b d d$$$ `$$$$ ,$$ $$$$$$$b $$$P `$ $$$b.$$b `Y$$$d$d$$$' . . a . a a .aa . a `$$$ ,$$$,$$' `$$$ $$$' ' $$P$XX$' `$$$$$$$$$ .dP' `$'$ `$'$ , $''$ `$'$ `Y$b ,d$$$P `$b,d$P' `$$. `$$. , `$$P $$$' Y $. $ $ $ Y..P $ `$$$$$$$' $$$P' `$$b `$$$P `P `$' `Y'k. $. $. $. $$' $. Issue 91 30 January, 2005 _______________________________________________________________________________ Core Warrior is a newsletter promoting the game of Corewar, a game of skill played between two or more computer programs on behalf of the players who create them. Emphasis is placed on the most active hills - currently the '94 no-pspace, '94 draft and beginner hills. Coverage will follow wherever the action is. If you haven't a clue what I'm talking about then check out these five-star Internet locals for more information: FAQs are available from: http://www.koth.org/corewar-faq.html http://homepages.paradise.net.nz/~anton/cw/corewar-faq.html Web pages are at: http://www.koth.org/ ;KOTH http://sal.math.ualberta.ca/ ;Sal Hills http://para.inria.fr/~doligez/corewar ;Planar http://www.ociw.edu/~birk/corewar ;C.Birk http://www.corewar.info/ ;Fizmo http://www.corewar.co.uk/ ;J.Metcalf Newbies should check the above pages for the FAQs, language specification, guides, and tutorials. Post questions to rec.games.corewar. All new players are infinitely welcome! _______________________________________________________________________________ Greetings... Happy new year!!! Welcome to your first Core Warrior of 2005, which comes hot off the digital presses. Apologies for the time passed since the last issue. Some interesting events have taken place. Christian Schmidt organised a meeting to celebrate the 20th anniversary of Corewar; see Christian's write-up in this issue for full details. Son of Vain has perished - without a doubt the most resilient stone/imp ever created and, in the opinion of many in the Corewar community, the most effective warrior to date. Is there a warrior powerful enough to take the lead or will the 94nop hill fall into chaos? The post-SoV era begins... Koth hills have been calm the last few weeks, focusing activity on SAL's Beginners Hill, where new redcoders have arisen. Welcome. ----- Redcode Frenzy News: Three rounds have passed since the last issue. Round 19 "The Battle Maniac Round" and round 20 "Frankenstein round" were both won by Chip Wendell, who takes the lead on the ranking with four consecutive victories, the best win record of the tournament! Round 21 "The Football Round" was won by me, German Labarga, as you see, new on the Core Warrior editorial team. See the Redcoders Frenzy homepage: http://www.corewar.info/tournament/cwt.htm -- Christian Schmidt, German Labarga and John Metcalf '94 No Pspace Hill ******************* ______________________________________________________________________________ Current Status of the KOTH.ORG '94 No Pspace Hill: # %W/ %L/ %T Name Author Score Age 1 37/ 26/ 37 The Humanizer bvowk/fiz 149 35 2 37/ 26/ 37 Hullabaloo Roy van Rijn 147 147 3 44/ 43/ 13 Arrow Christian Schmidt 145 350 4 36/ 28/ 36 Borgir Christian Schmidt 143 182 5 41/ 42/ 16 Origin of Storms II Metcalf/Schmidt 141 24 6 30/ 19/ 51 stray cat John Metcalf 140 1 7 33/ 26/ 41 Gargantuan Roy van Rijn 140 168 8 27/ 15/ 58 S.D.N. Christian Schmidt 139 72 9 39/ 38/ 23 picture walker John Metcalf 139 3 10 27/ 15/ 58 Maelstrom Roy van Rijn 139 291 11 31/ 23/ 46 paper(paper(paper(clear)) Sascha Zapf 138 251 12 27/ 17/ 56 Black Knight Christian Schmidt 137 172 13 30/ 25/ 45 New-T Roy van Rijn 136 81 14 39/ 42/ 19 thoughts of fire John Metcalf 135 47 15 24/ 13/ 62 Chainlock v02a G.Labarga 135 30 16 37/ 40/ 23 test Roy van Rijn 134 17 17 25/ 16/ 60 The Utterer Christian Schmidt 134 7 18 38/ 43/ 20 Spiker Roy van Rijn 133 84 19 39/ 44/ 17 HazyLazy C 11 CS SG 133 359 20 36/ 39/ 25 The Boss is back again! G.Labarga 133 6 The hill has aged 215 since issue 90, with just 4 warriors surviving. Since last issue, Son of Vain has perished after achieving a record age of 2573. SoV entered the hill on 23 March, 2001, and claimed the title of oldest warrior in November 2002, age 1037. Congratulations to Ian Oversby and M Joonas Pihlaja on their well deserved success. Also leaving the hill were slime test 1.00 (age 428), Gremlin (302), Spiritual Black Dimension (293), Dandelion 3 (185), elf (138), Yorba (123), 2b||!2b (116) and Bottomless Pit (100). Some noteworthy warriors which left the hill without quite making it to the age of 100 were Claw III (age 98), O--* (97), unheard-of II (89), Savage Flowing Battleworn (86), Hydra II (79), Strike Two (70), Triturus (65), High Voltage (54) and Frantic (53). Although only 147 challenges old, Hullabaloo has been at the top of the hill after 117 successful challenges. Also frequently seen as Koth have been Arrow (34 times), Borgir (26) and The Humanizer (16). _______________________________________________________________________________ The '94 No Pspace Hall of Fame: * indicates the warrior is still active. Pos Name Author Age Strategy 1 Son of Vain Oversby/Pihlaja 2573 Q^4 -> Stone/imp 2 Blacken Ian Oversby 1363 Q^2 -> Stone/imp 3 Reepicheep Grabun/Metcalf 1347 Q^4 -> Paper/stone 4 nPaper II Paul-V Khuong 1270 MiniQ^3 -> Paper 5 Uninvited John Metcalf 1130 MiniQ^3 -> Stone/imp 6 Hazy Test 63 Steve Gunnell 1119 Scanner 7 Behemot Michal Janeczek 1078 MiniQ^3 -> Bomber 8 Olivia Ben Ford 886 Q^4 -> Stone/imp 9 Recon 2 David Moore 826 Scanner 10 Keyser Soze Anton Marsden 823 Qscan -> Bomber/paper/imp 11 Quicksilver Michal Janeczek 789 Q^4 -> Stone/imp 12 Eraser II Ken Espiritu 781 Scanner 13 Inky Ian Oversby 736 Q^4 -> Paper/stone 14 Toxic Spirit Philip Thorne 685 Oneshot 15 Jinx Christian Schmidt 662 Q^3 -> Scanner 16 Blade Fizmo 643 Qscan -> Scanner 17 Return of Vanquisher Lukasz Grabun 640 Q^4 -> Bomber 18 Revenge of the Papers Fizmo/Roy 605 Q^4 -> Paper 19 Jade Ben Ford 600 Q^4 -> Stone/imp 20 Firestorm John Metcalf 589 MiniQ^3 -> Paper/imp 21 Claw Fizmo 525 Qscan -> Scanner 22 G3-b David Moore 503 Twoshot 23 Thunderstrike Lukasz Grabun 484 Q^4 -> Stone/imp 24 Vanquisher Lukasz Grabun 469 Q^4 -> Bomber 25 Revival Fire P.Kline 468 Bomber 26 The Phantom Menace Anton Marsden 465 Qscan -> Paper/imp 27 The Stormkeeper Christian Schmidt 460 Q^3 -> Stone/imp 28 Positive Knife Ken Espiritu 449 Q^4 -> Stone/imp 29 Boys are Back in Town Philip Kendall 441 Scanner = Zooom... John Metcalf 441 Scanner 31 slime test 1.00 David Houston 428 Q^4.5 -> Paper 32 G2-b David Moore 413 Twoshot 33 Ironic Imps Roy van Rijn 403 Q^4 -> Stone/imp 34 Qtest Christian Schmidt 394 Q^3 -> Paper 35 Stalker P.Kline 393 Scanner 36 Decoy Signal Ben Ford 378 Q^4 -> Paper/imp 37 HazyLazy C 11 CS SG 359 * Q^4 -> Scanner 38 unheard-of Christian Schmidt 355 Q^4 -> Paper/imp 39 Arrow Christian Schmidt 350 * Scanner = Hazy Lazy ... again Steve Gunnell 350 Scanner = Dawn Roy van Rijn 350 Q^4 -> Paper/imp 42 Static Miz 344 Q^4 -> Stone/imp 43 devilish 2 David Houston 330 Q^4 -> Stone/imp = Vain Ian Oversby 330 Q^2 -> Stone/imp 45 Omnibus John Metcalf 327 Q^2 -> Stone/imp 46 Win! David Moore 322 Scanner 47 Return of the PendragonChristian Schmidt 318 Q^4 -> Stone/imp 48 Numb Roy van Rijn 312 Q^4 -> Paper/stone 49 Hazy Lazy... Steve Gunnell 309 Scanner 50 Gremlin van Rijn/Grabun 302 Q^4 -> Stone/imp Son of Vain finally perishes at an all time record age of 2573. SoV was crowned king of the Hall of Fame back in CW85 (January 2003), and at the current rate of activity, it's position looks safe until around August 2011 :-) At age 291, Maelstrom is just a few challenges away from entering the HoF. '94 Draft Hill ******************* _______________________________________________________________________________ Current Status of the KOTH.ORG '94 Draft Hill: # %W/ %L/ %T Name Author Score Age 1 45/ 37/ 18 Bulldozed Christian Schmidt 153 1 2 44/ 35/ 22 ArtaBmoC Christian Schmidt 153 17 3 35/ 26/ 40 The Humanizer bvowk/fiz 144 13 4 30/ 18/ 52 unheard-of II Christian Schmidt 141 57 5 27/ 14/ 59 Chainlock v02a G.Labarga 141 12 6 35/ 30/ 34 Sunrise 06 Zul Nadzri 141 15 7 39/ 39/ 22 Cyberpunk Christian Schmidt 139 143 8 28/ 17/ 54 The Utterer Christian Schmidt 139 8 9 28/ 17/ 56 Maelstrom Roy van Rijn 139 95 10 39/ 39/ 22 Just experimenting 1.4 Blake Escritt 138 31 11 36/ 34/ 30 fallen leaves John Metcalf 138 11 12 33/ 29/ 38 Hullabaloo Roy van Rijn 137 46 13 40/ 43/ 18 Origin of Storms II Metcalf/Schmidt 137 10 14 41/ 45/ 13 Arrow Christian Schmidt 137 116 15 29/ 20/ 51 Black Knight Christian Schmidt 137 77 16 33/ 29/ 38 Spiritual Black Dimension Christian Schmidt 137 135 17 29/ 21/ 50 stray cat John Metcalf 136 5 18 28/ 21/ 51 Bvowkium Fizmoxid bvowk/fizmo 135 64 19 32/ 28/ 41 elf Christian Schmidt 135 62 20 40/ 47/ 13 Dandelion 3 Schmidt/Zapf 133 119 After an age of 68, 6 warriors remain on the hill from last issue. Those who didn't last the duration include Reepicheep (543), Sunrise (128), Muscle Hammer (90), Armadillo (68), Arctica (66), Gremlin (66) and Devilish 2 (65). Cyberpunk is now the oldest warrior with an age of just 143. p-Warriors are again in top spots now but pure scanners are still scoring surprisingly well and can still survive for a lengthy term on the hill. Welcome to Blake Escritt with his impressive debut. Koth report: 7 warriors resided at number one. Most often seen there have been Arrow (26), ArtaBmoC (16) and elf (16). _______________________________________________________________________________ The '94 Draft Hall of Fame: * indicates the warrior is still active. Pos Name Author Age Strategy 1 Reepicheep Grabun/Metcalf 543 Q^4 -> Paper/stone 2 Son of Vain Oversby/Pihlaja 441 Q^4 -> Stone/imp 3 Return of Vanquisher Lukasz Grabun 283 Q^4 -> Bomber 4 Bitter Sweet Lukasz Grabun 262 Q^4 -> Stone/imp 5 CrazyShot 2 Christian Schmidt 249 Q^4 -> Oneshot 6 Herbal Avenger Michal Janeczek 237 Scanner 7 Bustling Spirit Christian Schmidt 216 P-warrior 8 Revenge of the Papers Fizmo/Roy 204 Q^4 -> Paper 9 Uninvited John Metcalf 194 MiniQ^3 -> Stone/imp 10 Blowrag Metcalf/Schmidt 192 Q^4 -> Paper/imp 11 Incredible! John Metcalf 180 Paper/imp 12 Wallpaper Christian Schmidt 175 Q^4 -> Paper/stone 13 Mantrap Arcade Dave Hillis 170 P-warrior 14 Numb Roy van Rijn 167 Q^4 -> Paper/stone 15 PolyPap Jakub Kozisek 160 Qscan -> Paper 16 Recon 2 David Moore 156 Scanner 17 Cyberpunk Christian Schmidt 143 * P-warrior = Joyful Maw Dave Hillis 143 P-warrior 19 Paperazor Christian Schmidt 141 Q^4 -> Paper 20 Sunset David Moore 138 P-warrior 21 Dawn Roy van Rijn 137 Q^4 -> Paper/imp 22 Spiritual Black Dimens Christian Schmidt 135 * Qscan -> Paper/stone 23 Self-Modifying Code Ben Ford 132 P-warrior 24 Combatra David Moore 131 Boot distance calculator 25 unheard-of Christian Schmidt 128 Q^4 -> Paper/imp = Sunrise Zul Nadzri 128 P-warrior Reepicheep stopped at an age of 543 having been the oldest active warrior since November 2002. Sunrise enters the HoF before he left the hill, while Cyberpunk is still in good shape for climbing on up. Arrow and Dandelion 3 will enter soon. SAL Beginners Hill ******************* _______________________________________________________________________________ Current Status of the SAL Beginners Hill: # %W/ %L/ %T Name Author Score Age 1 39.2/ 25.7/ 35.1 Stoney the second Miz 152.6 61 2 44.9/ 40.2/ 14.8 Studie strikes back Sascha Zapf 149.6 93 3 43.9/ 39.9/ 16.2 Shooting Star v0.262 brx 147.9 71 4 44.7/ 41.5/ 13.8 NSos10 Nenad Tomasev 147.8 4 5 43.4/ 40.7/ 15.9 Frullato LAchi 146.2 110 6 32.9/ 22.8/ 44.3 Enigma 2.1 brx/Roy 142.9 63 7 42.6/ 42.8/ 14.7 Unknown Neo 142.3 53 8 34.4/ 27.3/ 38.2 Uneven Twins Sascha Zapf 141.6 97 9 44.1/ 47.3/ 8.7 Star Sascha Zapf 140.9 98 10 32.8/ 25.4/ 41.8 Tom David Moore 140.2 81 11 44.5/ 49.8/ 5.7 s-test Sascha Zapf 139.3 46 12 26.9/ 14.8/ 58.3 Everybody must get STONED madjester 139.1 3 13 31.8/ 27.0/ 41.2 Teenage Metal Isis v0.6a Pascal Hofstee 136.6 52 14 29.1/ 21.6/ 49.3 ImpBulletv1 Nenad Tomasev 136.5 10 15 33.3/ 30.2/ 36.5 AntiImpBulletv3 Nenad Tomasev 136.5 16 16 39.3/ 43.4/ 17.3 French Kiss LAchi 135.3 47 17 31.3/ 29.2/ 39.5 Veenah V0.8 Sascha Zapf 133.4 69 18 40.4/ 47.4/ 12.2 EpsonXVII Nenad Tomasev 133.4 7 19 38.8/ 46.5/ 14.7 Abraxas v1.1 Nenad Tomasev 131.1 5 20 38.4/ 46.7/ 14.9 Hooligan2 G.Labarga 130.1 34 21 40.1/ 50.2/ 9.7 scantest Nenad Tomasev 130.0 6 22 39.5/ 49.7/ 10.8 Scizzory3 Miz 129.3 30 23 37.7/ 46.4/ 16.0 ssoBeht Sascha Zapf 129.0 84 24 35.1/ 44.3/ 20.5 Glass House Ken Hubbard 125.9 50 25 29.8/ 38.4/ 31.8 TestPaper Nenad Tomasev 121.1 1 There were 64 challenges since the last issue with two new authors in good hill position, namely Nenad Tomasev and madjester. Miz was mostly seen as koth, with his stone/imp Stoney the second - followed by several oneshots. _______________________________________________________________________________ Current Status of the Koenigstuhl Recursive ICWS '94 Draft Hill: Koenigstuhl is a collection of 10 infinite hills found at: http://www.ociw.edu/COREWAR/koenigstuhl.html Below we show the top 25 of a total 819 warriors: rank name author score -------------------------------------------------------------- 1 Hullabaloo Roy van Rijn 165.64 2 Spiritual Black Dimension Christian Schmidt 161.88 3 Reepicheep Grabun/Metcalf 160.81 4 Son of Vain Oversby/Pihlaja 158.94 5 HazyLazy C 11 CS SG 158.48 6 Numb Roy van Rijn 157.84 7 HazyLazy A 70 Steve Gunnell 157.05 8 Herbal Avenger Michal Janeczek 156.95 9 Yorba Roy van Rijn 156.93 10 Frantic Roy van Rijn 156.88 11 Gargantuan Roy van Rijn 156.77 12 Armadillo Lukasz Grabun 156.63 13 Dandelion III Schmidt/Zapf 155.85 14 Quicksilver Michal Janeczek 155.48 15 RotPendragon 2 Christian Schmidt 155.42 16 Maelstrom Roy van Rijn 155.30 17 Jinx 2 Christian Schmidt 155.02 18 Hammerhead Lukasz Grabun 154.84 19 Devilstick Roy van Rijn 154.78 20 Cheep! Half-Off! Ben Ford 154.67 21 Behemot Michal Janeczek 154.66 22 Candy II Lukasz Grabun 154.33 23 Pixie Lukasz Grabun 154.19 24 Machines Will Rule bvowk 153.90 25 Preserver Lukasz Grabun 153.79 Since the last report there are 28 new entries on the hill, of which 12 entered the top 25. Koenigstuhl has a new Koth and deputy Koth, being Hullabaloo the new king and Spiritual Black Dimension second. By authors, Roy van Rijn has 7 warriors among top 25, followed by Lukasz Grabun (6) and Christian Schmidt (4). Welcome to Machines Will Rule, the first evolved warrior to enter this ranking. _______________________________________________________________________________ 20th Anniversary Corewar Meeting 2004. A field report by Christian Schmidt At the end of 2003 John Metcalf and other players suggested to have a meeting to celebrate the 20th anniversary of Corewar. Several players evinced their interest in participating. So, we decided to make it sometime in summer 2004 preferably somewhere in Europe, because most of the players hoping to take part were living there. I offered to host the meeting in Berlin, not suspecting that it could be embraced by so many people. Unfortunately my time schedule for 2004 was more tricky than expected. So the date for the meeting was decided quite late - July 23-25, 2004. I sent questionaires to numerous Redcoders to discover more about what they would like to see during the meeting, a preferred time, etc. Because it was the first time I'd organized something like this, I was a bit worried if I would be able to pull it off successfully. Finally the following Redcoders promised me that they would surely attend the meeting: Achille 'LAchi' Astolfi from Italy, Joonas Pihlaja from Finland, Ian Oversby from the U.K., Philip Thorne and Alexander 'Sasha' Wait from the U.S.A. and el kauka and trac from Germany. There was a lot of preparation needed for the meeting and without the help of my wife it wouldn't have been possible. But finally everything was ready for the first Corewar meeting for many, many years - to take part on July 23-25, 2004 in Berlin. On the afternoon of July 21, the first Redcoder arrived from the States at the airport Berlin-Schoenefeld, Alexander 'Sasha' Wait. I was quite nervous, waiting at the arrival hall displaying a sign with the letters ICC 2004 and the corewar.info logo. Due to the photos on our websites, we recognized each other immediately. It was for me a new experience talking for the first time about Corewar instead of communicating via IRC chatting or e-mails. We were deep in conversation for the remainder of the day, discussing everything related to Corewar and Sasha's new quantum coreworld. Everybody can get an impression of that: http://www.corewar.info/meeting/21/img3.htm On the next day we went together to the airport Berlin-Tegel to meet Joonas Pihlaja coming from Helsinki. It was a touching moment to see him the first time in person after knowing him for so many years only from the net. http://www.corewar.info/meeting/22/img1.htm As the previous day our discussion was mainly focused on Corewar related topics, even during the dinner ;-) Interesting strategies, warriors, about the past tournaments etc. Joonas explained to us some of the secrets behind the creation of Son of Vain, and I explained some of my unpublished warriors. http://www.corewar.info/meeting/22/img4.htm The official first day of the meeting started with the arrival of Achille 'LAchi' Astolfi and Philip Thorne with his wife, while Ian Oversby and his wife were landing last, late evening. For the barbecue at my home two new Redcoders from Berlin announced their attendance, trac and el kauka. We had a lot of fun and interesting discussions until far into the night! LAchi explained to us the idea behind his oneshots and we were discussing how the deadlock on Koth's experimental multiwarrior hill might be broken. http://www.corewar.info/meeting/23/img1.htm On the next day we all met in the morning in Berlin downtown for a shopping expedition visiting together the well-known KDW (Kaufhaus des Westens), the Ku'Damm and the Europa Center. In the afternoon we went to a seminar room of the University of Berlin for two workshops. Many thanks to Prof Raul Rojas who was so kind to make it available for us. The first workshop was held by myself introducing optiMAX, a comprehensive Corewar optimizer and how to improve warriors. The second workshop was held by Sasha who presented the audience with the idea behind the quantum coreworld. After a rest we continued with the evening program, visiting the Potsdammer Platz for some further sightseeing and a german style dinner. It was a really nice atmosphere with lot of fun and interesting discussions. Phil teased us with his secret code of Toxic Spirit. Phil I'll bear it in mind ;-) Also on this evening, a really memorable picture of Joonas and Ian was made, the authors of the most successful warrior in Corewar history, Son of Vain. http://www.corewar.info/meeting/24/img8.htm On the final day we started the morning with a sightseeing tour. Beside the Brandenburg Gate, the historical parliament and several other tourist attractions we made a boat trip around the historical museum island and the administrative district. http://www.corewar.info/meeting/25/img5.htm On the evening we made a farewell dinner at my home looking back to the past discussions and ideas. How fast the time went by. After all, I must say it was a really enjoyable time spent with everyone and I hope we'll see each other again soon. If we will ever arrange another Corewar meeting I will surely attend. Christian _______________________________________________________________________________ Imp Launchers & The Hybrid Launcher, by German Labarga There exist three kinds of imp launcher which create an imp spiral with a fixed number of processes : * The binary launcher: Fast and easy to design, it works under both the '88 and the '94 rules. Unfortunately, it is the largest of the three. For a N process spiral, size is = (2*N)-1, (not including the imp). It takes as many cycles to execute as lines in the code. istep EQU (CORESIZE/3+1) strt: spl 8 ;creates 8 processes, each line is executed once spl 4 spl 2 a: jmp imp+(0*istep) b: jmp imp+(1*istep) spl 2 c: jmp imp+(2*istep) d: jmp imp+(3*istep) spl 4 spl 2 e: jmp imp+(4*istep) f: jmp imp+(5*istep) spl 2 g: jmp imp+(6*istep) h: jmp imp+(7*istep) imp: mov 0,istep ;or mov.i #0,istep * JMP/ADD launcher, (also called Nimbus launch): This is the smallest one, but also the slowest. This launcher works under both the '88 and the '94 rules, and uses the simplest design. Size = 3+(ln N / ln 2). If N is not a power of 2, you must round the result up to the next integer, (5.3 -> 6 lines). It takes (5*N)-1 cycles to launch. imp: mov.i #0,istep ;or mov 0,istep under '88 rules strt: spl 1 ;\ spl 1 ; > creates N=8 processes in 7 cycles spl 1 ;/ spl 2 ;needs 2*N processes for the launch ;8 cycles jmp imp ;or jmp @0, imp ;8 cycles add.a #istep,-1 ; add #istep,-1 ;under '88 rules ;8 cycles (dat 0,0) ;remaining processes should be killed, taking 8 ; cycles more, but the spiral is already built ; after (4*N)-1 cycles. * Vector launcher: As fast as the binary but using much less code. It's size can be reduced depending the design. Mostly used under '94 rules. It can be implemented under '88, but requires more instructions and works N cycles slower. vect: dat 0,imp+(0*istep) ;'94 basic design with one jmp dat 0,imp+(1*istep) dat 0,imp+(2*istep) dat 0,imp+(3*istep) dat 0,imp+(4*istep) strt: spl 1,imp+(5*istep) spl 1,imp+(6*istep) spl 1,imp+(7*istep) send: jmp @vect,}0 .. imp: mov.i #0,istep Adding more jumps allows us to reduce the table size using free fields in your code, breaking the table in pieces of equal length. Size increases with extra jmp's but takes the same time. .. ;\ spl 2 ;/ create the processes needed snd1: jmp @vct1,}0 ;vct1 and vct2 point to the vector tables snd2: jmp @vct2,}0 ;note snd1 and snd2 are executed in alternate order And the compact version: vect EQU send tabl: dat 0, imp+(7*istep) ;this scheme allows us to launch 8 dat 0, imp+(6*istep) ; processes in 8 lines + imp dat 0, imp+(5*istep) dat 0, imp+(4*istep) strt: spl 1, imp+(3*istep) spl 1, imp+(2*istep) spl 1, imp+(1*istep) send: djn.a @vect,#imp+(0*istep) ;djn decrements it's own A-field and ; B-field is free imp: mov.i #0,istep Be careful when using djn. In large launchers with more than one jump, djn.a @1,#.. can be a problem difficult to solve without increasing the size. * And this is my '88 version: strt: spl 1 ;\ spl 1 ; > create the processes needed sptr: spl 1,last ;/ [ln N / ln 2] instructions send: jmp vect,}0 ;vect points to the head of the table, (addresses are in ; increasing order) or alternatively: djn.a >vect,#0 ;vect points to the end of the table, (addresses are in ; decreasing order) The addresses in the table are incremented after splitting off each process. So we can launch the processes with two jmp's which use the same table: vect: dat 0 , imp+(1*istep) ; 2nd ;s2 points to here dat 0 , imp+(0*istep) ; 1st (+1) 4th ;s1 points to here strt: spl 1 , imp+(2*istep) ; 3rd (+1) 6th spl 1 , imp+(4*istep) ; 5th (+1) 8th spl 2 , imp+(6*istep) ; 7th (+1) s1: jmp >vect+1,}0 ; 1st 3rd 5th 7th s2: jmp @vect,}0 ; 2nd 4th 6th 8th imp: mov.i #0,istep end strt The jumps are executed in alternate order: s1 s2 s1 s2 s1 s2 s1 s2 s1 increments imp+(0*istep) after the jump, so then it becomes: imp+(0*istep)+1 = imp+(3*istep) ;for a 3-point imp Then s2 jumps to imp+(1*istep) Next s1 jumps ti imp+(2*istep) and increments the address And then s2 jumps using the address which s1 used first and was incremented, so now it is imp+(3*istep) It can be defined as two mutating vector launchers interweaved. (Well, only the first launcher mutates the addresses. The second one not, because we are not going to use the addresses again). So we have an 8 process launcher in 7 instructions using only four addresses instead of eight, saving only one instruction. With 16 processes the launcher would be 11 lines long (not including the imp). But the size can be reduced even more if we use the compact version with djn: ;redcode-94 ;name Short launcher ;author G.Labarga ;assert 1 ;strategy 8-proc. 2x hybrid launcher istep EQU (CORESIZE/3+1) strt: spl 1 , imp+(6*istep) ;now the addresses are in spl 1 , imp+(4*istep) ;reverse order spl 2 , imp+(2*istep) frst: djn.a >frst ,#imp+(0*istep) scnd: djn.a @scnd ,#imp+(1*istep) imp: mov.i #0 , istep end strt Wow, the launcher itself is only 5 lines long! For larger spirals, we can add more addreses to the table or add more jumps in a binary structure. ;-- 4x hybrid launcher: 32 procs in 11 lines of code ------ ;Also a 24-proc. launcher can be done in 10 lines + imp. ;could be 28 procs in 10 lines, but can't create 7 processes in three lines ; without modify B-fields istep EQU (CORESIZE/3+1) scnd: djn.a @frst+2,#imp+(28*istep) dat 0 ,#imp+(24*istep) strt: spl 1 , imp+(20*istep) spl 1 , imp+(16*istep) spl 1 ,#imp+(12*istep) spl p_2 , imp+(8*istep) p_1: spl scnd , imp+(4*istep) frst: djn.a >frst ,#imp+(0*istep) ;| 1st 4th frth: djn.a >frst ,#imp+(2*istep) ;| 3rd p_2: spl frth , imp+(1*istep) ;| 2nd thrd: djn.a >frst+1,#0 imp: mov.i #0 , istep end strt Size depends on the number of processes of the spiral, table length and jumps used to perform the launch. It is always smaller than the vector launch and has the same speed. The processes/size ratio is even better in larger launchers, but sometimes continuous launchers would be more useful for '94 warriors. The hybrid launcher is not possible under '88 rules. * What about 7-point imps? No problem. The table would be 7+k-1 lines long. So table would be minimum 8 lines long for a 2x launcher. ;-- 4x hybrid launcher: 16 procs in 11 lines of code ------ ; using a 7-pt spiral. Needs 2 dat instructions. istep EQU (CORESIZE/7+1) scnd: djn.a >frst-2 ,#imp+(18*istep) frth: djn.a @frst+1 ,#imp+(14*istep) dat 0 ,#imp+(10*istep) dat 0 , imp+(6*istep) ;| 7th strt: spl 1 , imp+(2*istep) ;| 3rd spl 1 ,#imp+(5*istep) ;| 6th spl p_2 , imp+(1*istep) ;| 2nd p_1: spl scnd , imp+(4*istep) ;| 5th frst: djn.a >frst ,#imp+(0*istep) ;| 1st p_2: spl frth , imp+(3*istep) ;| 4th thrd: djn.a >frst-4 ,#0 imp: mov.i #0,istep end strt Vector tables for 7-pt spirals are bigger but are also easier to fit because the djns are pointing to different locations in the table. Sometimes even, we can use all the b-fields of the launch code to fit the table. _______________________________________________________________________________ Extra Extra - Paper dodgers or oneshots with a snippet? by Christian Schmidt On the search for interesting ideas I was thinking about John Lewis' Rusty which I found on Koenigstuhl's infinite 94nop hill. ;redcode ;author John Lewis ;name Rusty ;strategy Quickly scan and find nothing ;strategy then jump to a new location and ;strategy try to catch the other program ;strategy un-awares. When this doesn't ;strategy work, twiddle your thumbs until ;strategy your opponets finds and kills you. ;assert 1 sight add #5937,#0 jmz.a -1,@sight add #-14,sight mov ptr mov.i @1,>ptr djn.b -2,{start burger dat 2301,0 It scans until it finds something and boot a clear 14 instructions ahead of the scanned locations. The idea behind this warrior is quite fascinating. If fighting against a paper the safest place should be very close to the paper copies. This is especially true against papers with good spreading constants (eg. highly optimized paper). Based on Lewis' idea I started creating my own warrior. As a coreclear I choose the one from David Moore's Forgotten Scanner, because this one is able to beat paper/imps well. A .8c scan seems to work best for this kind strategy. For the constant optimization I was using optiMAX with the following settings: ;optimax 1234 ;optimax work leap ;optimax rounds 1 100 200 200 ;optimax suite fsh94nop0.2 ;optimax phase2 fsh94nop0.2/pap/yorba.red ;optimax phase2 80% ;optimax phase3 top20 ;optimax phase3 sbi:pap ;optimax phase3 120 ;optimax phase4 top20 ;optimax phase4 100% Finally I got the following warrior: ;redcode-94nop ;name Leap in the Dark ;author Christian Schmidt ;strategy my first attempt to rediscover ;strategy a forgotten strategy for 94nop ;assert 1 ;optimax clr sOff equ 3507 sStep equ 1605 sGo add.f sTab, sLook sne *sLook, @sLook add.f sTab, sLook sLook sne sOff+10, sOff djn.f sGo, <6431 add.ab #-15, sLook mov gate mov jumper, }gate switch djn clear+1, {clear burger dat 0, 0 end It scores surprisingly well against most of the strategies but has its strength against papers and paper/imps. Interesting to mention is the fact it has some problems with coreclear papers. Here are some impressive scores against selected warriors: Name W% L% T% Leap score ========================================================== Disincentive 76.00 13.50 10.50 238.50 nPaper II 71.00 19.00 10.00 222.00 Lord of the imp-rings II 70.00 19.00 11.00 221.00 Digitalis2003 61.00 24.50 14.50 197.50 RotF Copy 53.00 13.00 34.00 193.00 Armadillo 48.50 35.00 16.50 162.00 Ironic Imps 47.50 34.00 18.50 161.00 Roy van Rijn added a quickscanner to the above warrior and nicely re-optimized it. Finally we send it again to the hill under the name Bottomless Pit: ;redcode-94nop ;name Bottomless Pit ;author Roy/Fizmo ;strategy The pit was found after a leap in the dark ;assert 1 zero equ qbomb qtab3 equ qbomb qbomb dat >qoff , >qc2 dat 0 , 0 dat 0 , gate mov jumper, }gate switch djn clear+1, {clear burger dat 0, 0 dat 0, 0 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 , ptr mov @bptr, >ptr bptr djn.f wipe, {sbmb end sGo+1 A different approach is shown below. To increase the scores against scanners I changed from a .8c scanning to a bombing/scanning loop. The booting part has to be smaller in this case to give reasonable results. ;redcode-94nop ;name Attacker in the Darkness ;author Christian Schmidt ;strategy bomb -> dodge -> clear ;strategy sequential running strategy ;assert 1 ;url http://www.corewar.info sOff1 equ 4208 sOff2 equ 4064 sStep1 equ 3003 sStep2 equ 105 add.f sTab, sScan sScan mov.i }sOff1, sOff2 jmz.f -2, {sScan sub.a #15, sScan mov.i gate mov jumper, }gate switch djn clear+1, {clear end sScan I hope I was able to show some new aspects of using a more intelligent boot. _______________________________________________________________________________ Core Warrior was established by our founding editors Beppe Bezzi and Myer R Bremer. Later issues have been produced under the editorship of Maurizio Vittuari, Anton Marsden, Christian Schmidt, Philip Kendall, John Metcalf and German Labarga. Questions? Concerns? Comments? Complaints? Mail them to people who care. Christian Schmidt , German Labarga and John Metcalf