A stone → paper uses a small stone to eliminate scanners, then switches to a paper to hopefully beat stones and tie paper. Early examples executed the stone for a fixed number of cycles while later examples add a linear scan and switched to the paper early if it detected something. The first stone → paper was created by Matt Hastings in 1992.

        sstep  equ 7585
        bdist  equ (pboot+8+sstep)

sboot   mov    stone+3,   bdist   ; boot stone
        mov    stone+2,   <sboot
        mov    stone+1,   <sboot
        mov    stone,     <sboot
        jmp    @sboot

stone   mov    {4000,     sstep-1
        add    inc,       stone
inc     jmz.f  stone,     <sstep
        jmp    pboot-bdist        ; jump back to paper

        pstep  equ 1480
        istep  equ 1143           ; (CORESIZE+1)/7

pboot   spl    1                  ; 8 parallel processes
        spl    1
        spl    1

paper   spl    @0,         {pstep
        mov    }paper,     >paper
        spl    0                  ; vortex launcher
        add.a  #istep,     launch
launch  djn.f  imp-istep*8,{600

imp     mov.i  #1,         istep

Example Stone → Papers

Gamma Paper 3.0, Killer instinct, Smooth Noodle Map, Smooth Noodle Map 6, Genocide, Kitchen Sink II, Vagabond, Leapfrog,

Further Reading

  1. Hastings, Matthew. "From Proteus to Smooth Noodle Map 6, Part I." The Core War Newsletter 13 (Fall 1992): 2–4.
  2. Hastings, Matthew. "From Proteus to Smooth Noodle Map 6, Part II." The Core War Newsletter 14 (Winter 1993): 2–6.