home    
koth
info
links
Newsgroup
Feedback
    kofacoto!
    Entries are due Sunday, October 8th midnight CST.
    
    Round 1: White Warrior
    
    At the bottom you will see the previously unpublished code of Return Of The Jedimp.
    I -believe- this is the version that at one time lasted quite a while on the Pizza
    '94 Hill, but I can't be exactly certain.
    
    If you look carefully at the imp spiral creation you'll see it uses a method that's
    never been independantly developed by anyone else as far as I know.  The imp spiral
    evolves over several generations of ring creation.  It's really quite interesting.
    
    I have a feeling that something along the lines of He Scans Alone is the best bet
    for victory, but don't let that sway your development. :)
    
    For the code to He Scans Alone see http://www.KOTH.org/planar/index.html
    
    I'll run 200+ rounds with each person's entry to get their score for this round.
    
    Standard '94 rules... as in: pmars.exe -r 200 -d 100 -c 80000 -p 8000 -l 100
    
    Remember overall scores in the
    opening rounds will determine your seed in the playoffs.
    
    And now the white warrior... enjoy!
    
    -jkw
    
    ;redcode-94
    ;name Return Of The Jedimp
    ;kill Return Of The Jedimp
    ;author John K W
    ;strategy Return Of The Jedimp with Q^2 scan...
    ;strategy v.q4 - altered engine.  new qscan.
    ;strategy v.q52 - fixed spacing and qscan better
    ;assert 1
    
    org start
    
    step equ 12             ; gap between qbombs
    strafelen equ 4         ; coverage area = step*strafelen*3
    
    bomb    dat <1, step
    qstep	dat -step, 2*step
    
    ;*************** QSCAN
    
    qs    equ   10
    
    QS1   equ   (100)
    QS2   equ   (3*QS1)
    QS3   equ   (6*QS2)
    QBASE equ   (tab+300)
    
    SIG01 equ   a01
    SIG02 equ   {a01
    SIG03 equ   }a01
    SIG04 equ   >a01
    SIG05 equ   <a01
    SIG06 equ   a01
    
    start   seq     QBASE+QS2*0+QS1*0, QBASE +QS2*0 +QS1*0+QS3
            jmp     aaa,  SIG01
            seq     QBASE+QS2*1+QS1*0, QBASE +QS2*1 +QS1*0+QS3
            jmp     a01,  SIG02
            seq     QBASE+QS2*2+QS1*0, QBASE +QS2*2 +QS1*0+QS3
            jmp     a01,  SIG03
            seq     QBASE+QS2*3+QS1*0, QBASE +QS2*3 +QS1*0+QS3
            jmp     aaa,  SIG04
            seq     QBASE+QS2*4+QS1*0, QBASE +QS2*4 +QS1*0+QS3
            jmp     aaa,  SIG05
            seq     QBASE+QS2*5+QS1*0, QBASE +QS2*5 +QS1*0+QS3
            djn.f   a01,  SIG06
    
            seq     QBASE+QS2*0+QS1*1, QBASE +QS2*0+QS1*1+QS3
            jmp     a02,  SIG01
            seq     QBASE+QS2*1+QS1*1, QBASE +QS2*1+QS1*1+QS3
            jmp     a02,  SIG02
            seq     QBASE+QS2*2+QS1*1, QBASE +QS2*2+QS1*1+QS3
            jmp     a02,  SIG03
            seq     QBASE+QS2*3+QS1*1, QBASE +QS2*3+QS1*1+QS3
            jmp     a02,  SIG04
            seq     QBASE+QS2*4+QS1*1, QBASE +QS2*4+QS1*1+QS3
            jmp     a02,  SIG05
            seq     QBASE+QS2*5+QS1*1, QBASE +QS2*5+QS1*1+QS3
            djn.f   a02,  SIG06
    
            seq     QBASE+QS2*0+QS1*2, QBASE+QS2*0+QS1*2+QS3
            jmp     a03,  SIG01
            seq     QBASE+QS2*1+QS1*2, QBASE+QS2*1+QS1*2+QS3
            jmp     a03,  SIG02
            seq     QBASE+QS2*2+QS1*2, QBASE+QS2*2+QS1*2+QS3
            jmp     a03,  SIG03
            seq     QBASE+QS2*3+QS1*2, QBASE+QS2*3+QS1*2+QS3
            jmp     a03,  SIG04
            seq     QBASE+QS2*4+QS1*2, QBASE+QS2*4+QS1*2+QS3
            jmp     a03,  SIG05
            seq     QBASE+QS2*5+QS1*2, QBASE+QS2*5+QS1*2+QS3
            djn.f   a03,  SIG06
    
            jmp     evopac          ;nothing found
    
            dat     1*QS2,  4*QS2+QBASE-ptr
    tab     dat     0*QS2,  0*QS2+QBASE-ptr
            dat     2*QS2,  3*QS2+QBASE-ptr
    
    a03     add     #QS1,   @a01
    a02     add     #QS1,   @a01
    a01     add.ab  tab,    tab
    aaa     mov.ba  @a01,   ptr
    
            sne     DEAD,   *ptr  ;which of the two?
            add.a	#QS3,   ptr
    
    	add.ab	ptr,	ptr
    
    qbrun   mov 	bomb, 	@ptr
    	mov 	bomb, 	*ptr
    ptr     mov 	-0, 	@step
    	add.f	qstep, 	-1
            djn     qbrun,  #strafelen
    	jmp	evopac
    
    ;*************** EVOPAC
    
    DEAD
    ded for 32
    dat 0, 0
    rof
    
    d2    equ 1143
    TSTEP equ 1751
    bstep equ 1819 ;2283 ;1997
    boot  equ 1700-(80+15)*4-1
    
    evopac  spl     1
            spl     1
            spl     1
            mov     <1,     {1
            jmp     boot,   imp2+1
    evol:   spl     @evol,  }TSTEP
            mov.i   }evol,  >evol
    evoli:  spl     #d2,    bstep-1
            mov     b,      >2
            add.f   evoli,  j
    j:      jmp.f   imp2-d2*8, {-6+bstep
    b       dat     <1,     1
    imp2    mov.i   #d2,    *0