【问题标题】:How can I postpone action a tick later in Netlogo?我怎样才能在 Netlogo 中推迟一个动作?
【发布时间】:2021-06-15 05:47:09
【问题描述】:

我正在尝试对补丁进行建模(代表环境)。当它的资源耗尽时,它们会以一个滴答的延迟(滴答+ 1)重新生成。我该怎么做?

这个想法是这样的:

if resources-amount = 0 
(tick + 1) ask patches [set resources-amount (resource-amount + 1 )]

【问题讨论】:

    标签: delay netlogo patch


    【解决方案1】:

    您可以添加一个补丁程序自己的变量regrow-time。它将自动初始化为 0。如果补丁丢失了所有资源(在此滴答期间),您可以将 regrow-time 设置为您想要的滴答数,例如4 个滴答声后:

      ask patches 
      [
        loose-resource
        if resources-amount = 0 and regrow-time = 0
        [
          set regrow-time ticks + 4
        ]
      ]
    
    

    然后你可以询问regrow-time来的补丁,让他们获得资源,并将定时器重置为0,这样程序最终可以重新开始。

      ask patches with [regrow-time = ticks]
      [
        gain-resource
        set regrow-time 0
      ]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-12
      • 1970-01-01
      • 1970-01-01
      • 2019-09-01
      • 1970-01-01
      • 2014-01-03
      • 1970-01-01
      相关资源
      最近更新 更多