Netlogo:标题复制if else语句

时间:2016-01-31 23:29:24

标签: netlogo

我正在尝试在netlogo中执行以下操作: 我在netlogo中有四个代理,随机标题和变量(随机1-99)。 代理人搜索最近的代理人“让最近的海龟最小其中一只海龟[远离我自己]”

具有最高变量的代理(例如90对10)将计算变量之间的差异(例如90-10 = 80)。该差异用作语句“随机100 <80”的概率。当随机数低于差值时,具有最高值的代理将强制其在具有较低值的乌龟上的航向。 我的问题是,当具有最高值的代理失去死亡时,他必须复制具有较低值的代理的标题。我不知道怎么做:“我自己”不起作用。我被卡住了。

1 个答案:

答案 0 :(得分:1)

如果没有看到您的代码,这很难,但这是一个基于您的代码的完整工作示例。它有效并且不会抛出错误。

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

我怀疑使用棘手的引用有更好的方法,但这相对容易阅读。