首页 > 解决方案 > 运算符 > 并将其与 NetLogo 中的数字和字符串组合

问题描述

我需要一点帮助。如果他们的地块> 5,我希望海龟以 50% 的概率合作。我写成

ifelse  random 1 = 0 and land > 5
                         [set cooperate? true]
                         [set cooperate? false]

但它给出了错误;> 运算符只能用于两个数字、两个字符串或两个相同类型的代理,但不能用于字符串和数字。如何纠正它?

谢谢

标签: netlogo

解决方案


没有足够的信息来诊断问题。此代码是否在ask turtles具有变量“land”作为turtles-own属性的块内?此外,您可能希望打印出一些“土地”的值,以确保其中确实有数字。

正如您从下面的工作示例中看到的那样,您提供的代码中没有错误。

turtles-own [ land cooperate? ]

to testme
  clear-all
  create-turtles 10
  [ set land random 10
    ifelse  random 1 = 0 and land > 5
    [ set cooperate? true ]
    [ set cooperate? false ]
  ]
  type "Cooperating: " print count turtles with [cooperate?]
  type "Not cooperating: " print count turtles with [not cooperate?]
end

推荐阅读