From news-rocq.inria.fr!jussieu.fr!centre.univ-orleans.fr!univ-lyon1.fr!oleane!tank.news.pipex.net!pipex!howland.reston.ans.net!math.ohio-state.edu!hobbes.physics.uiowa.edu!dunix.drake.edu!acad.drake.edu!pk6811s Tue Sep 12 20:42:16 1995 Article: 2278 of rec.games.corewar Path: news-rocq.inria.fr!jussieu.fr!centre.univ-orleans.fr!univ-lyon1.fr!oleane!tank.news.pipex.net!pipex!howland.reston.ans.net!math.ohio-state.edu!hobbes.physics.uiowa.edu!dunix.drake.edu!acad.drake.edu!pk6811s From: pk6811s@acad.drake.edu Newsgroups: rec.games.corewar Subject: More Stuff Date: 11 Sep 95 07:10:42 CST Organization: Drake University, Des Moines, Iowa Lines: 98 Distribution: world Message-ID: <1995Sep11.071042@acad.drake.edu> References: NNTP-Posting-Host: acad.drake.edu "Steven C. Morrell" writes: >... > snide remarks or comparing the success of Porch Swing/Withershins Twice- > type programs (there must be a shorter name for these things!) with One-shot scanners. FlyPaper was a good one. GammaPaper was a one-shot bomber. >... >>> The easiest defense is to ALWAYS mod your strategy before using it. > > Don't forget to increment afterwards. JMP @0,0 is a pretty bad instruction > for your warrior to execute. This is never a problem using this sequence: mod.a #3,1 jmp @0,str1 dat 0,str2 dat 0,str3 str1 strategy 1 str2 strategy 2 str3 strategy 3 Whatever your pspacer does, realistically you have about 15-20 cycles to make up your mind, boot, and get started. A qscanner will be bombing you after that. Expect to see some on a Hill near you. Paul Kline pk6811s@acad.drake.edu Some (well, most) of Pink follows: ;redcode-94 ;name Pink ;kill Pink ;author P.Kline ;strategy switching DieHard & core-sweep (tie or win) PIN ; almost forgot to hide this one :-) rndlmt equ ; number of trial rounds - some small number < 20 tscore equ ; acceptable trial score - aggressive pzero equ ; somewhere in pspace prndcnt equ (pzero-2) pscore equ (pzero-8) pstragy equ (pzero-14) presult equ 0 dat #gate-10,clr-gate+7 ; just in case clr is decremented gate dat #4000 ,3000 wipe4 dat #4000 ,clr-gate+7 wipe3 dat #4000 ,clr-gate+7 wipe2 spl #6000 ,clr-gate+7 ; redundant wipers wipe1 spl #3050 ,clr-gate+7 for 6 dat 0,0 rof clr spl #0,>-20 mov @2,>gate mov @1,>gate djn.b -2,{wipe1 for 40 dat 0,0 rof start ldp.a presult,wresult ; get result of last battle sne.a #-1,wresult ; check for very first battle jmp goforit ldp.a #prndcnt,wrndcnt ; get trial round counter ldp.a #pscore ,wscore ; get trial score ldp.a #pstragy,wstragy ; get trial strategy wresult jmp @0,tlose dat 0 ,twin ; couldn't we make this scoring system dat 0 ,ttie ; just a little more difficult to manage?? twin add.a #3,wscore ; ttie add.a #1,wscore tlose djn.a goforit,wrndcnt wscore slt #0,#tscore ; trial score acceptable? jmp reset,}reset+1 ; yes (grant edge for winning) add.a #1,wstragy ; better try something else ; start a new trial period reset mov.a #0,wscore ; set trial score to zero mov.a #rndlmt,wrndcnt ; set trial round count to rndlmt goforit mod.a #str1-wstragy,wstragy wrndcnt stp.ab #rndlmt+1,#prndcnt ; remember these three stp.ab wscore ,#pscore ; " stp.ab wstragy ,#pstragy ; " ;break wstragy jmp @0,clr dat 0,dh str1 dat 0,0 dh [insert DieHard here - not exactly a Silk replicator, but you could put one here for testing :-] dat 1,1 ; prevent Agony's djn overrunning dat 1,1 ; before we get started end start