NetLogo计数器变量增量

时间:2015-02-12 13:14:55

标签: netlogo


我的问题涉及设置全局计数器变量。

示例代码:

globals [counter]

to go
   ;if counter / 6 is a whole number (as in is divisible by 6)
   ask turtles
   [
      forward 1
   ]   
set counter counter + 1
   ;otherwise
   ask turtles
   [
      right 60
      forward 1
   ]
end

假设我已经相应地设置了海龟和补丁。我的想法是如何让我的计数器变量测试真假,可以被一个数字整除。

2 个答案:

答案 0 :(得分:3)

你想让计数器每个时间步增加吗?如果是这样,请使用刻度,而不是使用bergant而不是计数器。如果您稍后要介绍一些代码,请使用计数器,这意味着计数器仅在某些时间步长递增。我还拿出了你的评论标记,以便进行动作。

如果使用计数器:

globals [counter]

to go
  ask turtles
  [ ifelse counter mod 6 = 0
    [ forward 1 ]
    [ right 60
      forward 1 ]
  ]
  set counter counter + 1
  ...
  tick
end

如果使用刻度线:

to go
  ask turtles
  [ ifelse ticks mod 6 = 0
    [ forward 1 ]
    [ right 60
      forward 1 ]
  ]
  tick
end

答案 1 :(得分:0)

您可以使用ticks(报告刻度计数器的当前值)。

使用reset-ticks将计数器设置为零(这也会更新所有图表) - 通常在您的设置过程中。

调用tick增加刻度(go procedure)

并使用mod运算符作为模数。