From news-rocq.inria.fr!jussieu.fr!math.ohio-state.edu!news.physics.uiowa.edu!dunix.drake.edu!acad.drake.edu!pk6811s Wed Dec 27 17:59:39 1995 Article: 3425 of rec.games.corewar Path: news-rocq.inria.fr!jussieu.fr!math.ohio-state.edu!news.physics.uiowa.edu!dunix.drake.edu!acad.drake.edu!pk6811s From: pk6811s@acad.drake.edu Newsgroups: rec.games.corewar Subject: Harmony Date: 26 Dec 95 18:32:18 CST Organization: Drake University, Des Moines, Iowa Lines: 113 Distribution: world Message-ID: <1995Dec26.183218@acad.drake.edu> NNTP-Posting-Host: acad.drake.edu Ok, I'm back from Christmas travelling, and checking mail and news, holding my breath that the systems guy who left for vacation happened to log in and see that news was DOWN as of Friday afternoon :-(. Hooray! It's up and there are 38 postings on rec.games.corewar. Oh-Oh. Pizza is down for a couple of days :-((( Well, have to fall back to one of my other hobbies. [dusts off copy of "Field Book of Common Rocks and Minerals", looks outside at frozen landscape, sigh..., thinks about cleaning fishing equipment...] With nothing better to do decides to post some code :-) Harmony is doing about as well as can be expected, currently hovering around 10th place on the 94 Hill. The question was, can a pure old-style cmp-scanner be tweaked to success? Well... it is still a 60% cmp-scanner using spl-spl-jmp bombs, somewhat like No Mucking About. But... it sure doesn't look much like Agony or Charon. Harmony is a take-off of my BlackTN program which I submitted against the white-warrior silk problem. It is a pair of extended, fully independent cmp-scanners. The redundancy gives quite a bit of protection against dat-bombers, imps, and replicators. The spl-spl-jmp bomb works very well against silks. And the repeating forward clear kills imps pretty well. Since booting two scanners was likely to take too long I experimented with some different decoy-makers (one nice one posted earlier :-) The one I kept also works as a simple dat-bomber and is tuned to trigger those step=12 75% scanners like Porch Swing, turning them into slow core clears against which I have some chance of success. I finally perfected the djn-overrun defense which turns Harmony into a fast forward-clear when overrun by someone's djn stream. This was worth about 10 points on the Hill, and is a little better than Torch's version. There was also a pspace version that went straight to the core-clear whenever losses exceeded 50%, which usually meant the opponent was a fast, small bomber or bomber-scanner like Quiz and Provascan. That worked very well against THOSE programs, but was terrible against Jack in the Box since a dat core-clear is worthless against his replicator. An unlucky start against Jack resulted in about 80% losses. Still has possibilities tho... There was a version with an anti-vamp sequence (just for Persistence :-) But this one does better overall (still thinking about that one too...) Hmmm... have to come up with a brainwashing version and see how that does. ;redcode-94 quiet ;name Harmony ;kill Harmony ;author P.Kline ;assert CORESIZE == 8000 ;strategy 66% cmp-scan with spl-spl-jmp bombs, forward dat coreclear ;strategy making decoys is faster than booting ;strategy start clear when overrun by djn.b step equ 98 ; actually not the REAL one :-) reset1 dat #step-2,#step ; if overrun by djn.b, #step counts ; down fast ct1 jmp split1+1,2000 ; if overrun by djn.f, ctr1 will go here scan1 add split1,@cmpptr1 comp1 seq 2*step,3*step ; take a look slt #start-comp1+step+3,comp1 ctr1 djn scan1,ct1 ; countdown to finish attack1 mov jump1,*comp1 ; drop wide bomb on a-pointer cmpptr1 mov split1,{comp1 ; mov split1,{comp1 ; after bombing, reset to sub reset1,@cmpptr1 ; make b-pointer the next a-pointer jmn scan1,ct1 split1 spl.i #(2*step),#(2*step) mov wipe1,>reset1-3 ; clear mov wipe1,>reset1-3 ; clear jump1 jmp -2 wipe1 dat {2667,wipe1-reset1+10 for 8+12 dat 0,0 rof reset2 dat #step-2,#step ct2 jmp split2+1,1800 scan2 add split2,comp2 comp2 seq (comp1+4000+4)+2*step,(comp1+4000+4)+3*step ; take a look slt #start-comp2+step+3,@cmpptr2 ctr2 djn scan2,ct2 ; countdown to finish attack2 mov jump2,*comp2 ; drop wide bomb on a-pointer cmpptr2 mov split2,{comp2 ; mov split2,{comp2 ; after bombing, reset to sub reset2,@cmpptr2 ; make b-pointer the next a-pointer jmn scan2,ct2 split2 spl.i #2*step,#2*step mov wipe2,>reset2-3 ; clear mov wipe2,>reset2-3 ; clear jump2 jmp -2 wipe2 dat {2667,wipe2-reset2+10 for 38-12 dat 0,0 rof decoyA equ 5501 ; decoy parameters are tuned to decoyS equ 48 ; trigger a 75% once-through scanner decoyB equ 5501+13*decoyS+36 start spl comp2 ; make a decoy and bomb space for 12 mov {decoyA-decoyS*start,{decoyB-decoyS*start rof jmp comp1 end start Paul Kline pk6811s@acad.drake.edu