Если вы хотите рассчитать среднее расстояние, вы можете попросить черепаху позвонить mean
и [distance myself]
.
При такой настройке:
to setup
ca
crt 10 [
set color green
move-to one-of patches with [ pxcor < 0 ]
]
crt 1 [
set color red
move-to one-of patches with [ pxcor > 10 ]
]
reset-ticks
end
При вызове функции ниже красная черепаха распечатает сначала все расстояния между собой и всеми зелеными черепахами, а затем среднее из этих расстояний:
to calc-mean-distance
ask turtles with [ color = red ] [
print [ distance myself ] of turtles with [ color = green ]
print mean [ distance myself ] of turtles with [ color = green ]
]
end
Кроме того, я не уверен на 100%, что вы пытаетесь сделать - надеетесь ли вы переместить запрашивающую черепаху к ближайшей черепахе, которая удовлетворяет некоторому условию?Если это так, это может сработать для вас:
to go
ask turtles with [ color = red ] [
let target min-one-of ( turtles with [ color = green ] ) [ distance myself ]
face target
ifelse distance target > 1 [
fd 1
] [
move-to target
]
]
tick
end
Если вы хотите, чтобы запрашивающая черепаха двигалась вместо этого к географическому центру тех черепах, которые удовлетворяют условию, вы действительно могли бы получить средние координаты x и yтех черепах, которых вы описываете, затем попросите черепашку двигаться к этой точке:
to go
let central-x mean [ xcor ] of turtles with [ color = green ]
let central-y mean [ ycor ] of turtles with [ color = green ]
ask turtles with [ color = red ] [
facexy central-x central-y
ifelse distancexy central-x central-y > 1 [
fd 1
] [
setxy central-x central-y
]
]
tick
end
Если это не совсем то, чего вы пытаетесь достичь, не стесняйтесь оставлять комментарии для разъяснения!