1
我是新来的NetLogo和编码/一般编程,我正在编写计算海龟之间距离的代码。如果他们太靠近,他们需要离开,如果他们太远,他们需要靠近。NetLogo:海龟之间的最小距离
它们不能接近1/2的补丁,也不能超过1个补丁。如果它们之间的距离不在1/2和1之间,那么它们需要移动,直到它们在这个范围内。
我必须链接他们做到这一点,或者我可以做到这一点不链接?
我是新来的NetLogo和编码/一般编程,我正在编写计算海龟之间距离的代码。如果他们太靠近,他们需要离开,如果他们太远,他们需要靠近。NetLogo:海龟之间的最小距离
它们不能接近1/2的补丁,也不能超过1个补丁。如果它们之间的距离不在1/2和1之间,那么它们需要移动,直到它们在这个范围内。
我必须链接他们做到这一点,或者我可以做到这一点不链接?
既然你正在做这个设置,那么你可以做的是让NetLogo逐渐创建海龟,并确保每个海龟都是合适的距离。有一个合乎逻辑的问题,第一只乌龟不应该进行距离测试,因为没有其他的乌龟,并且你认为有足够的乌龟可以适应这个距离限制的世界。
尽管如此,这里有一些代码(9龟)。如果你尝试创造太多的海龟,它确实会冒无尽的循环风险。随着海龟数量的增加,它的效率也非常低,因为海龟会随机放置,直到找到合适的位置,可能需要多次尝试。
to setup
clear-all
create-turtles 1
repeat 8
[ let min-x min [xcor] of turtles - 1
let max-x max [xcor] of turtles + 1
let min-y min [ycor] of turtles - 1
let max-y max [ycor] of turtles + 1
create-turtles 1
[ loop
[ setxy random-float (max-x - min-x) + min-x random-float (max-y - min-y) + min-y
let close-turtles other turtles-on (patch-set patch-here neighbors)
let how-close distance min-one-of close-turtles [distance myself]
if how-close > 0.5 and how-close < 1 [stop]
]
]
]
end
首先,他们绝对不需要链接。查看NetLogo字典中的'distance'基元。你是在创造海龟还是在模拟过程中这样做? – JenB
我正在尝试使用距离基元。它告诉我“集合”需要2个输入。这就是我要求的acells [设置距离acell one-of [0.33 1.05 0.65]] – Amy
我正在尝试在设置中执行此操作,而不是在模拟过程中执行此操作。 – Amy