If statement 如何在NetLogo中使用2个条件编写IF命令?

If statement 如何在NetLogo中使用2个条件编写IF命令?,if-statement,conditional-statements,netlogo,agent-based-modeling,economics,If Statement,Conditional Statements,Netlogo,Agent Based Modeling,Economics,我的海龟是公司,他们有自己的海龟,这是一个不同公司的利润,以及离岸?然后重新靠岸?是真是假 代码有点不对。我很难将IF和and命令结合起来。如果标签的参数已离岸?报告=真实,且这些公司的利润低于报告离岸公司的利润?=错,比他们应该移动的还要多。代码的移动部分工作正常。请在下面找到我目前掌握的(错误报告)代码: breed [ firms firm ] firms-own [ profit offshored? ;; reports either true or fals

我的海龟是公司,他们有自己的海龟,这是一个不同公司的利润,以及离岸?然后重新靠岸?是真是假

代码有点不对。我很难将IF和and命令结合起来。如果标签的参数已离岸?报告=真实,且这些公司的利润低于报告离岸公司的利润?=错,比他们应该移动的还要多。代码的移动部分工作正常。请在下面找到我目前掌握的(错误报告)代码:

breed [ firms firm ]


firms-own [   
   profit
   offshored?   ;; reports either true or false
   reshored?   ;; reports either true or false
]

to setup
  ask firms [
    if offshored? true AND profit < [ profit ] of firms with [ offshored? = false ] [   ;; if the profit of an offshored firm is smaller than the lowest profit of firms at home, the decision to reshore is yes!
      ask one-of turtles [ move-to one-of patches with [ pcolor = 58 and not any? turtles-here ] ]  ;; the firm reshores
      AND set reshored? true ] ]   ;; the firm is now labelled as reshored
end
品种[公司]
公司拥有[
利润
离岸?;报告真实或虚假
重新托管?;;报告正确或错误
]
设置
询问公司[
如果离岸?真实且利润<[离岸?=虚假][;;的公司的利润<[利润];如果离岸公司的利润小于国内公司的最低利润,则决定重新离岸是肯定的!
询问一只海龟[移动到[pcolor=58,而不是这里的任何海龟];公司重新靠岸
并设置重新托管?true]];;该公司现在被贴上重新托管的标签
结束

上述设置不会起任何作用,主要问题可能是您正在将一家公司的利润变量与一个列表进行比较(
[利润]与[离岸?=false]
)。您不能以这种方式直接将单个值与值列表进行比较,因此您必须以不同的方式进行比较。例如,您可以使用
min
获得其他感兴趣公司的最低利润值:

breed [ firms firm ]

firms-own [ profit offshored? reshored? ]

to setup
  ca
  ask patches with [ pxcor < -10 ] [
    set pcolor red
  ]

  create-firms 100 [
    set color white
    set profit random 101
    set offshored? one-of [ true false ]
    set reshored? false
    while [ any? other turtles-here ] [
      move-to one-of neighbors with [ pcolor = black ]
    ]
  ]

  ask firms [
    if offshored? and profit < min [ profit ] of firms with [ not offshored? ] [
      move-to one-of patches with [ pcolor = red and not any? turtles-here ]
      set reshored? true
      set color yellow
      set size 2
    ]
  ]
  reset-ticks
end 
品种[公司]
公司拥有[离岸利润?再离岸利润]
设置
ca
使用[pxcor<-10]询问修补程序[
设置颜色为红色
]
创建100家公司[
将颜色设置为白色
随机设定利润101
离岸设置?一个[真假]
设置重新托管?错误
而[这里还有其他海龟吗][
移动到具有[pcolor=black]的邻居之一
]
]
询问公司[
如果离岸?且利润<具有[未离岸?]的公司的最低[利润][
移动到带有[pcolor=红色且没有任何海龟的补丁中的一个
设置重新托管?为真
设置颜色为黄色
2号套餐
]
]
重置滴答声
结束

此外,您在您的
询问公司
声明中有
询问其中一只海龟
——我认为您希望像在本例中那样忽略这一点,以便进行评估的公司是移动的代理-
询问其中一只海龟
只会随机选择任何品种的海龟

上面的设置不会起任何作用,主要的问题可能是您正在将一家公司的利润变量与一个列表进行比较(
[利润]与[offshored?=false]
)。您不能以这种方式直接将单个值与值列表进行比较,因此您必须以不同的方式进行比较。例如,您可以使用
min
获得其他感兴趣公司的最低利润值:

breed [ firms firm ]

firms-own [ profit offshored? reshored? ]

to setup
  ca
  ask patches with [ pxcor < -10 ] [
    set pcolor red
  ]

  create-firms 100 [
    set color white
    set profit random 101
    set offshored? one-of [ true false ]
    set reshored? false
    while [ any? other turtles-here ] [
      move-to one-of neighbors with [ pcolor = black ]
    ]
  ]

  ask firms [
    if offshored? and profit < min [ profit ] of firms with [ not offshored? ] [
      move-to one-of patches with [ pcolor = red and not any? turtles-here ]
      set reshored? true
      set color yellow
      set size 2
    ]
  ]
  reset-ticks
end 
品种[公司]
公司拥有[离岸利润?再离岸利润]
设置
ca
使用[pxcor<-10]询问修补程序[
设置颜色为红色
]
创建100家公司[
将颜色设置为白色
随机设定利润101
离岸设置?一个[真假]
设置重新托管?错误
而[这里还有其他海龟吗][
移动到具有[pcolor=black]的邻居之一
]
]
询问公司[
如果离岸?且利润<具有[未离岸?]的公司的最低[利润][
移动到带有[pcolor=红色且没有任何海龟的补丁中的一个
设置重新托管?为真
设置颜色为黄色
2号套餐
]
]
重置滴答声
结束
此外,您在您的
询问公司
声明中有
询问其中一只海龟
——我认为您希望像在本例中那样忽略这一点,以便进行评估的公司是移动的代理-
询问其中一只海龟
只会随机选择任何品种的海龟