我试图在netlogo中做以下工作:我有四个代理,其中有一个随机标题和一个变量(随机1-99)。代理人用“让离得最近的海龟--其他海龟中的一只--我自己”来搜索最接近的代理人。
变量最高的代理(例如90对10)将计算变量之间的差异(例如90-10 =80)。此差异用作“随机100 < 80”语句的概率。当随机数小于差时,值最高的代理人会以较低的值强迫他的头向海龟。我的问题是,当价值最高的代理丢失模具时,他必须以较低的值复制代理的标题。我不知道该怎么做:“我自己”不起作用。我卡住了。
发布于 2016-01-31 23:58:37
不看代码是很难的,但这是一个基于代码的完整的工作示例。它可以工作,不会抛出错误。
globals [larger smaller]
turtles-own [num]
to test
create-turtles 50
[ setxy random-xcor random-ycor
set num random 100
]
ask turtles
[ let nearest-turtle min-one-of other turtles [ distance myself ]
let closed-agent-num [num] of nearest-turtle
ifelse [num] of nearest-turtle > num
[ set larger nearest-turtle
set smaller self ]
[ set smaller nearest-turtle
set larger self]
ifelse random 100 < [num] of larger - [num] of smaller
[ ask smaller [ set heading [heading] of larger] ]
[ ask larger [ set heading [heading] of smaller] ]
]
end我怀疑有很多更好的方法使用棘手的引用,但这是相对容易阅读。
https://stackoverflow.com/questions/35120835
复制相似问题