Netlogo if命令中的多个或多个条件

Netlogo if命令中的多个或多个条件,netlogo,Netlogo,我试图将海龟引向一个圆锥体,如果圆锥体中的总化学物质水平高于海龟两侧的常规化学物质水平。但是,我的代码涉及多个or条件,这会导致错误,如果需要2个输入,则为TRUE/FALSE和命令块。此外,是否有方法将ifelse与多个or条件一起使用(例如,ifelse化学气味a>锥内总量或化学气味b>锥内总量等) 您的代码至少有一个额外的括号,位于第一行的锥20 45 10中的总化学气味之后。实际上,为什么在if前面和最后一行末尾有一个括号?这个表达式是更大代码块的一部分吗?如果没有, if chemic

我试图将海龟引向一个圆锥体,如果圆锥体中的总化学物质水平高于海龟两侧的常规化学物质水平。但是,我的代码涉及多个or条件,这会导致错误,如果需要2个输入,则为TRUE/FALSE和命令块。此外,是否有方法将ifelse与多个or条件一起使用(例如,ifelse化学气味a>锥内总量或化学气味b>锥内总量等)


您的代码至少有一个额外的括号,位于第一行的锥20 45 10中的总化学气味之后。实际上,为什么在
if
前面和最后一行末尾有一个括号?这个表达式是更大代码块的一部分吗?如果没有,

if chemical-scent-at-angle 0 > total-chemical-scent-in-cone 20 45 10 or chemical-scent-at-angle 60 > total-chemical-scent-in-cone 20 45 10 or chemical-scent-at-angle -60 > total-chemical-scent-in-cone 20 45 10
      [uphill-chemical]
应该有用。就我个人而言,我发现在长布尔表达式中使用括号更为清晰

if (chemical-scent-at-angle 0 > total-chemical-scent-in-cone 20 45 10 or chemical-scent-at-angle 60 > total-chemical-scent-in-cone 20 45 10 or chemical-scent-at-angle -60 > total-chemical-scent-in-cone 20 45 10)
      [uphill-chemical]
我不清楚你在问题的第二部分想要什么。在一个布尔值中包含多个条件的
ifelse
看起来是一样的

ifelse (chemical-scent-at-angle 0 > total-chemical-scent-in-cone 20 45 10 or chemical-scent-at-angle 60 > total-chemical-scent-in-cone 20 45 10 or chemical-scent-at-angle -60 > total-chemical-scent-in-cone 20 45 10)
          [uphill-chemical]
          [do-something-else]
或者,您可以使用NetLogo 6.1及更高版本,具有多个条件,如中所示

(ifelse 
  a > 1 [do-something]
  b < 3 [do-something-else]
  c = 5 [do-yet-something-else]
  [default-to-this])
(ifelse
a>1[做点什么]
b<3[做点别的]
c=5[再做点别的]
[默认设置为此])
注意整件事周围的括号

(ifelse 
  a > 1 [do-something]
  b < 3 [do-something-else]
  c = 5 [do-yet-something-else]
  [default-to-this])