Move the turtles
to their neighboring patch with the lowest value.
downhill(world, pVar, turtles, nNeighbors, torus = FALSE)
# S4 method for worldMatrix,missing,agentMatrix,numeric
downhill(world, turtles, nNeighbors, torus)
# S4 method for worldArray,character,agentMatrix,numeric
downhill(world, pVar, turtles, nNeighbors, torus = FALSE)
WorldMatrix
or worldArray
object.
Character. If the world
is a worldArray
object, pVar
is the name of the layer to use to define the patches
values.
pVar
must not be provided if the world
is a worldMatrix
object.
AgentMatrix
object representing the moving agents
.
Integer: 4 or 8. Represents the number of neighbor patches
considered.
Logical to determine if the world
is wrapped. Default is
torus = FALSE
.
AgentMatrix
representing the turtles
with updated
coordinates and updated data for their heading
values and
previous coordinates prevX
and prevY
.
If no neighboring patch
has a smaller value than the patch
where the
turtle
is currently located on, the turtle
stays on this patch
. It still
moves to the patch
center if it was not already on it.
If there are multiple neighboring patches
with the same lowest value,
the turtle
chooses one patch
randomly.
If a turtle
is located on a patch
on the edge
of the world
and torus = FALSE
, it has fewer
neighboring patches
as options to move than nNeighbors
; if
torus = TRUE
, the turtle
can move on the other side of the world
to
move downhill and its choice of neighboring patches
is always equals to
nNeighbors
.
Wilensky, U. 1999. NetLogo. http://ccl.northwestern.edu/netlogo/. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.
w1 <- createWorld(minPxcor = 1, maxPxcor = 10, minPycor = 1, maxPycor = 10,
data = runif(100))
t1 <- createTurtles(n = 10, coords = randomXYcor(w1, n = 10))
plot(w1)
points(t1, col = of(agents = t1, var = "color"), pch = 16)
t1 <- downhill(world = w1, turtles = t1, nNeighbors = 8)
points(t1, col = of(agents = t1, var = "color"), pch = 16)