From news-rocq.inria.fr!jussieu.fr!math.ohio-state.edu!howland.reston.ans.net!vixen.cso.uiuc.edu!newsfeed.internetmci.com!in1.uu.net!news.new-york.net!news.stormking.com!spm@star.arm.ac.uk Wed Mar 20 16:13:37 1996 Article: 4461 of rec.games.corewar Path: news-rocq.inria.fr!jussieu.fr!math.ohio-state.edu!howland.reston.ans.net!vixen.cso.uiuc.edu!newsfeed.internetmci.com!in1.uu.net!news.new-york.net!news.stormking.com!spm@star.arm.ac.uk From: spm@star.arm.ac.uk (Scott Manley) Newsgroups: rec.games.corewar Subject: Uvavu et al Date: 19 Mar 1996 18:52:39 -0500 Organization: Storm King Ind. Inc. Lines: 538 Sender: server@news.stormking.com Distribution: world Message-ID: <199603191208.MAA20885@arsun6> Reply-To: spm@star.arm.ac.uk NNTP-Posting-Host: valhalla.stormking.com Originator: corewar-l@stormking.com OK here's a load of warriors which chart my development of my Hyakutake warriors, the most succesful warriors I have written yet (two have reached number 2 on the beginners hill). It all started out with Uvavu (the name comes from a phrase in a Vic Reeves show) the original Uvavu was extremely bad, it didn't make the hill and the whole concept was flawed so I destroyed it. But I liked the name so when I developed my 0.6c Stone that was the name I used. The bombs are placed in packets of 3, 10 locations apart so when a bomb was laid we get SPL 0 **** SPL 0 ***** JMP -2 Basically I thought it was more important to cover as much area as possible and that it was unlikely that the spaces could contain istructions which did much damage. Also the program had an extremely idiotic piece of boot code, I don't know what possesed me to include it.... ;redcode-b ;name Uvavu ;author Scott Manley ;strategy 0.6 c Mod 2 Vamp -> core clear ******************* Decoy REMOVED ******************* boot SPL 1,0 SPL 1,1 SPL 1,2 SPL 1,3 MOV }copy,>copy DJN 2,#1 JMP 2434,#1 MOV }-10,>-10 copy DAT 0, 2430 jmpb JMP -2 , <-6 begin MOV.I splb , @targ MOV.I jmpb , *targ targ MOV.I -2430,@-2432 ADD.F inc,targ DJN -4,#799 splb SPL 0,4 MOV 1,<-2 inc DAT }-2430,>-2430 **************************** More Decoy Removed **************************** END boot On to the nex version. I tried changing the bombs to more conventional spl/spl/jmp and this got me more points. Still used the idiotic boot sequence. ;redcode-b ;name Uvavu ;author Scott Manley ;strategy 0.6 c Mod 10 Vamp -> core clear ****** DECOY ****** boot SPL 1,0 SPL 1,1 SPL 1,2 SPL 1,3 MOV }copy,>copy DJN 2,#1 JMP 2434,#1 MOV }-10,>-10 copy DAT 0, 2430 jmpb JMP -2 , <-4 begin MOV.I splb , @targ MOV.I jmpb , *targ targ MOV.I *-2430,@-2432 ADD.F inc,targ DJN -4,#799 splb SPL 0,1 MOV 1,<-2 inc DAT }-2430,>-2430 ******** Decoy ******** END boot OK I thought I had a decent bombing engine (I imporved it later) but the main problem was the number of paers on the hill so I made an attempt at a Pspace boot which would switch strategy after 20 battles if the current warrior was losing more than 50%. There were a few initial problems as you can see from the strategy but this began to make inroads into the top 20. The extra component added is the well known PaperOne from Core Warrior I can't remeber who wrote it at the moment but every credit to them. ;redcode-b ;name Uvavu ;author Scott Manley ;strategy 0.6 c Mod 2 Vamp -> core clear ;strategy now added Pspaced paper with FIXED boot up bug. ;strategy NO! I mean it's really fixed now...... ******** Decoy ******** last DAT 1,1 lost DAT 1,1 plyd DAT 1,1 strat DAT 1,1 think LDP.A #0,last ;Won/lost LDP.A #1,lost ;Battles lost LDP.A #2,plyd ;Battles Played LDP.A #3,strat ;Dominant Strategy ADD.A #1,plyd SNE.AB last,#0 ADD.A #1,lost SLT.AB plyd, #20 JMP think2 JMP store think2 STP.AB lost,#1 STP.AB plyd,#2 SUB.A lost,plyd SLT.A plyd,lost JMP decided STP.AB #0,#1 STP.AB #0,#2 SEQ.AB strat,#0 MOV.A #-1,strat ADD.A #1,strat STP.AB strat,#3 decided SEQ.A #0,strat JMP paper JMP boot store STP.AB lost,#1 STP.AB plyd,#2 SEQ.A #0,strat JMP paper boot SPL 1,0 ;Still got this idiotic boot. SPL 1,1 SPL 1,2 SPL 1,3 MOV }copy,>copy DJN 2,#1 JMP 2434,#1 MOV }-10,>-10 copy DAT 0, 2430 jmpb JMP -2 , <-6 begin MOV.I splb , @targ MOV.I jmpb , *targ targ MOV.I *-2430,@-2432 ADD.F inc,targ DJN -4,#799 splb SPL 0,1 MOV 1,<-2 inc DAT }-2430,>-2430 DAT 1,1 DAT 1,1 DAT 1,1 paper SPL 1, <300 SPL 1, <400 SPL 1,<500 silk SPL @0,{2200 MOV.I }-1,>-1 silk1 SPL @0,<3740 MOV.I }-1,>-1 MOV.I bom,>933 MOV {silk1,-1278 bom DAT <2667,<1 ******* Decoy ******* END think Well I finally got round to getting another name (antother Vic Reeves catchphrase) and got rid of that stupid boot. ;redcode-b ;name You Wouln't Let It Lie! ;author Scott Manley ;strategy 0.6 c Incendiary bomber -> core clear ;strategy Pspaced paper, better boot code ******** Decoy ******** last DAT 1,1 lost DAT 1,1 plyd DAT 1,1 strat DAT 1,1 think LDP.A #0,last ;Won/lost LDP.A #1,lost ;Battles lost LDP.A #2,plyd ;Battles Played LDP.A #3,strat ;Dominant Strategy ADD.A #1,plyd SNE.AB last,#0 ADD.A #1,lost SLT.AB plyd, #20 JMP think2 JMP store think2 STP.AB lost,#1 STP.AB plyd,#2 SUB.A lost,plyd SLT.A plyd,lost JMP decided STP.AB #0,#1 STP.AB #0,#2 SEQ.AB strat,#0 MOV.A #-1,strat ADD.A #1,strat STP.AB strat,#3 decided SEQ.A #0,strat JMP paper JMP boot store STP.AB lost,#1 STP.AB plyd,#2 SEQ.A #0,strat JMP paper boot MOV.I inc, -2500 MOV.I {boot,1 begin MOV.I splb , *targ MOV.I jmpb , @targ targ MOV.I @-2431,@-2430 ADD.F inc,targ DJN -4,#799 splb SPL 0,1 MOV 1,<-2 inc DAT }-2430,>-2430 DAT 1,1 DAT 1,1 DAT 1,1 DAT 1,1 DAT 1,1 DAT 1,1 DAT 1,1 DAT 1,1 DAT 1,1 DAT 1,1 paper SPL 1, <300 SPL 1, <400 SPL 1,<500 silk SPL @0,{2200 MOV.I }-1,>-1 silk1 SPL @0,<3740 MOV.I }-1,>-1 MOV.I bom,>933 MOV {silk1,-1278 bom DAT <2667,<1 DAT 0,0 DAT 0,0 ************** Decoy ************** END think OK so I fixed the Stepsize used to give the bombing pattern a tighter mod ;redcode-b ;name You Wouln't Let It Lie! ;author Scott Manley ;strategy 0.6c mod 8 bomber > core clear plus a couple of other things... ************** Decoy ************** last DAT 1,1 lost DAT 1,1 plyd DAT 1,1 strat DAT 1,1 think LDP.A #0,last ;Won/lost LDP.A #1,lost ;Battles lost LDP.A #2,plyd ;Battles Played LDP.A #3,strat ;Dominant Strategy ADD.A #1,plyd SNE.AB last,#0 ADD.A #1,lost SLT.AB plyd, #20 JMP think2 JMP store think2 STP.AB lost,#1 STP.AB plyd,#2 SUB.A lost,plyd SLT.A plyd,lost JMP decided STP.AB #0,#1 STP.AB #0,#2 SEQ.AB strat,#0 MOV.A #-1,strat ADD.A #1,strat STP.AB strat,#3 decided SEQ.A #0,strat JMP paper JMP boot store STP.AB lost,#1 STP.AB plyd,#2 SEQ.A #0,strat JMP paper boot MOV.I inc, -2500 MOV.I {boot,1 begin MOV.I splb , *targ MOV.I jmpb , @targ targ MOV.I @-2936,@-2935 ADD.F inc,targ DJN -4,#999 splb SPL 0,1 MOV 1,<-2 inc DAT }-2936,>-2936 DAT 1,1 DAT 1,1 DAT 1,1 DAT 1,1 DAT 1,1 DAT 1,1 DAT 1,1 DAT 1,1 DAT 1,1 DAT 1,1 paper SPL 1, <300 SPL 1, <400 SPL 1,<500 silk SPL @0,{2200 MOV.I }-1,>-1 silk1 SPL @0,<3740 MOV.I }-1,>-1 MOV.I bom,>933 MOV {silk1,-1278 bom DAT <2667,<1 DAT 0,0 DAT 0,0 **************** Decoy **************** END think Well the next step was backwards, I Changed the name and went back to my spl/***/spl/***/jmp bombs and increased my bombing mod. This was a joke (almost) with a friend who said he'd never be able to get onto the hill, so I named the warrior after him. ;redcode-b ;name D'arko ;author Scott Manley ;strategy 0.6c Mod10/2 bomber -> core clear ;strategy Pspaced paper, better boot code ************* Decoy ************* last DAT 1,1 lost DAT 1,1 plyd DAT 1,1 strat DAT 1,1 think LDP.A #0,last ;Won/lost LDP.A #1,lost ;Battles lost LDP.A #2,plyd ;Battles Played LDP.A #3,strat ;Dominant Strategy ADD.A #1,plyd SNE.AB last,#0 ADD.A #1,lost SLT.AB plyd, #20 JMP think2 JMP store think2 STP.AB lost,#1 STP.AB plyd,#2 SUB.A lost,plyd SLT.A plyd,lost JMP decided STP.AB #0,#1 STP.AB #0,#2 SEQ.AB strat,#0 MOV.A #-1,strat ADD.A #1,strat STP.AB strat,#3 decided SEQ.A #0,strat JMP paper JMP boot store STP.AB lost,#1 STP.AB plyd,#2 SEQ.A #0,strat JMP paper boot MOV.I inc, -2500 MOV.I {boot,-1 silk1 SPL @0,<3740 MOV.I }-1,>-1 MOV.I bom,>933 MOV {silk1,-1278 bom DAT <2667,<1 DAT 0,0 DAT 0,0 ************* Decoy ************* END think And finally I reached the Last Uvavu warriors, I set the SPL/SPL/JMP bombing pattern so that it would lay one right after the end of my warrior. This way if the program got hit by some types of Imp it had a chance of generating some more Processes and surviving. Also I changed the decoy to SPL instructions which would presumably improve my chances against replicators. The PSpace algorith works the same way as before (That is the main difference between this and Hyakutake) after 20 battles it makes a decision, if it loses more than 50% it changes strategy. Also submitted were test 15 and test 25 which used that number of battles before diciding. This didn't make much of a difference. ;redcode-b ;name Uvavu II ;author Scott Manley ;strategy 0.6c Mod 8 spl,spl,jmp bomber -> continuous core clear/gate ;strategy added multi process imp protection if it gets hit. ;strategy Pspaced paper (paper 1), same faster boot code and active decoy. ;kill Uvavu II revisited ***** Decoy ****** last DAT 1,1 lost DAT 1,1 plyd DAT 1,1 strat DAT 1,1 think LDP.A #0,last ;Won/lost LDP.A #1,lost ;Battles lost LDP.A #2,plyd ;Battles Played LDP.A #3,strat ;Dominant Strategy ADD.A #1,plyd SNE.AB last,#0 ADD.A #1,lost SLT.AB plyd, #20 JMP think2 JMP store think2 STP.AB lost,#1 STP.AB plyd,#2 SUB.A lost,plyd SLT.A plyd,lost JMP decided STP.AB #0,#1 STP.AB #0,#2 SEQ.AB strat,#0 MOV.A #-1,strat ADD.A #1,strat STP.AB strat,#3 decided SEQ.A #0,strat JMP paper JMP boot store STP.AB lost,#1 STP.AB plyd,#2 SEQ.A #0,strat JMP paper boot MOV.I jmpb, -3500 MOV.I {boot,-1 silk1 SPL @0,<3740 MOV.I }-1,>-1 MOV.I bom,>933 MOV {silk1,-1278 bom DAT <2667,<1 DAT 0,0 DAT 0,0 DAT 1,1 DAT 1,1 ******** Decoy *********** END think And there we have it, how not to write a good warrior. The next step up was Hyakutake which has already been published (and it's namesake is visible in the skies) with a different decision making mechanism and variations in the warriors used. Anyone who is really interested will be able to find the full warriors on my web page soon (I'm in the process of rewriting it so they may not be there just yet). Scott Manley