我是否在netlogo中错误地使用了n-of函数?

我是否在netlogo中错误地使用了n-of函数?,netlogo,Netlogo,我正在创建一个代码,它应该使一定数量的海龟的状态为1,其余海龟的状态为0,这个数字是使用界面的滑块输入计算出来的。我一直试图让程序使用n-of,但它将超过预期数量的海龟变成了1个品种(海龟从之前设置为0状态) 代码如下(单人开关改为仅一只海龟,翻滚开关用于建模翻滚和跑步): 问题在于ask n-of语句的位置。代码是为每个被创建的海龟执行的创建海龟N后的括号,因此每个被创建的海龟依次请求N-of。。。海龟将状态设置为1。你会得到比你想要的更多的海龟。将if(翻滚…块移出create turtle

我正在创建一个代码,它应该使一定数量的海龟的状态为1,其余海龟的状态为0,这个数字是使用界面的滑块输入计算出来的。我一直试图让程序使用n-of,但它将超过预期数量的海龟变成了1个品种(海龟从之前设置为0状态)

代码如下(单人开关改为仅一只海龟,翻滚开关用于建模翻滚和跑步):


问题在于
ask n-of
语句的位置。代码是为每个被创建的海龟执行的
创建海龟N
后的括号,因此每个被创建的海龟依次请求N-of。。。海龟将状态设置为1。你会得到比你想要的更多的海龟。将
if(翻滚…
块移出
create turtles
块将导致在创建所有N个turtles之后只执行一次

to spawn
  ifelse (single = false ) [
    create-turtles N  [
      set color black
      set xcor 0
      set ycor 0
      set heading random-float 360
      set status 0
    ]
    if (tumble = true) [
      print (N * p1 / (p1 + p2))
      ask n-of (N * p1 / (p1 + p2)) turtles [set status 1 set color red]
    ]
  ]
  [create-turtles 1  [
    set color black
    set xcor 0
    set ycor 0
    set heading random-float 360
    pendown
    ]
  ]
end
to spawn
  ifelse (single = false ) [
    create-turtles N  [
      set color black
      set xcor 0
      set ycor 0
      set heading random-float 360
      set status 0
    ]
    if (tumble = true) [
      print (N * p1 / (p1 + p2))
      ask n-of (N * p1 / (p1 + p2)) turtles [set status 1 set color red]
    ]
  ]
  [create-turtles 1  [
    set color black
    set xcor 0
    set ycor 0
    set heading random-float 360
    pendown
    ]
  ]
end