如果满足条件,使海龟改变变量

Make turtle change variable if conditions are met

我必须繁殖,breed1breed2,如果 breed2 的成员足够接近,只有 breed1 可以更改变量 var radius 4。但是,我的代码不起作用,请参见下文。

这是 breed1 将执行的代码的一部分:

  let x min-one-of other breed2 with [ var >= 6 ] in-radius 4 [ distance myself ] ;check whether there is one (or more) members of breed2 with a value of or above 6 of var
  
  ifelse (x != nobody) [ ;if there is one
    ask one-of breed2 in-radius 4 with [ var >= 6 ] [ set var var + 1 ] ;change value
    [right random 360 forward 1] ;else walk random

我的想法是,breed1 检查其附近(半径 4)的 breed2 成员,如果有一个或多个,它将​​更改其中一个给定变量(var)的值大于 6 的成员。

但是,上面的代码并没有改变变量var。我怎样才能达到我想要的?

我认为你有一个括号错误 - 你的 then 代码在开始你的 else 代码之前没有结束。但是你也有一个效率问题,因为你正在两次建造附近的海龟。一旦你有了 x,你就可以简单地使用它。所以修复它和括号错误:

ifelse (x != nobody)
[ ask x [ set var var + 1 ] ]  ; x changes value
[ right random 360 forward 1 ] ; the asking turtle moves