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 |