From corewar-l@stormking.com Tue Jan 30 19:08:17 1996 Received: by couchey.inria.fr (5.57/Ultrix3.0-C) id AA21203; Tue, 30 Jan 96 19:08:17 +0100 Received: from valhalla.stormking.com (root@valhalla.stormking.com [204.141.14.1]) by nez-perce.inria.fr (8.7.1/8.7.1) with SMTP id TAA02204 for ; Tue, 30 Jan 1996 19:07:32 +0100 (MET) Received: from (server@localhost [127.0.0.1]) by valhalla.stormking.com (8.6.12/8.6.12) with SMTP id MAA19365; Tue, 30 Jan 1996 12:39:38 -0500 Date: Tue, 30 Jan 1996 12:39:38 -0500 Message-Id: Errors-To: tuc@stormking.com Reply-To: schitzo+@CMU.EDU Originator: corewar-l@stormking.com Sender: corewar-l@stormking.com Precedence: bulk From: Michael N Nonemacher To: Multiple recipients of list Subject: blister soul source X-Listprocessor-Version: 6.0b -- ListProcessor by Anastasios Kotsikonas X-Comment: Usenet News "rec.games.corewar" You might think one of my improvements to "quiz" would actually help the score, but you'd be wrong. Anyway, here's the source to my latest attempt to improve "quiz". blister soul is based on this 6-line 80% bomb/scan engine: a add.f inc, @2 mov.i j, *ptr mov.i j, @ptr ptr seq.i @FIRST, @FIRST+STEP sub.f half, ptr tr jmp a .. inc dat.f STEP*4, STEP*4 half dat.f STEP*2, STEP*2 j jmp cclear-tr, STEP The bombing could be changed to use Torch-style incendiary bombs, since there are always 2 bombs thrown at a time. I didn't try this one... Hmm... And I had to take out the "counting finds" feature of quiz, but I didn't realize just how much it would hurt. This eventually bombs the "jmp a" line, which causes the bomb/scan engine to jump into the coreclear. I figured with 6 lines, bombing and scanning at 80%, I should be able to at least improve on quiz, with 67% in 6 lines, but it didn't work out that way. It started out bombing/scanning at mod-10, so I think that's what the decoy and stuff are optimized for, but I later changed it to mod-8, and it didn't really change the score. It did introduce an interesting bug, tho - if my bombing pattern was such that I bombed the location after my coreclear, and if the djn ever fell thru in my coreclear, I'd jump into the spl-cleared section and settle for a tie. I eventually got around that by bombing the first instruction of the coreclear, and that worked out. But it never did as well as I thought it would. Oh, well. (oh, yeah. extra style points if you know where the name comes from...) Here's the source: ;redcode-94 ;name blister soul ;author schitzo ;strategy 80% bomber/scanner -> multi-pass coreclear ;strategy sorta trying an improvement on quiz... ;strategy fixed a small coreclear bug ;kill blister soul STEP EQU 168 ; mod-8 A EQU tr+STEP B EQU A+STEP C1 EQU (63+3) ; space between scan engine and coreclear C2 EQU (24) ; space between scan engine and inc, half, j BOOT EQU -3207 ; random boot distance org boot boot mov.i inc+2, @b mov.i a+5, {b mov.i a+4, {b mov.i a+3, {b mov.i a+2, {b mov.i a+1, {b mov.i a, {b b spl boot+BOOT+6, boot+BOOT+C2+8 mov.i cptr+6, *b2 mov.i cptr+5, {b2 mov.i cptr+4, {b2 mov.i cptr+3, {b2 mov.i cptr+2, {b2 mov.i cptr+1, {b2 mov.i cptr, {b2 b2 mov.i @boot+BOOT-C1-2+7, #0 mov.i inc+1, 2667 cclear spl #-300, >2667 mov.i @2, >cptr mov.i @1, >cptr djn.b -2, {cclear dat.f #1, 1 ;68 spaces in booted warrior dat.f 1, 1 dat.f @1, @1 a add.f inc+C2, @2 mov.i j+C2, *ptr mov.i j+C2, @ptr ptr seq.i @A, @B sub.f half+C2, @-2 tr jmp a ;20 spaces in booted warrior inc dat.f STEP*4, STEP*4 half dat.f STEP*2, STEP*2 j jmp cclear-tr-C1+9, STEP*2 ; big decoy removed. it's just a bunch of "dat 1, 1"s, all with different ; modifier combinations, except with every 8th instruction the same... or ; something like that...