【问题标题】:NetLogo Counter Variable IncrementationNetLogo 计数器变量增量
【发布时间】:2015-02-13 20:25:36
【问题描述】:

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

示例代码:

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

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

【问题讨论】:

    标签: netlogo


    【解决方案1】:

    你想让计数器在每个时间步都增加吗?如果是这样,请按照 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
    

    【讨论】:

    • 缺少ask turtles
    • 是的!谢谢尼古拉斯。我在测试时有一些其他的行,删除了太多
    【解决方案2】:

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

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

    调用 tick 以增加刻度(go 过程)

    并使用mod 运算符进行取模。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-05
      • 2023-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-29
      • 1970-01-01
      相关资源
      最近更新 更多