From news-rocq.inria.fr!jussieu.fr!fu-berlin.de!news.maxwell.syr.edu!newsfeed.internetmci.com!194.87.0.28!demos!news1.spb.su!newsfeed1.funet.fi!128.214.205.17.MISMATCH!news.helsinki.fi!karhu.Helsinki.FI!jpihlaja Mon May 4 11:25:22 1998 Article: 8946 of rec.games.corewar Path: news-rocq.inria.fr!jussieu.fr!fu-berlin.de!news.maxwell.syr.edu!newsfeed.internetmci.com!194.87.0.28!demos!news1.spb.su!newsfeed1.funet.fi!128.214.205.17.MISMATCH!news.helsinki.fi!karhu.Helsinki.FI!jpihlaja From: M Joonas Pihlaja Newsgroups: rec.games.corewar Subject: Beginner Warriors Date: Sun, 3 May 1998 20:21:52 +0300 Organization: University of Helsinki Lines: 248 Message-ID: NNTP-Posting-Host: karhu.helsinki.fi Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Sender: jpihlaja@karhu.Helsinki.FI I'm posting my on the hills warriors in the order I wrote them. Here are two of my warriors as they are on the -b hill. Torn is another Tornado 3.0 derivative. The main differences are that it boots (rather slowly) instead of using a decoy maker, and that the bombing pattern is, according to mopt, more optimal. I think that the end result is much more prone to Qscans and oneshots than the original due to the decoy taking up all of the free space. The decoy ends up being rather counter productive here. Fortunately, there don't seem to be too many Qscans on the hill. Beescan is a backward scanning oneshot/stone with an spl-dat backward clear. The name is a bit misleading since it's not a B-scanner, and was originally supposed to mean that it is a Bomber/Scanner. The scanning/dat-bombing part is the most interesting part of the warrior. I found it in an old post of HeremII by Anders Ivner. He later(?) used something similar in the enormously popular Killer Instinct ;) It works both as a .33c stone and a .66c cmp scanner, which isn't fooled by reflections. Backwards clearing doesn't go too well with imps but it surprises many forward clears. The scanner is largish and quite sensitive to dat bombing. I use a scanning step of -14 which is perhaps a bit too large to catch important code that the clear will miss, since it does it's thing backwards. Martti J. Pihlaja ;redcode-b verbose ;name Torn ;author M. J. Pihlaja ;strategy .6c bomber -> core clear ;strategy ;strategy ;assert CORESIZE == 8000 DECOY equ 1 DATALEN equ 38 ;;; front decoy for DECOY _dl _dc for ((MAXLENGTH-DATALEN)/2)/11-1 stp #_dl , #1 spl #1 , $1 spl #1 , @1 stp #_dl , #2 spl #1 , <1 spl #1 , >1 spl #1 , {1 spl #1 , }1 spl.x #_dl , #1 spl.x #1 , $1 stp #1 , @1 rof spl #0 , #0 rof ; DECOY ;;; boot ; distances BOOTDIST equ 3251 ; rel. to boot CLDIST equ (-35-7-1) ; rel. to bomber INCRDIST equ 84 ; rel. to bomber MVDIST equ 100 ; rel. to bomber ; destinations bdst equ (boot+BOOTDIST) cldst equ (bdst+CLDIST) indst equ (bdst+INCRDIST) mvdst equ (bdst+MVDIST) boot: pbdst mov.i pindst ; jump to bomber and kill boot pointers pbsrc spl @pbdst , bomber+7 mov.i incr , pbdst mov.i incr , pcldst mov.i incr , pmvdst pclsrc pcldst dat.f #cldst+7, #clr+7 pmvdst pindst dat.f #mvdst , #indst ;;; clear ; the booting distance must be chosen so that ; the clear will overwrite the decoy before ; our djn stream gets to it. clr: gate dat -100 , 100 dat <-10 , <2667 ; anti imp bit dat -4000 , clptr-gate+2 clear spl #-3000 , clptr-gate+2 ; hit by spl mov @clptr , >gate mov @clptr , >gate clptr djn.b clear+1 , {clear ;;; bomber ; distance from the bomber to clptr is 35 words N equ 7 step equ (1295/N) djnoff equ -2205 ; step=185=1295/N, N=7, incr: N*step,N*step is 1295,1295 ; mov.i @(2*step+bombs+offset),*(step+bombs+offset) ; offset, cycles, left, ; 95, 2231, 77769 ; 180, 2043 77957 ; 325, 2199, 77801 ; 385, 2539, 77461 ; 530, 2694, 77306 ; 675, 2854, 77146 ; 680, 3064, 76939 ; 685, 4241, 75759 ; 700, 2324, 77676 ; 735, 3188, 76812 ; 1520, 4303, 75696 ; 2005, 3719, 76281 ; 2525, 3998, 76002 ; offset equ 385 bomber: sbmb spl #-2*step+5*10, step+1 ; hit by spl sub.f bomber+INCRDIST,@bmbs stone mov.i @(2*step+offset+sbmb),*(step+offset+sbmb) mov.i bomber+MVDIST, *stone bmbs mov.i sbmb , @stone djn.f sbmb+1 , {djnoff ; hit by spl jmp bomber+CLDIST+3,<-2064 incr dat {N*step , -step ;;; tail decoy for DECOY for (MAXLENGTH-CURLINE)/11 spl #_dl , #1 spl #1 , $1 spl #1 , @1 spl #1 , *1 spl #_dl , <1 spl #1 , >1 spl #1 , {1 spl #_dl , }1 spl.x #1 , #1 spl.x #1 , $1 spl.x #1 , @1 rof for MAXLENGTH-CURLINE-1 spl #1 , _dl rof spl #0 , #0 rof ; DECOY end boot ;redcode-b verbose ;name Beescan ;author M. J. Pihlaja ;strategy oneshot/stone -> clear ;strategy fixed a feature ;kill Beescan ;assert 1 STEP equ (step-3-ptr) FIRST equ (-14+2+STEP*125) dat 0 , 4000 dat