From: wangsawm@prism.CS.ORST.EDU (W. Mintardjo)
Newsgroups: rec.games.corewar
Subject: Subverting spirals
Date: 6 Jan 93 18:13:51 GMT
Article-I.D.: flop.1if7gvINN2d5
Organization: CS Dept, Oregon State University
NNTP-Posting-Host: prism.cs.orst.edu


Just looking for another way of clearing IMP with core-clear, here I try
to use two-pass core-clear:

stype   DAT #0
subvert MOV @-2667, 2667
sclear  MOV subvert, <-3
        DJN sclear, #7900
aclear  MOV stype, <2
        DJN aclear, #7900
        SPL 0, -7
        END sclear

The first core-clear converts 3-point spirals from its original form 
'MOV 0, 2667' to an intermediate form 'MOV @-2667, 2667'. The second one does 
the normal core-clear. It's kind of interesting to notice that if we replace 
stype with 'SPL 0, 0', all the imps are subverted to 'SPL 0, 0'. Well, not all.
It's kind in a form of:
    * + *
    * + *
    * + *   The last element of imp-ring lies in line a (for core-clear)
    * + *   *: Subverted
    * + *   +: Not subverted
    a b c

Unfortunately, we need somehow to know the step-size used by the imp-rings.
Under current instructions, it seems there is no way we could make the core-
clear adaptive to any spirals. 'xch' instruction might make the whole affair 
easier. If there is ever any changes to corewar '88 rules, I would suggest
for more instructions and features.

Also, more number of instructions are needed. I try to implement it with 
a paper program. It does a little progress, gains 7 out of 25 win which 
is still poor for paper.

And speaking about paper, they are the hardest ones to be resurrected.
Gamma Paper survives there. But I think it is not a normal paper. Since
it doesn't do very good against some bombers.

W. Mintardjo

--------------------------------------------------------------------------

;redcode
;name Gamma Paper 3.0
;author W. Mintardjo
;strategy Stone/Paper, designed to beat some bombers and to tie others
;strategy Version history
;strategy 1.0: Stone/Paper
;strategy 1.2: Better Paper structure
;strategy 1.3: Constant modified
;strategy 2.0: PLASMA protection
;strategy 3.0: A little imp-defense

        MOV #8, 8
Paper2  MOV <-1, <1
        SPL @0, 6501
        MOV 3, <-1
        MOV 3, <-2
        JMZ -5, -5
        MOV @-2667, 2667
        DAT <-1, <-1

div1    SPL 1, <-5550
        SPL 1, <-6101
        SPL 1, <-1212

        SPL Paper4, <-4113
        SPL Paper3, <-4614

        DJN 0, #10
        MOV 102, <1
        JMP -1, div1

        MOV #8, 8
Paper3  MOV <-1, <1
        SPL @0, 6701
        MOV 3, <-1
        MOV 3, <-2
        JMZ -5, -5
        MOV @-2667, 2667
        DAT <-1, <-1

        MOV #8, 8
Paper4  MOV <-1, <1
        SPL @0, 6901
        MOV 3, <-1
        MOV 3, <-2
        JMZ -5, -5
        MOV @-2667, 2667
        DAT <-1, <-1

        MOV #8, 8
Paper5  MOV <-1, <1
        SPL @0, 5901
        MOV 3, <-1
        MOV 3, <-2
        JMZ -5, -5
        MOV @-2667, 2667
        DAT <-1, <-1

        MOV #8, 8
Paper6  MOV <-1, <1
        SPL @0, 5701
        MOV 3, <-1
        MOV 3, <-2
        JMZ -5, -5
        MOV @-2667, 2667
        DAT <-1, <-1

div2    SPL 1, <-7107
        SPL 1, <-6608
        SPL 1, <-4449

        SPL Paper8, <-2220
        JMP Paper7, <-1231

        DAT #2222
        DAT #3333
        DAT #5555

        MOV #8, 8
Paper7  MOV <-1, <1
        SPL @0, 5501
        MOV 3, <-1
        MOV 3, <-2
        JMZ -5, -5
        MOV @-2667, 2667
        DAT <-1, <-1

        MOV #8, 8
Paper8  MOV <-1, <1
        SPL @0, 5301
        MOV 3, <-1
        MOV 3, <-2
        JMZ -5, -5
        MOV @-2667, 2667
        DAT <-1, <-1

div     SPL div2, <-3334

        SPL 1, <-4005
        SPL 1, <-5156
        SPL 1, <-3337

        SPL Paper6, <-6028
        JMP Paper5, <-4319

        DAT #4048, #-4048
        MOV <8, 0
start   SUB -2, -1
        DJN -2, #500       ;Better than DJN A, <B. Avoid scissor decoys

        SPL div, <-516
        SPL div1, <-1517

        SPL 1, <-1018
        SPL 1, <-2019
        SPL 1, <-4000

        SPL Paper2, <-3121

        MOV #8, 0
Paper1  MOV <-1, <1
        SPL @0, 6301
        MOV 3, <-1
        MOV 3, <-2
        JMZ -5, -5
        MOV @-2667, 2667
        DAT <-1, <-1

        END start