From news-rocq.inria.fr!jussieu.fr!math.ohio-state.edu!cis.ohio-state.edu!nntp.sei.cmu.edu!bb3.andrew.cmu.edu!andrew.cmu.edu!mn2f+ Fri Dec 8 13:20:59 1995 Article: 3249 of rec.games.corewar Path: news-rocq.inria.fr!jussieu.fr!math.ohio-state.edu!cis.ohio-state.edu!nntp.sei.cmu.edu!bb3.andrew.cmu.edu!andrew.cmu.edu!mn2f+ From: Michael N Nonemacher Newsgroups: rec.games.corewar Subject: anything box Date: Thu, 7 Dec 1995 19:07:57 -0500 Organization: Junior, Math/Computer Science, Carnegie Mellon, Pittsburgh, PA Lines: 140 Message-ID: <8kls7RG00YUtF9hUls@andrew.cmu.edu> NNTP-Posting-Host: po8.andrew.cmu.edu Here's a warrior that I thought was a good idea, but in practice it didn't work out so well. I'm posting it just cause I ran out of ways to improve it, and I'm hoping someone else can get some good ideas (but not so good that they beat quiz... :) out of it, and just to give something else to test against. It's basically a 66%c bomber/Fscanner (with a scanning engine similar to quiz), that bombs with JMPs to a pit. It uses a bomb similar to SJ-4, i.e. it bombs with "JMP -56, -56" or something, then scans the location the bomb points to. If the scan detects something, it places a JMP to the pit there. As soon as an enemy process jumps into the pit, it forces the scanning module to jump to a multi-pass coreclear. Meanwhile, the pit grows processes and slowly clears core, so if the rest of my warrior is hit with spl-carpet or something, I should still win. Then, if the scanning module places N JMPs to the pit, it jumps to a replicator, plus a continuous, 7-point imp ring launcher. The idea is, the scanning module should take care of scanners, replicators should jump into the pit quickly enough to give my multi-pass coreclear a chance to kill 'em, and stones should create enough junk so the scanner jumps out to the replicator quickly. Unfortunately, it doesn't work that way. It performs ok against scanners, but stones tend to bomb the scanning module and/or the replicator code enough before the scanning module breaks out that the replicator doesn't get a chance to take care of 'em. And replicators are already out of control by the time I jump to the coreclear, so they often overrun my coreclear. I could lessen the value of N to help against stones and replicators, but then I jump out too quickly against scanners with decoys and djn-streams. *shrug* Oh, well. Oh, and Qscanners eat me alive, too. Booting each of the components might help, but that may take too long, too. Feel free to play around with this, experiment, whatever. Without further rambling... ;redcode-94 ;name anything box ;author schitzo ;strategy bomb/Fscan -> diehard-ish paper ;strategy bomb with JMPs to suicidal pit ;strategy if enemy jumps into pit, spl/spl/dat* coreclear ;strategy improved paper (more lethal, less die hard) ;strategy spread out more to thwart (q)scanners ;strategy made code harder to understand (that usually helps) ;assert CORESIZE==8000 ;kill anything box ; a hopefully improved version of "Drowning" ; bomb/scan, bomb with jumps to a pit ; pit will make lotsa processes, start a spl coreclear ; as soon as first enemy process enters pit, start a cool coreclear ; if N fangs placed, jump to paper ; make pit suicidal, move to end & cclear backward ; if scanner hits my cclear and jumps into pit, I should win N EQU 15 OFF EQU -2376 STEP EQU 2*OFF FIRST EQU j PC1 EQU 1800 PC2 EQU 3740 PC3 EQU (PC1-PC2+2*10-POFF) DIST EQU 278 DIST2 EQU 1357 POFF EQU (-50) D EQU 1143 org a a add.f inc, @3 mov.i j, *ptr look jmz.f a, @ptr mov.i j2, @ptr sub.x @-1, @ptr djn.b a, #N jmp paper for 17 dat.f 0, 0 rof paper spl p2 ;guard against hit to next 3 lines p1 spl 1 mov.i -1, #0 mov.i -1, #0 spl 1 p01 spl @0, >PC1 mov.i }-1, >-1 nop >0, #0 ;scanned p02 spl @0, >PC2 mov.i }-1, >-1 mov.i b, }p01-DIST mov.i b, >p01+DIST mov.i {p02, {1 jmp PC3, >1865 b dat.f >2667, >5334 j jmp OFF, OFF ;bombed p2 spl 1 ;2 consecutive copies of paper mov.i -1, #0 mov.i -1, #0 spl 1 ;10 process paper spl imps p11 spl @0, >PC1 mov.i }-1, >-1 nop >0, #0 ;scanned p12 spl @0, >PC2 mov.i }-1, >-1 mov.i b2, }p11+DIST add.a #37, p11+PC1+DIST mov.i {p12, {1 jmp PC3, >1856 b2 dat.f >2667, >5334 dat.f 0, 0 ;bombed r mov.i j3, look ;enemy into pit causes start of coreclear pit spl #STEP, #STEP spl -1, #100 mov.i b2, >-1 djn.f pit, {-25 dat.f 0, 0 dat.f 0, 0 imps spl #0, #0 ;scanned spl 2 jmp imp add.a #D, -1 dat.f 0, 0 imp mov.i #130, D for 14 dat.f 0, 0 rof ptr dat.f FIRST, FIRST+OFF j2 jmp r-ptr, >2667 j3 jmp clear-look inc dat.f STEP, STEP dat.f 0, 0 ;bombed cptr dat.f -15, 15 dat.f -15, <2667 dat.f -15, 15 clear spl #-15, 15 mov.i @2, >cptr mov.i @1, >cptr djn.b -2, {clear