我见过类似的Javascript问题,但没有看到NetLogo。
我有一群海龟在屏幕上移动,相互碰撞并交换信息。我正在尝试建立一个数组,代表需要收集的不同类型的信息(即:第一个槽可能代表一个日期,第二个槽可能代表一个国家,第三个槽可能代表一个组织),因为海龟遇到其他海龟并查看turtleA是否有TurtleB需要完成其收藏的信息。
现在我已将它设置好,因此每条信息都是相同的,所有我们要检查的是你是否有足够的部分要完成。如果有意义的话,我希望让它更像是一张宾果卡,如果有意义的话:
to move-turtles
ask Implementers [
[ifelse any? Other Turtles-here [have-info] [change-location];; if anyone else is here, ask if they have info, otherwise, move.
]
end
to have-info
ifelse any? turtles-here with [holdinfo > 0] [do-i-have-enough-info] [change-location]
end
to do-i-have-enough-info
ask Implementers [
ifelse holdinfo >= taskcomplexity [move-to one-of (patch-set patch 17 20 patch -17 -20 patch 17 -20 patch -17 20) set done 1 stop] [change-location];; move to end
]
ask OtherImplementers [
ifelse holdinfo >= tcomplexity [move-to one-of (patch-set patch 17 20 patch -17 -20 patch 17 -20 patch -17 20) set done 1 stop][change-location]];; move to end
ask IMdeployed [change-location];; keep moving
end
更新: 我现在尝试为我的不同品种分配随机数组长度 -
ask Implementers [set infoarray array:from-list n-values taskcomplexity [0]]
现在我试图找到一种方法将数组项值设置为全0,直到实现者遇到已经拥有数组中特定项的值的人,此时项值将为切换到1,直到最终每个实现者都有一个完整的1s数组。
有什么想法吗?