From news-rocq.inria.fr!jussieu.fr!oleane!newsfeed.nacamar.de!nntp.news.xara.net!xara.net!server6.netnews.ja.net!server4.netnews.ja.net!server2.netnews.ja.net!pegasus.csx.cam.ac.uk!lyra.csx.cam.ac.uk!hammer.thor.cam.ac.uk!pak21 Sat Jun 13 14:31:04 1998 Article: 9163 of rec.games.corewar Path: news-rocq.inria.fr!jussieu.fr!oleane!newsfeed.nacamar.de!nntp.news.xara.net!xara.net!server6.netnews.ja.net!server4.netnews.ja.net!server2.netnews.ja.net!pegasus.csx.cam.ac.uk!lyra.csx.cam.ac.uk!hammer.thor.cam.ac.uk!pak21 From: Philip Kendall Newsgroups: rec.games.corewar Subject: Core Warrior 68 (repost) Date: Sat, 13 Jun 1998 10:16:39 +0100 Organization: University of Cambridge, England Lines: 738 Sender: pak21@hammer.thor.cam.ac.uk Message-ID: NNTP-Posting-Host: hammer.thor.cam.ac.uk Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII To: Damien Doligez [Reposting as this doesn't appear to have propogated properly around Usenet; apologies if you've now seen this twice -- Philip Kendall] .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 68 9 June, 1998 _______________________________________________________________________________ Core Warrior is a newsletter promoting the game of corewar. Emphasis is placed on the most active hills--currently the '94 draft hill and the beginner hill. Coverage will follow where ever the action is. If you have no clue what I'm talking about then check out these five-star internet locals for more information: FAQs are available from: ftp://rtfm.mit.edu/pub/usenet/news.answers/games/corewar-faq.Z http://www.koth.org/corewar-faq.html FTP site is: ftp://ftp.csua.berkeley.edu/pub/corewar Mirrored at: ftp://ftp.inria.fr/INRIA/Projects/para/doligez/cw/mirror and: ftp://www.koth.org/corewar pMARS itself is also available from: Stormking web pages--http://www.koth.org/pmars.html Terry's web page--http://www.ncs.infi.net/~wtnewton/corewar/ Fechter ftp site--ftp://members.aol.com/ofechner/corewar Web pages are at: http://www.koth.org/ ;Stormking http://www.ecst.csuchico.edu/~pizza/koth ;Pizza http://pauillac.inria.fr/~doligez/corewar/ ;Planar Newbies should check the stormking page for the FAQ, language specification, guides, and tutorials. Post questions to rec.games.corewar. All new players are infinitely welcome! A collection of Bezzi's hints in the first issues is available at: ftp://ftp.volftp.vol.it/pub/pc/msdos/games/solutions/bbhints.zip _______________________________________________________________________________ Welcome back. In this issue, you can find a summary of my exploits in Ilmari Karonen's recent Tournament, and how I went about writing the warriors I used in that Tournament, as well as David Moore's once-almost-unkillable `The Fugitive'. -- Philip Kendall _______________________________________________________________________________ Current Status of the Internet Pizza Server ICWS '94 Draft Hill: Hill Specs: coresize: 8000 max. processes: 8000 duration: after 80,000 cycles, a tie is declared. max. entry length: 100 minimum distance: 100 rounds fought: 200 instruction set: ICWS '94 Draft # %W / %L / %T Name Author Score Age 1 39.4/ 37.0/ 23.7 Recycled Bits++ David Moore 141.8 3 2 34.2/ 28.0/ 37.8 Vain Ian Oversby 140.4 80 3 35.2/ 30.6/ 34.2 Fixed Ken Espiritu 139.8 64 4 34.4/ 30.0/ 35.5 Vigor Ken Espiritu 138.9 68 5 33.1/ 28.4/ 38.5 Shadow Christian Schmidt 137.9 4 6 31.4/ 25.0/ 43.7 Ultraviolet-B Ken Espiritu 137.7 90 7 31.1/ 26.6/ 42.3 Newt Ian Oversby 135.7 158 8 31.3/ 27.5/ 41.2 Tuesday Afternoon John K W 135.1 8 9 34.5/ 34.7/ 30.7 Shape Christian Schmidt 134.4 5 10 40.3/ 46.4/ 13.3 Silccon M. J. Pihlaja 134.2 22 11 34.0/ 33.9/ 32.1 Fire and Ice David Moore 134.1 53 12 36.2/ 38.6/ 25.2 The Body Guard Ian Oversby 133.9 7 13 36.3/ 38.7/ 25.1 He Scans a Little Crooked P.Kline 133.9 0 14 35.7/ 37.9/ 26.4 Floody River P.Kline 133.6 1 15 32.7/ 32.1/ 35.2 Alien Christian Schmidt 133.3 13 16 32.0/ 32.6/ 35.4 Pulp v0.4 Ian Oversby 131.5 2 17 37.4/ 43.5/ 19.1 Blurstone M. J. Pihlaja 131.3 4 18 25.1/ 19.2/ 55.7 Fugitive David Moore 130.9 34 19 35.1/ 39.5/ 25.4 BiShot Christian Schmidt 130.8 24 20 35.8/ 41.3/ 22.9 Eraser Ken Espiritu 130.4 5 21 33.7/ 37.2/ 29.1 Digitalis 4 Christian Schmidt 130.2 52 22 36.2/ 43.0/ 20.7 Electric Head 2 Anton Marsden 129.4 8 23 24.0/ 19.6/ 56.4 Return Of Return Of The J John K W 128.5 30 24 27.9/ 28.6/ 43.5 Gemini Dream John K Wilkinson 127.3 9 25 30.0/ 34.2/ 35.8 obvious to those who know Robert Macrae 125.8 116 Age since last issue: 7 ( 34 last issue, 11 the issue before ) New warriors: 9 Turnover/age rate 129% Average age: 34 ( 32 last issue, 34 the issue before ) Average score: 134 ( 133 last issue, 135 the issue before ) The top 25 warriors are represented by just 9 independent authors: Schmidt with 5, Oversby and Espiritu with 4, Wilkinson and Moore with 3, Pihlaja and Kline with 2, and Marsden and Macrae with one each. It was a battle of the papers at the beginning, before David Moore hit the top again with Recycled Bits++ _______________________________________________________________________________ 94 - What's New # %W / %L / %T Name Author Score Age 8 37.8/ 38.3/ 23.9 The Body Guard Ian Oversby 137.2 0 19 35.5/ 40.9/ 23.6 Eraser Ken Espiritu 130.2 0 5 35.7/ 34.2/ 30.1 Shape Christian Schmidt 137.1 0 10 38.8/ 42.9/ 18.3 Blurstone M. J. Pihlaja 134.8 0 4 33.3/ 28.3/ 38.4 Shadow Christian Schmidt 138.3 0 1 40.7/ 35.7/ 23.6 Recycled Bits++ David Moore 145.7 1 18 30.9/ 31.3/ 37.7 Pulp v0.4 Ian Oversby 130.5 1 8 36.4/ 37.5/ 26.1 Floody River P.Kline 135.2 1 13 36.3/ 38.7/ 25.1 He Scans a Little Crooked P.Kline 133.9 0 David Moore is back with his new pspacer to regain the KotH spot. _______________________________________________________________________________ 94 - What's No More # %W / %L / %T Name Author Score Age 26 1.3/ 1.4/ 1.3 The Body Guard Ian Oversby 5.2 14 26 1.7/ 1.8/ 0.4 hTest 80 P.Kline 5.6 0 26 30.1/ 38.2/ 31.7 Vixen Robert Hale 122.0 2 26 33.7/ 44.8/ 21.5 One or Zero Sayembara 122.5 5 26 1.5/ 2.0/ 0.6 Scanitator Pro Christian Schmidt 5.0 3 26 30.7/ 37.4/ 31.9 Tornado 4 Beppe Bezzi 124.1 78 26 1.3/ 1.6/ 1.1 Sphere Christian Schmidt 5.1 9 26 27.2/ 29.7/ 43.1 Indecisive Robert Hale 124.6 12 26 34.7/ 44.0/ 21.3 )(( Ca*mou*flage ))( Sayembara 125.3 14 The only significant loss here is Beppe's Tornado 4. _______________________________________________________________________________ 94 - What's Old # %W / %L / %T Name Author Score Age 7 31.1/ 26.6/ 42.3 Newt Ian Oversby 135.7 158 25 30.0/ 34.2/ 35.8 obvious to those who know Robert Macrae 125.8 116 6 31.4/ 25.0/ 43.7 Ultraviolet-B Ken Espiritu 137.7 90 Newt keeps on going, whilst obvious may well not be around for the next edition of Core Warrior. _______________________________________________________________________________ OLD HALL OF FAME * means the warrior is still active. Pos Name Author Age Strategy 1 Thermite II Robert Macrae 2262 Qscan -> bomber 2 Impfinity v4g1 Planar 1993 Stone/ imp 3 Jack in the box Beppe Bezzi 1620 P-warrior 4 Tornado 3.0 Beppe Bezzi 1567 Bomber 5 Torch t18 P.Kline 1539 Bomber 6 Chameleon Myer R Bremer 1437 P-warrior 7 Frontwards v2 Steven Morrell 1420 One shot scanner 8 Evol Cap 6.6 John Wilkinson 1299 Imp / stone 9 quiz Schitzo 1262 Scanner/ bomber 10 T.N.T. Maurizio Vittuari 1204 Bomber 11 Grilled Octopus v0.5 David Boeren 1154 P-warrior 12 Hazy Shade II John Wilkinson 1102 P-warrior 13 Stepping Stone Kurt Franke 1049 Qscan -> Vampire 14 Rosebud Beppe Bezzi 993 Stone/ imp 15 Iron Gate 1.5 Wayne Sheppard 926 CMP scanner 16 T.N.T. pro Maurizio Vittuari 925 Bomber 17 Agony II Stefan Strack 912 CMP scanner 18 Barrage Anton Marsden 876 Qscan -> replicator 19 Blue Funk Steven Morrell 869 Stone/ imp 20 Flurry Anton Marsden 835 Qscan -> pwarrior 21 Thermite 1.0 Robert Macrae 802 Qscan -> bomber 22 Blue Funk 3 Steven Morrell 766 Stone/ imp 23 Night Train Karl Lewin 755 Replicator 24 Mirage 1.5 Anton Marsden 736 Scanner/ bomber 25 Blizzard Anton Marsden 713 Qscan -> replicator _______________________________________________________________________________ NEW HALL OF FAME * means the warrior is still active. Pos Name Author Age Strategy 1 Probe Anton Marsden 403 Q^2 -> Bomber 2 Blur 2 Anton Marsden 396 Scanner 3 Damage Incorporated Anton Marsden 373 Q^2 -> Bomber 4 Return Of The Jedimp John K W 357 Q^2 -> Stone/imp 5 unrequited love kafka 346 Q^2 -> Paper 6 Impish v0.2 Ian Oversby 345 Stone/imp 7 Gigolo Core Warrior staff 332 Q^2 -> Stone/imp 8 Falcon v0.3 Ian Oversby 275 P-warrior 9 Nine Seven Six M R Bremer 232 Q^2 -> Stone/imp 10 Rosebud Beppe 218 Stone/imp 11 Q^2 Miro Anders Ivner 214 Q^2 -> Scanner/bomber 12 Instant Wolf 3.4 Edgar 205 P-warrior 13 Goldfinch P.Kline 201 P-warrior 14 Simple v0.4b Ian Oversby 197 QScan -> Stone/imp 15 Trident^2 John K W 195 Q^2 -> Stone/imp 16 ompega Steven Morrell 189 Stone/imp 17 Frogz Franz 172 Q^2 -> Paper 18 The Machine Anton Marsden 164 Scanner 19 Newt Ian Oversby 158 * Q^2 -> Stone/imp 20 Memories Beppe 152 Scanner 21 Head or Tail Christian Schmidt 142 Q^2 -> Paper 22 Electric Head Anton Marsden 140 P-warrior 23 Tiberius 3.1 Franz 130 Q^2 -> Paper 24= Solomon v0.8 Ian Oversby 116 Stone and scanner 24= obvious to those who k Robert Macrae 116 Q^2 -> Paper Newt climbs another place to 19th, whilst obvious fights its way onto the bottom of the Hill, displacing Franz's CC Paper 3.3 _______________________________________________________________________________ Current Status of the Internet Pizza Server Beginner's Hill: Hill Specs: coresize: 8000 max. processes: 8000 duration: after 80,000 cycles, a tie is declared. max. entry length: 100 minimum distance: 100 maximum age: At age 100, warriors are retired. rounds fought: 200 instruction set: ICWS '94 Draft Last challenge: Fri May 15 00:16:19 PDT 1998 # %W / %L / %T Name Author Score Age 1 55.2/ 18.1/ 26.7 March 0.93c Csaba Biro 192.2 85 2 55.3/ 28.3/ 16.5 Rusty John Lewis 182.3 38 3 54.8/ 30.4/ 14.8 WannaChatInWarriorNames? John Metcalf 179.2 47 4 54.9/ 33.0/ 12.1 Minge VIII Simon Wainwright 176.7 4 5 49.0/ 28.4/ 22.6 Fook Max Misch 169.6 10 6 49.6/ 33.6/ 16.8 One Step Beyond John Metcalf 165.5 13 7 47.6/ 29.8/ 22.6 Fook Max Misch 165.4 6 8 45.8/ 34.0/ 20.2 Enceladus v5 Ryan Coleman 157.6 63 9 47.8/ 44.2/ 8.0 Ghost Train John Metcalf 151.3 2 10 45.6/ 42.6/ 11.8 Sleepy Warrior John Metcalf 148.6 46 11 43.4/ 38.7/ 17.9 Death kiss Anders Rosendal 148.2 94 12 36.5/ 28.9/ 34.6 Cascade 6 Steve Gunnell 144.1 24 13 39.3/ 43.6/ 17.2 delta Peter Andrewartha 134.9 3 14 38.3/ 42.7/ 19.0 Twinkle John Metcalf 133.8 44 15 38.7/ 47.5/ 13.8 Fire-master 3 P._V._K. 129.9 1 16 34.8/ 41.4/ 23.9 Sachinhamirwasia Sapan Bhatia 128.2 51 17 38.2/ 50.6/ 11.2 NewClear 5 Ryan Coleman 125.9 14 18 35.8/ 50.5/ 13.6 Brimstone John Metcalf 121.2 37 19 30.3/ 48.3/ 21.5 Sachinhamirwasia ver 2 Sapan Bhatia 112.3 53 20 35.4/ 59.4/ 5.2 Oscck John Metcalf 111.3 5 21 14.1/ 16.9/ 69.0 DJ85 Peter Andrewartha 111.2 18 22 28.6/ 49.5/ 21.9 KB15 Peter Anrewartha 107.7 7 23 26.5/ 47.4/ 26.2 QUIRK Mwolak 105.6 25 24 31.9/ 65.0/ 3.1 Splat Paul Crook 98.8 36 25 24.1/ 57.2/ 18.6 Fleapit Steve Gunnell 91.0 9 _______________________________________________________________________________ The Hint - How to win Ilmari's Tournament Ilmari Karonen recently ran a tournament, based around Round 4 of the Redcode Maniacs Tournament (see http://www.geocities.com/SiliconValley/Park/5427/maniacs.htm for details of this), and the classic `Prisoner's Dilemma' problem. Basically, the idea was to design a p-switcher switching between Carbonite (a stone) and TimeScape (a paper). One thing which made the Tournament different from the normal Hill was that it was not just a straight all-fights-all; after all the fights had been completed, the worst warriors were removed, and the remaining warriors fought again. The winner was the last warrior standing :-) Full details can be found on the Tournament Web pages: http://www.sci.fi/~iltzu/corewar/imt1/ The first thing I realised about this tournament was that the strategy needed was rather different to normal Hill fights: on the Hill, to get a good result, you need to score well against all warriors, both good and bad, whilst in IMT1, the worse warriors will get removed from the running, so a successful warrior will have to do well against other good warriors, with the scores against the weaker warriors not mattering too much. A good example of this is TimeScape: against simple warriors which run Carbonite a lot, this does very well, but it is not a successful warrior in the Tournament (as can be seen from the results). The next question is how to determine what is a good warrior, using the currently available tools. mts appears to be along the right lines, but this doesn't store the results of each individual battle, only the total scores, so determining the new scores after the bottom n warriors have been removed would require re-running all the battles, which would take a lot of runtime (and all this was being doing on what was supposedly the undergraduate teaching Unix box at university :-) ), so I ended up writing a program to do this job: it isn't quite the same as the Tournament in that only 1 warrior is removed every time, rather than being removed it batches as happened in the Tournament, but it is quite close. If anyone's interested, I've put the ANSI C source code up on my web pages, at http://www.geocities.com/SiliconValley/Park/5427/ilmari.html. At this stage, some more thinking about the tournament took place, and it became obvious that the strategy for a successful warrior would be to split wins as much as possible with the opposition, as this would score an average of 1.5 points per round, as opposed to the 1 point per round which is very easily obtained by both parties running TimeScape every round. Therefore a successful warrior will be scoring around 150 points per 100 rounds, at least against other successful warriors. Enough thinking, time for some practice: testing revealed that the Carbonite after win, TimeScape after loss or tie warrior (DTfT) was the best of any of the standard warriors given by Ilmari, and a few more simple and not-so-simple switchers thrown in my me. DTfT has a great strength in that it is virtually impossible to beat in a 1-on-1 fight (the only way to gain a decisive victory is to run TimeScape a lot, and DTfT very quickly starts throwing TimeScape back when fighting an opponent which does that). Also, it likes to cooperate with an opponent: if it wins a round, it runs Carbonite in the next round, thus giving the other warrior a chance for a win. Self-fights are also very important in the Tournament (in the final round, involving 3 warriors, half your score comes from the self-fight). At first glance it appears that DTfT should be good in a self-fight, as both copies will run Carbonite in the first round, and then alternation will occur between Carbonite-TimeScape and TimeScape-Carbonite states, giving a win for one copy or other in every round, and therefore a perfect score in the self-fight. However, TimeScape beats Carbonite only around 90% of the time, and after one tie, the warrior drops into the low-scoring TimeScape-TimeScape state, and stays there. To solve this problem, I changed from the very simple switcher used in DTfT to a P^2 switcher which still selected Carbonite after a win and TimeScape after a loss (no matter what the previous state), but ran the same warrior again after a tie. This doesn't make the warrior significantly easier to beat, but does mean it gets a much better score in self-fights, and is also less likely to get stuck into a TimeScape-TimeScape state when fighting other cooperative warriors. This makes the self-fight score much better, but still not perfect; I didn't do any detailed tests, but I think that it tends to drop around 10 points per 100 rounds in self-fight, which could be the difference between winning and losing. The first thing I tried was putting in a decoy which had all its b-fields pointing to just after Carbonite, so TimeScape's bombing line (mov.i {-FSTEP, Carbonite, loss -> Timescape, ;strategy tie as last round. Also with a couple of suicidial states ;strategy to ensure a perfect score in self-fights, a special first ;strategy round 'do nothing' loop to work out when we're fighting ;strategy ourself, and a decoy which points towards Carbonite to ;strategy reduce the number of ties. ;assert CORESIZE==8000 && MAXCYCLES==80000 for 49 dat.x 0,(carb+3) rof dbomb dat >-1, >1 carb spl #0, <-100 mov dbomb, tar-197*3500 tar add #197, -1 ; gets bombed to start coreclear djn.f -2, <-1151 for 8 ; must be followed by 8 dats dat.f 0,0 rof TSTEP equ 1800 CSTEP equ 3740 NSTEP equ -1922 FSTEP equ 1870 time spl 1, <-200 spl 1, <-300 mov.i -1, 0 tim1 spl @tim1, }TSTEP mov.i }tim1, >tim1 cel1 spl @cel1, }CSTEP mov.i }cel1, >cel1 mov.i {-FSTEP, NSTEP for 2 ; must be followed by 2 dats dat.f 0,0 rof pState equ 138 ; pspace location containing current state nStates equ 4 ; maximum number of states (for brainwash protection) ;NOTE: state values go from 0 to STATES-1 dat.f 0,init-state in dat.f 0,loss_t-state dat.f 0,win_t-state dat.f 0,tie_t-state think ldp.a #0,in ; get input value load ldp.a #pState,state ; load old state mod.a #nStates,state ; brainwash protection add.ba *in,state ; select correct state table store stp.a *state,load ; store new state state jmp.a @0 ; jump to warrior code init dat.f 0,first win_t dat.f 1,carb dat.f 1,carb dat.f 2,suicide dat.f 2,suicide tie_t dat.f 0,time dat.f 1,carb loss_t dat.f 0,time dat.f 0,time suicide dat.f 3,suicide dat.f 0,time first mov.ab #7996,count ; wait around for ~80000 cycles count djn.b 0,#0 djn.b first,#10 ; if we haven't lost yet, we're almost certainly fighting ; ourself, so enable the suicide routine mov.i (win_t+2),init jmp.a store end think _______________________________________________________________________________ Extra Extra - The Fugitive by David Moore Imp versus Gate. The final showdown of countless battles. What can our own imps do to survive? We find the secret to longevity in superior numbers! When imps run with 100s of processes they are so slow that they miss much of the core. If any one of them avoids the impending gate, then the battle is saved. That's the plan, but how can we accomplish it? In this article we improve upon the classic approach of launching from paper. In the past there have been two types of imp-launching paper: Die Hard, which copies an entire launcher with each silk, and theMystery1.5, which synchronizes three different copies of paper to make a single on-board imp work. The goal is to create a new kind of imp-launching paper that is more prolific than Die Hard but does not require the expensive binary launch code of theMystery. Sometime during the execution of the paper, we would like 3 of its copies to coincide to execute their 3 imp instructions in the same order and places that an imp ring would. spl 1, 0 ; generate 5 parallel processes mov -1, 0 mov -1, 0 paper spl @0, A ; 1 mov }-1, >-1 ; 2 spl @0, B ; 3 mov }-1, >-1 ; 4 imp mov.i #0, 2667 ; 5 We're looking for A and B such that the execution of an imp at location C will be followed by other imps at C+2667 and C+5334. The following diagram traces the execution of the paper. Each pair I,J represents the Ith instruction being executed at location J. Instructions in the same row execute in turn, with the leftmost instruction executing first. +---------+ | 1,0 | +---------+ / \ / \ +---------+ +---------+ | 2,1 | | 1,A | +---------+ +---------+ | / \ | / \ +---------+ +---------+ +---------+ | 3,2 | | 2,A+1 | | 1,A+A | +---------+ +---------+ +---------+ / | | | \ / | | | \ [cut] +---------+ +---------+ +---------+ [cut] | 3,B+2 | | 3,A+2 | | 2,A+A+1 | +---------+ +---------+ +---------+ / | | | | / | | | | [cut] +---------+ [cut] +---------+ +---------+ | 3,B+B+2 | | 3,A+B+2 | | 3,A+A+2 | +---------+ +---------+ +---------+ / | / | / | / | / | / | [cut] +---------+ [cut] +---------+ [cut] +---------+ | 4,B+B+3 | | 4,A+B+3 | | 4,A+A+3 | +---------+ +---------+ +---------+ | | | | | | +---------+ +---------+ +---------+ | 5,B+B+4 | | 5,A+B+4 | | 5,A+A+4 | +---------+ +---------+ +---------+ Since the 5th instruction (the imp) is executed 3 times in the last row, an imp ring is possible if for some C: B+B+4 = C A+B+4 = C + 2667 (2667 == (CORESIZE+1)/3) A+A+4 = C + 5334 Solving the system of equations yields: A = B + 2667 Therefore, the following paper can launch imp rings: B equ 2355 ; B can be almost any number spl 1, 0 ; start 5 parallel processes mov -1, 0 mov -1, 0 spl @0, B+2667 ; substituted a <- b+2667 mov }-1, >-1 spl @0, B mov }-1, >-1 mov.i #0, 2667 Some programs clear with DAT <2667, <5334 bombs. If they give you a hard time then you can use 7 point imps: ;redcode-94 ;name Seven Brothers ;author David Moore ;assert CORESIZE==8000 size equ 1143 c1 equ 2365 c2 equ 5715 start spl 1, 0 ; start 7 parallel processes spl 1, 0 mov -1, 0 paper spl @0, c1 mov }-1, >-1 spl @0, c2+size mov }-1, >-1 spl @0, c2 mov }-1, >-1 imp mov.i #1, size end Finally, the source code for The Fugitive, which uses a q^2 and paper with imps and anti-imp bombing: ;redcode-94 ;name The Fugitive ;author David Moore ;strategy qscan, silk, imps ;assert CORESIZE==8000 ;--------- ; q^2 scan ;--------- QB equ 1000 ; scan pattern QS equ 500 QI equ 250 qscan seq qscan+QB+(QS*0), qscan+QB+(QS*0)+QI jmp q0, 0 seq qscan+QB+(QS*3), qscan+QB+(QS*3)+QI jmp q1, 0 seq qscan+QB+(QS*6), qscan+QB+(QS*6)+QI jmp q1, {q1 seq qscan+QB+(QS*7), qscan+QB+(QS*7)+QI jmp q1, }q1 seq qscan+QB+(QS*1), qscan+QB+(QS*1)+QI djn.a q2, >q1 seq qscan+QB+(QS*2), qscan+QB+(QS*2)+QI jmp q2, >q1 seq qscan+QB+(QS*4), qscan+QB+(QS*4)+QI jmp q2, {q2 seq qscan+QB+(QS*5), qscan+QB+(QS*5)+QI jmp q2, 0 seq qscan+QB+(QS*8), qscan+QB+(QS*8)+QI jmp q2, {q1 seq qscan+QB+(QS*9), qscan+QB+(QS*9)+QI jmp q2, }q1 seq qscan+QB+(QS*10), qscan+QB+(QS*10)+QI jmp q2, }q2 jmp pboot, >393 ;----------- ; q^2 bomber ;----------- qb1 dat 23, 23 qb2 dat 1, 34 dat QS*1, QS*6 tab dat QS*2, QS*3 dat QS*7, QS*7 q2 add.ab tab, fwd q1 add.b tab, @-1 q0 sne @fwd, pboot-1 add #QI-2, @2 add.ba fwd, fwd mov qb2, *fwd mov qb2, @fwd fwd mov 88, @qscan+QB+(QS*0) sub qb1, @-3 djn -4, #5 jmp pboot, 0 for 48 dat 0,0 rof ;--------------- ; Silk with Imps ;--------------- impy equ 2667 c1 equ 3855 c2 equ 2355 c3 equ 831 c4 equ 4000 pboot spl 1, >7648 ; 8 processes spl 1, >7356 spl 1, >7212 mov <1, {1 ;optional spl paper+c4+8, paper+8 ;extra launcher paper spl @0, >c1 mov }-1, >-1 spl @0, >c2+impy mov }-1, >-1 spl @0, >c2 mov }-1, >-1 mov.i #1, {1 ; anti-imp bombing mov.i #c3, impy ; my imp (a-field is data) end qscan ____________________________________________________________________________ Questions? Concerns? Comments? Complaints? Mail them to people who care. Authors: Beppe Bezzi , Anton Marsden , Christian Schmidt and Philip Kendall