From news-rocq.inria.fr!irisa.fr!univ-rennes1.fr!univ-angers.fr!ciril.fr!cnusc.fr!univ-lyon1.fr!newsfeed.nacamar.de!news.idt.net!streamer1.cleveland.iagnet.net!qual.net!iagnet.net!198.6.0.87!uunet!in3.uu.net!comp.vuw.ac.nz!paramount.mcs.vuw.ac.nz!amarsd Mon Feb 23 14:48:57 1998 Article: 8423 of rec.games.corewar Path: news-rocq.inria.fr!irisa.fr!univ-rennes1.fr!univ-angers.fr!ciril.fr!cnusc.fr!univ-lyon1.fr!newsfeed.nacamar.de!news.idt.net!streamer1.cleveland.iagnet.net!qual.net!iagnet.net!198.6.0.87!uunet!in3.uu.net!comp.vuw.ac.nz!paramount.mcs.vuw.ac.nz!amarsden From: Anton Marsden Newsgroups: rec.games.corewar Subject: Anton's CW Tournament Round 2 Warriors Date: Mon, 23 Feb 1998 11:49:45 +1300 Organization: School of Mathematical and Computing Sciences, VUW Lines: 498 Message-ID: NNTP-Posting-Host: kaukau.mcs.vuw.ac.nz Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Cache-Post-Path: kaukau.mcs.vuw.ac.nz!unknown@paramount.mcs.vuw.ac.nz X-Cache: nntpcache 2.3.2.1 (see http://www.nntpcache.org/) ;redcode-94 ;name Short Circuit ;strategy Get Electric Head to it's Mini-HSA component, ;strategy then beat that & brainwash it so it says active ;strategy Is around 95% wins, 2900 points over 1000 rounds ;strategy good enough? ;author Philip Kendall ;assert CORESIZE==8000 ;planar clear,scan,boot,pspace ;Anton's Tournament Round 2 ;This warrior has two components: firstly, Paul Kline's Clisson, ;which is used to beat the Core Clear component of Electric Head ;(it gets around 80% wins), and force Electric Head to its Mini-HSA ;component. Then comes the dirty tricks :-) ;The anti-Mini HSA component is a variant on a d-clear: a length 20 ;decoy followed by two blanks cells before the d-clear ensures that ;Mini-HSA bombs the decoy, then steps over the actual d-clear. Then, ;Mini-HSA finds more decoy, with my d-clear starting at the end of ;that. As Mini-HSA bombs at 0.67c, but the d-clear moves at c, this ;keeps Mini-HSA in its bombing loop. Therefore the d-clear hits the ;executing body of Mini-HSA before Mini-HSA can do any damage to me. ;The d-clear bomb used is stp.ab #13,#250, which brainwashes ;Electric Head so that it stays on its Mini-HSA component for all ;time. This kills as it is only placed every second instruction, with ;rubbish being left inbetween, which is what Mini-HSA actually ;terminates on. ;The switcher used basically P^2: the first three entries are for ;Clisson, and are used to maintain Short Circuit in exactly the same ;state as Electric Head, until we force the switch to Mini-HSA, at ;which point, Short Circuit changes to the d-clear component and stays ;there (unless brainwashed). The switcher also erases its own pspace ;value, which cut down the number of times I brainwash myself, and ;also throws out a bomb which lands in Mini-HSA's boot routine if ;it is a location which would boot on top of me. Epspace equ 250 ; Electric Head's pspace cell ; the anti Mini-HSA component ; a dclear and a nasty trick first dummy for 20 dat.f 10,20 rof dCstart equ 13 ; must be congruent to 3 mod 10 dat.f 0,0 ; these two lines are crucial. Do not change dat.f 0,0 ; any field to non-zero under any circumstances! dPtr spl.a (MAXLENGTH-CURLINE),0 dStart spl.a #0,>dPtr dClear mov.i dBomb,}dPtr djn.f dClear,}dPtr dat.f 0,0 dBomb stp.ab #dCstart,#Epspace ; the anti-Core Clear component ; credit for this bit to Paul Kline cStart mov.ab #86,66 cClisson sne {cWatch1,{cWatch1 ; Clisson to beat fast bombers jmz.f -1,@64 add.a #3,cWatch1 mov -200 for 5 MOV.I prime prime MOV.I impy, impy ADD.F #st+1, jump jump JMP.B impy-st-1, <-535 impy MOV.I #st, *0 iloc DAT.F $0, $0 gate DAT.F >5335, #3600 bomb DAT.F >5335, #15 first SPL.B #0, >gate-2667 SPL.B #0, >gate-2667 MOV.I bomb, >gate str DJN.F -1, >gate dloc DAT.F $0, $0 for 24 SPL.B #1, >1 SPL.B #1, <1 SPL.B #1, #1 rof end ;name Nautilus ;author Mole IX ;strategy please please don't kill me too fast ;assert CORESIZE==8000 first equ 100 ;20 second equ 100+13 ;20+15 step equ 2*13 ;2*15 b dat.f 5, 5 s dat.f step, step dodaj add.f s, @2 mov.i b, @scan mov.i b, *scan scan sne *first, @second jmp dodaj, <-1000 mov.ab scan, bom spl drugi bom spl #b1, clear+1 mov.i *bom, >bom djn -1, {-100 b3 dat.f #b3-bom, clear+1-bom b2 spl #b3-bom, clear+1-bom b1 spl #b2-bom, clear+1-bom drugi mov.ab scan, dr add.ab #3960, dr dr spl #b1, clear+1 mov.i *dr, >dr djn -1, #1000 dat 0, 0 clear end dodaj ;redcode-94 ;name P^(1/2) ;author Christian Schmidt ;strategy P-Warrior which uses a P^(1/2) switcher :-) ;strategy this means switch on win ;strategy it runs complementary to Electric Head ;strategy but use only 3 compounds ;strategy <----------------------------------------------> ;strategy < BLUR 2 -----> THE CORE CLEAR > ;strategy < CARBONITE -----> MINI HSA > ;strategy < BLUR 2 -----> MINI PAPER > ;strategy < CC PAPER -----> CARBONITE > ;strategy <----------------------------------------------> ;assert CORESIZE==8000 ;This was easy done by changing the input value. ;It sounds really good but there is a main problem. The brainwash ;of the papers. In a good run it scores up to 2550 Pts (1000 fights) ;on a bad run unfortunatly less than 2000 Pts. ;Ok, I'll pray for a better result than in the first round ;-) ;------------------------------------------------------ ;---------------------CC-PAPER------------------------- ;------------------------------------------------------ len EQU 9 fcp EQU 3039 scp EQU 2365 tcp EQU 777 ccb spl 1, <-3000 mov -1, 0 mov -1, 0 mov -1, 0 frog spl @0, -1 spl @0, -1 spl @0, -1 mov 2, <-1 jmp -1, <-10 bm dat <2667, <2667*2 ;--------------------------------------------------- ;--------------P^(1/2)-SWITCHER--------------------- ;--------------------------------------------------- dbomb dat >-1, >1 in dat 0, win_table-state ;<-- changed !!!!!! dat 1, loss_table-state ;<------/ dat 1, tie_table-state PSTATE EQU 250 ; pspace location containing current state STATES EQU 10 ; maximum number of states (for brainwash protection) ;NOTE: state values go from 0 to STATES-1 w0 EQU ccb ; CC PAPER w1 EQU scan ; BLUR 2 w3 EQU cboot ; CARBONITE think ldp.a #0, in ; get input value load ldp.a #PSTATE, state ; load old state mod.a #STATES, state ; brainwash protection add.ba *in, state ; select correct state table store stp.a *state, load ; store new state win_table state jmp @0, w0 ; jump to warrior code init_state; /----Electric Heads states !!!!!!!!! spl #0,w1 ;w0 spl #0,w1 ;w0 spl #3,w3 ;w1 spl #3,w3 ;w1 spl #4,w3 ;w1 spl #6,w1 ;w2 spl #7,w0 ;w3 spl #7,w0 ;w3 spl #8,w0 ;w3 tie_table spl #1,w1 ;w0 spl #2,w1 ;w0 spl #3,w3 ;w1 spl #3,w3 ;w1 spl #4,w3 ;w1 spl #5,w3 ;w1 spl #0,w1 ;w0 spl #7,w0 ;w3 spl #8,w0 ;w3 spl #9,w0 ;w3 loss_table spl #1,w1 ;w0 spl #2,w1 ;w0 spl #3,w3 ;w1 spl #4,w3 ;w1 spl #5,w3 ;w1 spl #6,w1 ;w2 spl #7,w0 ;w3 spl #8,w0 ;w3 spl #9,w0 ;w3 spl #3,w3 ;w1 ;-------------------------------------------------- ;------------------CARBONITE++--------------------- ;-------------------------------------------------- caway EQU (-100) cboot mov tar+1, step top mov.i inc, >ptr scan seq.i 2*step+5,2*step chg mov.b scan, @top a add.f inc, scan djn.b top, #800 inc spl.i #step, #step mov.i clr, >gate btm djn.f -1, >gate clr dat.f <1, #clr-gate+2 END think ;redcode-94 ;name Shelter 1f3 ;author Ilmari Karonen ;strategy Anton Marsden's tournament round 2 entry: ;strategy hide from HSA behind a decoy, and catch ;strategy it with a brainwashing 1c forward clear ;date Jul 31, 1997 ;planar clear, pspace ;assert CORESIZE == 8000 PSTATE equ 250 ; from EH STATES equ 10 ; from EH BWASH equ 2 hsastep equ 9 ; from EH's mini HSA proglen equ 7 cend equ (cptr+BWASH+2*STATES) org start decoy z for (MAXLENGTH-19) spl #-z, 4000+z rof dgap dat.f 0, 0 ; next scan will land at dgap+hsastep+1 dat.f 0, 0 ; or at dgap+hsastep+2 dat.f 0, 0 cptr dat.f 0, 0 dat.f 0, 0 dat.f 0, 0 dat.f 0, 0 dat.f 0, 0 cbmb dat.f {1234, {BWASH+2*STATES cwsh stp.ba #250, #BWASH+2*STATES dat.f 0, 0 ; this will be scanned dat.f 0, 0 ; or this start spl #0, 0 loop mov.i cbmb, >cptr mov.i cwsh, >cptr mov.i cwsh, >cptr mov.i cwsh, >cptr djn.f loop, >cptr end ;redcode ;name Head Basher ;author Brian Haskin ;strat kill electric head ;strat use a dodger to boot a ;strat brainwashing core clear ;strat not very elegant but really effective. ;assert CORESIZE==8000 org start guard dat 0,lst+5 for 6 dat 1,1 rof start sne cdaten djn.b copy,#ganzende-leer+1 spl.a neupos+cdaten+start-leer jmp.a start leer dat.f 0,0 pirat stp #0,#PSTATE adder dat.f elhead,-elhead counter dat.f leer+100,leer-100 start seq.i leer,@counter jmp.a bomben test2 seq.i leer,*counter jmp.a vorbomben add.f adder,counter jmp.a start vorbomben mov.ab counter,counter bomben add.ab #cca,counter mov.ba counter,counter loop mov.i pirat,counter mov.i leer,{counter ganzende jmp.a clear end