From news-rocq!jussieu.fr!univ-angers.fr!enst!freenix!sunqbc.risq.qc.ca!news.maxwell.syr.edu!u-2.maxwell.syr.edu!news.netcologne.de!not-for-mail Mon Nov 22 13:52:01 1999 Article: 11014 of rec.games.corewar Path: news-rocq!jussieu.fr!univ-angers.fr!enst!freenix!sunqbc.risq.qc.ca!news.maxwell.syr.edu!u-2.maxwell.syr.edu!news.netcologne.de!not-for-mail From: "Screamer" Newsgroups: rec.games.corewar Subject: Re: new papers (was: Re: SPL resistant silk [though it finishes w/ something else]) Date: Sun, 21 Nov 1999 16:59:23 +0100 Lines: 66 Distribution: world Message-ID: <819t0r$mah$1@news.netcologne.de> References: <38373B0A.3E408335@videotron.ca> NNTP-Posting-Host: dial7-162.netcologne.de X-Trace: news.netcologne.de 943224667 22865 195.14.235.162 (21 Nov 1999 22:51:07 GMT) X-Complaints-To: usenet@news.netcologne.de NNTP-Posting-Date: 21 Nov 1999 22:51:07 GMT X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.00.2014.211 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2014.211 Xref: news-rocq rec.games.corewar:11014 > > But I _will_ share in a short while :-) > pretty pretty please???? 8) just a hint, or a concept? please! I'm running into problems much sooner than I expected, so I have to post :-/ My rough idea (the MOV.i at the end would probably go somewhere else) was something like this: ;redcode ;name Silkysmooth 6P7 ;author Aristoteles Pagaltzis (Screamer) ;assert 1 start SPL 1 SPL 1 MOV 0,-1 silk SPL 997, #silk MOV.i >-1, }-1 SPL 55, #silk MOV.i >-1, }-1 MOV.i <1, {1 DJN.b 55+2-silk, 2 MOV.i #0, -1 END start Let's get to the idea: by the end of the last copying, the decrementing MOV has changed the DJN to say: DJN.b 55, -5 Thus, the B-field of the DJN points to the first line, which will be looking like this: SPL 1004, #7 Therefor, the DJN will jump _exactly_ 7 times, then fall through (once)! This one falling through will be sufficient to execute the last MOV, overwriting the DJN and thus causing the warrior to carpet itself, up to and including the stun bomb. The beauty in this approach is that it will waste very few processes to cover the SPL 0, and they will also die gracefully. Even a perfectly timed stun bomb at the very top of the warrior will only waste a few dozen cycles, and though this is quite a lot, a stunner has to hamper a silk much more to have any chance against it. In effect, stunner would barely scratch this silk. The only even remotely vulnerable instruction is the carpeting MOV itself. If hit in time with a SPL 0, it will keep wasting cycles, but since the next instruction is highly probably a DAT, it will waste only a tiny fraction of the silk's cycles. So far so good. The problem however is that the DJN.b of each successive generation will be off by -2 in both A and B argument from the previous generation, a) because the DJN is only copied first after the carpet MOV.i, which I think should be solveable by clever rearrangement, and b) because the decrement modifiers change it _before_ copying it. Can this (IMH-newbie-O :-)) brilliant concept be saved? I can't see any way that would not waste a significant amount of cycles and/or bloat the code. :-( Regards, Screamer