From news-rocq!jussieu.fr!pasteur.fr!oleane!freenix!news-feed.riddles.org.uk!newsfeed.direct.ca!newspeer.monmouth.com!nntp2.deja.com!nnrp1.deja.com!not-for-mail Fri Jul 30 20:11:13 1999 Article: 10477 of rec.games.corewar Path: news-rocq!jussieu.fr!pasteur.fr!oleane!freenix!news-feed.riddles.org.uk!newsfeed.direct.ca!newspeer.monmouth.com!nntp2.deja.com!nnrp1.deja.com!not-for-mail From: Ben Ford Newsgroups: rec.games.corewar Subject: 0.66c WingShot Date: Fri, 30 Jul 1999 14:50:10 GMT Organization: Deja.com - Share what you know. Learn what you don't. Lines: 56 Message-ID: <7nse2u$h40$1@nnrp1.deja.com> NNTP-Posting-Host: 207.170.76.162 X-Article-Creation-Date: Fri Jul 30 14:50:10 1999 GMT X-Http-User-Agent: Mozilla/4.5 [en] (WinNT; U) X-Http-Proxy: 1.0 x34.deja.com:80 (Squid/1.1.22) for client 207.170.76.162 X-MyDeja-Info: XMYDJUIDbenford Xref: news-rocq rec.games.corewar:10477 Here is my 0.66c version of WingShot. It doesn't score much differently than the 0.8c version. Its one instruction smaller and has slightly better seperation between scan locations. In theory the step size of this version should be able to be modified to a better multiple of 10 but my tests show it scoring worse whenever I try it. I belive the biggest improvements WingShot made over BiShot was the the slight off-axis scanning and using a djn to automatically go into the coreclear if nothing is found after two passes through the core. A couple of other improvements are to be found in the code if you care to look for them. This version of WingShot is on the big (size 55440) hill at koth.org. For some reason it scored several points higher than the 0.8c version there. -Ben ;redcode-94 ;name WingShot 0.66 ;author Ben Ford ;strategy 0.66c BiShot-style oneshot ;assert !(CORESIZE%10) && (MAXLENGTH>=20) start equ oscn oinc equ 10 oset equ (10*((MAXLENGTH+MINDISTANCE)/10)+1) odif equ (10*(CORESIZE/20)) otic equ (CORESIZE/10) ofnd add.f oadd, optr oscn sne.i *optr, @optr djn ofnd, #otic djn.f ospl, @oscn oadd dat #oinc, #oinc for 10*((MAXLENGTH-20)/10) dat 0, 0 rof dat 0, 0 ; scanned hi dat 0, 0 dat 0, 0 optr spl {oset, >odif+oset-4 dat 0, 0 ; scanned lo dat {10, >odif ospl spl #10, <-MINDISTANCE oclr mov ospl, }optr mov ospl, >optr obmb djn.a oclr,