SLIME SOURCE CODE

Back to Slime

Turtle Procedures Observer Procedures
patches-own [chemical]

to setup 
setxy random screen-width random screen-height 
setc red 
set chemical chemical + 2 
end 

to go 
uphill 
rt random 40 
lt random 40 
grid-step 
set chemical chemical + 2 
end 

to uphill 
let [:dir sniff] 
if :dir >= -100 [seth heading + :dir] 
end 

to sniff 
let [:dir -45 
    :best-val chemical 
    :best-dir -100] 
let [:current chemical-towards :dir 1] 
if :current > :best-val 
    [set :best-val :current 
    set :best-dir :dir] 
set :dir :dir + 45 
set :current chemical-towards :dir 1 
if :current > :best-val 
    [set :best-val :current 
    set :best-dir :dir] 
set :dir :dir + 45 
set :current chemical-towards :dir 1 
if :current > :best-val 
    [set :best-val :current 
    set :best-dir :dir] 
output :best-dir 
end 

to grid-step 
fd 1 
setxy round xcor round ycor 
end

to setup 
ca 
crt number 
set chemical 0 
ask-turtles [setup] 

end 

to go 
ask-turtles [go]
diffuse chemical 1
ask-patches [set chemical chemical * 0.9
scale-pc green chemical 0.1 3]
end