让一只乌龟跟随邻居的一只特定的乌龟

时间:2019-01-29 11:10:06

标签: netlogo multi-agent

我的乌龟的0 0.7)的海龟的观点,它们属于它们附近的链接。我想出的代码采用了扩展网络中所有AD较高的海龟的所有意见。关于如何使它成为“仅” 采纳邻里一个人的观点的任何想法,如果有一个(emem)(可能没有)?

这与上一个问题(Netlogo, changing link-with to link-to

有关
to opinion-formation
ask turtles [ 
let leaders turtles with [AD > 0.7]
if (AD < 0.3) and (link-neighbor? one-of leaders) [set opinion1 [opinion] of turtles with [link-neighbor? one-of leaders ]]
]
end

我尝试过的另一件事,这里的问题是我的海龟从来没有接受任何人的意见...

to opinion-formation
ask turtles [
let leaders turtles with [AD > 0.7]
if (count leaders with [member? self link-neighbors] > 0) and AD < 0.3 [
set opinion1 [opinion] of one-of leaders with [member? self link-neighbors]
]
]
end

1 个答案:

答案 0 :(得分:1)

您可能要为此使用nw扩展名,因为它允许您使用nw:turtles-in-radius X原语返回连接距离内的海龟。对于一个非常简单的示例,请看以下代码:

extensions [ nw ]

turtles-own [ AD ]

to setup
  ca
  crt 10
  ask turtles [
    set AD random-float 1
    set color scale-color blue AD 0 1
    setxy random 20 - 10 random 20 - 10
    create-link-with one-of other turtles
  ]
  reset-ticks
end

to check-leadership
  ask turtles [
    let my-nearby-turtles nw:turtles-in-radius 2
    let my-nearby-leader one-of my-nearby-turtles with [ AD > 0.7 ]
    if my-nearby-leader != nobody [
      let new-AD [AD] of my-nearby-leader
      show word "I have a leader, my new AD is " new-AD
      set AD new-AD      
      set color scale-color blue AD 0 1 
    ]
  ]
end