delay - 我怎样才能在 Netlogo 中推迟一个动作?
问题描述
我正在尝试对补丁进行建模(代表环境)。当它的资源耗尽时,它们会以一个滴答的延迟(滴答+ 1)重新生成。我怎样才能做到这一点?
这个想法是这样的:
if resources-amount = 0
(tick + 1) ask patches [set resources-amount (resource-amount + 1 )]
解决方案
您可以添加一个 patch-own 变量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
]
推荐阅读
- django - 限制用户进入表单
- gradle - Gradle:任务中断时运行 finalizedBy (ctrl-c)
- node.js - npm install 或 yarn 命令,运行时间过长(Ubuntu)
- validation - 每个图像中包含大量对象实例的小型数据集能否用于对象检测/分割训练?
- sql - SQL查询得到如下结果
- python - 无法安装`gattlib`
- android - 自定义标记在 mapbox-android 中不可见
- c - 由于 libffi 中未定义的引用,构建 Glib 时出错
- hadoop - 无法从 Hive 外部表上的 Druid 数据源查询数据
- r - 根据自定义标识符对数据框中的行进行排序