;redcode
;name Puppy v0.2 (more broken)
;author Greg S. Stark
;koth rating	53



i         equ       165
inc       equ       i
territory equ       (-1)/i/i*i+150
skip      equ       2*territory+21-((-1)/i*i+i)
scope     equ       15

dummy     dat       #0,         #0
ptr       dat       #0,        #territory
ptr2      dat       #0,         #0
ptr2Min   dat       #0 ,        #0

search	add	#inc,	ptr
	jmz	search, @ptr
	slt	#0-territory, ptr
	spl	found
;	Prevent corruption of ptr
	jmp	1
	jmp	search


found     mov       ptr   ,    dummy
	  mov	    dummy,	ptr2
          mov       dummy    ,   ptr2Min
          add       #scope  ,  ptr2
          sub       #scope   , ptr2Min
destroy1  mov       dummy    , <ptr2
          slt       ptr2  ,    ptr2Min
          jmp       destroy1,  <ptr2
          
          slt       #scope   , @dummy
;          jmp       search
	dat #0
found2    mov       dummy ,      ptr2
          sub       @dummy ,     ptr2
          slt       #territory, ptr2
          jmp       found3
          slt       #0-territory, ptr2
          jmp       good2
          jmp       found3
good2     mov       ptr2  ,    ptr2Min
          add       #scope ,   ptr2
          sub       #scope  ,  ptr2Min
destroy2  mov       dummy    , <ptr2
          slt       ptr2   ,   ptr2Min
          jmp       destroy2,  <ptr2

found3    mov       dummy      , ptr2
          add       @dummy  ,    ptr2
          slt       #territory, ptr2
;          jmp       search
	dat #0
          slt       #0-territory, ptr2
jmp       good3
;          jmp       search
	dat #0
good3     mov       ptr2   ,   ptr2Min
          add       #scope  ,  ptr2
          sub       #scope  ,  ptr2Min
destroy3  mov       dummy ,   <ptr2
          slt       ptr2   ,   ptr2Min
          jmp       destroy3,  <ptr2

;          jmp       search
	dat #0
end       search
