ask 中的多个语句

Multiple statements in ask

允许在一个询问命令中使用多个语句。我问这个是因为我的代理人没有以正确的方式计算他们丢失的变量。 slider-s为零,slider为10.

[ ask smaller [ set heading [ heading ] of larger forward 0.05 set lost lost + 1 set lostcount lostcount + 1 set color [color] of larger
    if random 100 < slider-s [ if lost > random 100 [ set heading random 360 set lost 0 set color random-float 100]]]]
[ if random 100 < slider
[ ask larger [ set heading [ heading ] of smaller forward 0.05 set lost lost + 1 set lostcount lostcount + 1 set color [color] of smaller
    if random 100 < slider-s [ if lost > random 100 [ set heading random 360 set lost 0 set color random-float 100]]]]]

是的,在一个询问块中有多个命令是有效的。在一行上有多个语句也是有效的(尽管有点不可读)。如果它无效,绿色勾号语法检查器将抛出黄色突出显示的错误消息。

<whatever is the line before - presumably ask some agentset>
  [ ask smaller
    [ set heading [ heading ] of larger
      forward 0.05
      set lost lost + 1
      set lostcount lostcount + 1
      set color [color] of larger
      if random 100 < slider-s
      [ if lost > random 100
        [ set heading random 360
          set lost 0
          set color random-float 100
        ]
      ]
    ]
  ]
  [ if random 100 < slider
    ...
  ]
]

如果您使用上述缩进,您的代码会占用更多行,但更容易发现某些类型的错误。特别是,您的代码是否可能因为括号不正确以及一些代理通过这些嵌套循环的次数不正确而错误地计算了丢失的变量?