Newsgroups: rec.games.corewar From: Robert@buchanan.demon.co.uk (Robert Macrae) Path: ibmpcug!wendy.ibmpcug.co.uk!pipex!peernews.demon.co.uk!buchanan.demon.co.uk!Robert Subject: Re: Good paper products References: <1995Mar26.175513.2271@rhodes> Organization: Buchanan Partners Limited Reply-To: Robert@buchanan.demon.co.uk X-Newsreader: Demon Internet Simple News v1.29 Lines: 90 X-Posting-Host: buchanan.demon.co.uk Date: Tue, 28 Mar 1995 09:48:19 +0000 Message-ID: <796384099snz@buchanan.demon.co.uk> Sender: usenet@demon.co.uk In article <1995Mar26.175513.2271@rhodes> graham@harlie.mathcs.rhodes.edu "Randy Graham" writes: > there or not). Any way, I was wondering if someone could give me a > good paper product to test against. I have flashpaper, gammapaper, > and Silk warrior 1.3. I do great against silk 1.3 and FlashPaper, and > OK against gamma. Could someone send me a tougher paper to test > against so I can tell how I am going to do in long runs against paper. Here's my version... ;redcode-94 ;name Vanilla 1.1 ;author Robert Macrae ;strategy 6-word Paper with fast launcher. ;assert CORESIZE == 8000 spl 1 mov -1, 0 spl 1 ; Get 6 processes launch spl 2340, 0 ; Launch multiple copies mov >launch, }launch mov bomb, {600 ; Throw in a bomb for luck mov >launch, }launch ; Complete launch paper spl 1910, 0 ; Start of paper proper mov >paper, }paper mov bomb, {bomb ; (Forget why) mov.f paper, <2667 dat >0, <2667 ; Ballast, so I don't waste time dat >0, <2667 ; launching colourless space. I don't think this was ever the best, but its simple. I havn't seen code for Silk itself, but I think the key element is the use of the SPL, MOV >} pair to achieve very fast splitting at the start. The advantage is that the second copy is executing only 1 step behind the first ie SPL when the first is doing the MOV, MOVing when the first is bombing -- and by now the third copy is splitting! This makes the paper vampire resistant as it can split almost as fast as traps. There is a downside, at least in my version. Because you have six processes executing every instruction, it is very expensive to change the split destination, so papers tend to end up in strips close together, and eventually overlapping which wastes cycles. The launch stage is an attempt to overcome this because, silk-like, it splits off 9 copies before the first paper has completed one cycle. The constants 2340 and 1910 came from a quick check with MOPT, looking for the best step size (1910) when lots of bombing runs where repeated at equal offsets (2340). Actually, for speed I used an 800 coresize and came up with 191 and 234 as the optimal pair, so this could be improved. Constants 600 and 800 are content free. The bomb during launch helps by creating dead targets for scanners, as well as attacking. The choice of bomb is vaguely anti-impish (though I don't think this achieves much. Using MOV bomb, { will pick up any pointers. This works well against vamp-based quickscanners :-) such as Midge, recently deceased :-(. This paper was meant to be the basis for a more sophisticated, self-checking variant but I couldn't get the sophistication to pay. In the end I got frustrated by the number of failed "Major improvements", which is why there is so much unfinished. -- Robert Macrae