From news-rocq.inria.fr!jussieu.fr!newsfeed.eerie.fr!news-raspail.gip.net!news-peer.gip.net!news.gsl.net!gip.net!news.new-york.net!news.voicenet.com!nntp.upenn.edu!msunews!mooredav Wed Jan 7 11:41:09 1998 Article: 8129 of rec.games.corewar Path: news-rocq.inria.fr!jussieu.fr!newsfeed.eerie.fr!news-raspail.gip.net!news-peer.gip.net!news.gsl.net!gip.net!news.new-york.net!news.voicenet.com!nntp.upenn.edu!msunews!mooredav From: mooredav@cps.msu.edu (David Matthew Moore) Newsgroups: rec.games.corewar Subject: Tempest Date: 7 Jan 1998 00:10:24 GMT Organization: Michigan State University Lines: 84 Message-ID: <68uh5g$6u7$2@msunews.cl.msu.edu> NNTP-Posting-Host: komodo.cps.msu.edu X-Newsreader: TIN [version 1.2 PL2] X-MD5: bb5b07974eba7d72cb133d4ee7589f50 Tempest is the most recent addition to the limited process hill. Who would have thought that paper would be so useful in the LP environment? This particular warrior dedicates 4 processes to a stone and 4 to a paper. The stone component is just 3 lines long, including pointers. It keeps bombing every location mod-2 indefinitely. Note how the 4 processes of the stone execute the loop in the correct order: Turn: 1 2 3 4 1 -------------------------------------------- ADD 14 4 4 34 3 MOV 2 12 1 1 14 JMP 3 3 23 2 2 The result: ADD MOV JMP ADD MOV JMP... In general, you can simulate single-process execution of a loop of size n if you have k*n+1 processes running as described above (k is any integer). You could even simulate backwards execution if you have k*n-1 processes. This works in any standard but it will be particularly important for the Limited Process world since the traditional self-splitting loop can lead to starvation quickly: SPL #0, 0 ; This warrior becomes vulnerable to a single hit MOV @0, <-2 ; after its process limit is reached. The technique JMP -1, 0 ; for improving endurance doesn't work for long in LP. Do you see why the LP environment favors multipart and hybrid warriors? Anyway, here is the code for Tempest -- I unscrambled the boot code and changed a few numbers. ;redcode-lp ;name Tempest ;author David Moore ;assert MAXPROCESSES==8 ;strategy 4 process stone ;strategy 4 paper boots equ -801 incr equ 2946 time equ 3980 p1 mov #6, #0 mov <-1, <3 jmn -1, @-2 spl @-3, <2151 jmz.b @0, 3039 dat {1, <1 for 38 dat 0,0 rof stone add.f 2, 1 mov > 0+(2*time), 0-(incr*time) jmp -2,