From corewar-l@stormking.com Wed Apr 17 02:06:27 1996 Received: by couchey.inria.fr (5.57/Ultrix3.0-C) id AA14876; Wed, 17 Apr 96 02:06:27 +0200 Received: from uu3.psi.com (uu3.psi.com [38.145.250.2]) by nez-perce.inria.fr (8.7.1/8.7.1) with SMTP id CAA09568 for ; Wed, 17 Apr 1996 02:05:25 +0200 (MET DST) Received: by uu3.psi.com (5.65b/4.0.940727-PSI/PSINet) via UUCP; id AA14330 for ; Tue, 16 Apr 96 15:38:06 -0400 Received: from (server@localhost [127.0.0.1]) by valhalla.stormking.com (8.6.12/8.6.12) with SMTP id SAA05062; Tue, 16 Apr 1996 18:31:53 -0400 Date: Tue, 16 Apr 1996 18:31:53 -0400 Message-Id: <4l0n4l$ooh@sparcserver.lrz-muenchen.de> Errors-To: tuc@stormking.com Reply-To: guenzel@extern.lrz-muenchen.de Originator: corewar-l@stormking.com Sender: corewar-l@stormking.com Precedence: bulk From: guenzel@extern.lrz-muenchen.de (Bjoern Guenzel) To: Multiple recipients of list Subject: why does 'why' lose???????? X-Listprocessor-Version: 6.0b -- ListProcessor by Anastasios Kotsikonas X-Comment: Usenet News "rec.games.corewar" Status: R Here is why, my first serious attempt to create a scanner (around 120 wilkies :-( ). I know already some of it's weaknesses, but there are some things I don't understand. It's main feature is that it uses a sne },} instead of a normal one (the effect was stronger in the 0.66c version, but 0.8c scores slightly better). In early tests this seemed to lead to a higher score, so I kept using it. It also seems reasonable for me, for I am producing a lot of decoy and I skip the enemys bombs, if I am lucky. On the other hand I should not skip the enemy too often, almost the only instructions I skip are the spl step,0 in papers or mov >x,y in the 'ministones' (against the latter I'll lose anyway as a scanner, so it doesn't matter :-( ). So far in theory. In practice I could not beat the papers properly (eg time something like W60 L90, marcia W80 L70), but more surprising I am losing against rave. I don't understand that, because I produce decoy, rave doesn't, and since rave throws many bombs, it takes a long time with each decoy. Can the difference really just be the step-rate? (Early versions scored about W60 L90, later with luck W80 L73). Only pswing succumbed to my strategy :-).At least I think it really helps a little against stones. Anyway, some things I learned while working on 'why', here are some small clues or assumptions (->comments?): A) Why does 'why lose against paper? -Guess: 'why' doesn't use a slt, which means it terminates after one 'scan-run'. Perhaps papers need some more runs, since they erase the incendary at times, and also because the more time has passed the more likely you hit a paper.. -when I changed the step rate to mod 10 and added a lot of spacing (in the 0.66c version I could do that), I gained a lot on stones, but lost against paper - I am not sure whether that's because of the steprate or because a wider spread warrior is more likely to be crushed by some fat paper... How about a Core Warrior hint about spacing, in case of shortage of ideas? B) My warrior contained 3 mov xbomb,@y lines, putting them at the end of my warrior gives an advantage against mov bomb,}xx bombing paper, as it doesn't kill me if my bombs are erased C)Notice my favourite switching technique, triggered from a jmp *ptr. It allows even selfmutating dat-bombers. The disadvantage is that it fails if the triggering bomb is hit by the enemy. D)dist 5 is too small, but the incendary failed for greater distances. It seems the whole concept is a dead end. Finally I tried to leave out the },} and the scores were better!? Now I don't like it anymore.... E) Why am I talking so much? You probably would have more fun Discovering these small things by yourself, and most of you already know? I am sorry, probably it's just because I am tired of losing again... :-) Does it interest anybody?? F) The name: 'why' scan when I don't know what to bomb ;redcode-b quiet ;name why ;author bjoern guenzel ;strategy I don't know what kind of bombs my scanner should throw???? ;strategy I decided for spl mov xxx xxx xxx jmp ;strategy 0.8c sne scan mod 10, dist 5,djn+inc ;P-class scan,clear ;assert CORESIZE==8000 ;release 3.4.96 shift equ 4000 dist equ 5 step equ 2930 ;mod 10 gate equ clptr-2*2667 org first+1 clptr dat -1,bptr+1 dat 0,0 ;x dat 0,0 ;x dat 0,0 ;jmp first add.f steps,@addptr sne *ptr,@ptr add.f steps,@addptr ptr sne.i }jptr+step,}jptr+step+dist jptr djn.f first,step ; mov *bptr,>clptr djn.f -1,{clptr dat 0,0 dat 0,0 ;jmp bptr dat #b1,}1 ; dat 0,0 ;x12 dat 0,0 ;x12 dat 0,0 ;x12 dat 0,0 ;spl sbomb spl #steps-jptr,#2 ;acts as switch to clear, keep separate dat 0,0 ;because vulneraple spot mvbomb mov -1,>-1 ; jmbomb jmp -dist,{1 end