Timer Netlogo:我如何安装;“初始值”;具有特定条件的减量计时器

Timer Netlogo:我如何安装;“初始值”;具有特定条件的减量计时器,timer,netlogo,Timer,Netlogo,我想在海龟到达路的尽头(右端)时设置一个递减计时器。(我只想为到达道路左端的乌龟启动减量计时器。)并继续转动减量计时器,直到乌龟在规定条件下死亡。减量计时器的设置时间(“A”)是单独设置的。我制作了以下示例程序。但这一模式并不奏效。因为在这个示例程序中,如果turtle位于道路的右端,减量计时器的初始值将随着每个滴答声继续设置。我想在海龟到达路的尽头时安装减量计时器的初始值。因此,减量计时器的初始值不能安装在模型开始时的“设置”编程空间中。当我将减量计时器的初始值安装在“to setup”时,减

我想在海龟到达路的尽头(右端)时设置一个递减计时器。(我只想为到达道路左端的乌龟启动减量计时器。)并继续转动减量计时器,直到乌龟在规定条件下死亡。减量计时器的设置时间(“A”)是单独设置的。我制作了以下示例程序。但这一模式并不奏效。因为在这个示例程序中,如果turtle位于道路的右端,减量计时器的初始值将随着每个滴答声继续设置。我想在海龟到达路的尽头时安装减量计时器的初始值。因此,减量计时器的初始值不能安装在模型开始时的“设置”编程空间中。当我将减量计时器的初始值安装在“to setup”时,减量计时器的初始值将在海龟到达道路终点之前保留在日志中。我想避免麻烦的日志计数

let carright one-of turtles-on patch max-pxcor 0
if carright != nobody [ 
  ask carright [ set count-down A ] ;this is the problem.
  ask carright [ set speed 0 ]
  ask carright [ set count-down count-down - 1 ]
]`
嗨,Jen B,我参考您的示例代码制作了以下示例代码,并对其进行了测试。但是,减量计数器没有移动。如果你给我建议,我会很高兴的

let onend? one-of turtles-on patch max-pxcor 0
ask turtles-on patch max-pxcor 0 
;;In this syntax "ask turtles with onend?" I got an error so I changed it.

[ if-else count-down > 0
  [ set count-down count-down - 1 ]
  [ 
    set gamma-A precision (random-gamma (α) (β))0
    if gamma-A <= 0 [
      die
      set number-of-turtles  number-of-turtles - 1
      set number-dead number-dead + 1
    ] 
  ]
]
ask turtles-on patch max-pxcor 0
;;I got an error in this syntax "Ask turtles - on patch max - pxcor 0 with not onend?", so I changed it.

[ set count-down A ;;This worked properly. 
  set speed 0 ;;This worked properly.
  set color red ;;This worked properly.
  set onend? TRUE
]
让我们一起去?补丁max pxcor 0上的一只海龟
在补丁max pxcor 0上询问海龟
;;在这个语法中,“用oned询问海龟?”我得到了一个错误,所以我修改了它。
[如果其他情况下倒计时>0
[设置倒计时-倒计时-1]
[ 
设置伽马-A精度(随机伽马(α)(β))0

如果gamma-A我仍然不清楚您试图做什么,但是根据评论讨论,这可能比您的代码更接近

turtles-own [onend?]    ; note that you will have to set this to false in setup

ask turtles with [onend?]
[ if-else count-down > 0
  [ set count-down count-down - 1 ]
  [ die ]
]
ask (turtles-on patch max-pxcor 0) with [not onend?]
[ set count-down A
  set speed 0
  set onend? TRUE
]

我仍然不清楚您试图做什么,但根据评论讨论,这可能比您的代码更接近

turtles-own [onend?]    ; note that you will have to set this to false in setup

ask turtles with [onend?]
[ if-else count-down > 0
  [ set count-down count-down - 1 ]
  [ die ]
]
ask (turtles-on patch max-pxcor 0) with [not onend?]
[ set count-down A
  set speed 0
  set onend? TRUE
]

我不知道你想做什么。从逻辑上讲,我认为你想要像“选择px cor=max pxcor尚未获得倒计时值的补丁上的所有海龟,然后将倒计时设置为值a”,以及“选择所有具有倒计时值的海龟,然后将倒计时值减少1”。你目前正在做的是检查是否有海龟到达右手边,如果是的话,选择其中一只进行倒计时。你不会让其他海龟到达终点。然后你为你选择的海龟重新开始倒计时。谢谢你的评论。我只想为到达右手边的海龟启动减量计时器这条路。根据你的评论,语法中的“ask carright[X X]”是“ask[X X]for all turtles”,不是吗?我不明白“ask carright”的意思好的。谢谢你的指点。那么,我怎样才能只为到达道路左端的海龟激活递减计时器呢?如果你给我一个建议,我会很高兴。我对你想做的事情感到困惑。从逻辑上讲,我想你想要的是类似“选择一个补丁上的所有海龟,px cor=max pxcor,他们没有准备好一个倒计时值,然后将倒计时设置为a值,同时“选择所有具有倒计时值的海龟,然后将倒计时值减少1”。此时,您要做的是检查是否有海龟到达右侧,如果有,则选择其中一只进行倒计时。您不会让其他海龟到达e然后你为你选择的乌龟重新开始倒计时。谢谢你的评论。我只想为到达道路左端的乌龟激活减量计时器。根据你的评论,语法中的“ask carright[X X X]”是“ask[X X X]for all turtles”,不是吗?我不明白“问卡里特”的意思好的。谢谢你的指点。那么,我如何才能只为到达道路左端的海龟激活递减计时器?如果你给我一个建议,我会很高兴。谢谢你的示例代码。我将在这里链接3D图像。我想在这张图像的红海龟位置安装递减计时器。(这起到节点或进程的作用。)在我的示例代码中,“carright”似乎已经作为“turtle变量”存储在Netlogo中。(类似于代码中的“oned?”),我想通过滴答声“a”的数量对红海龟进行停止运动使用减量计时器。当减量计时器达到0后,我想用伽马分布的概率杀死红海龟。参考“if carright!=Nobody[----]”,这个条件非常强,所以我被卡住了。在这个条件下,海龟必须是指定的补丁(在本例中为“max pxcor 0”)。因为该条件始终在修补程序“max pxcor 0”上存在海龟时执行,因此计数器无法正常工作。我将使用您的示例代码再次检查。在您的原始代码中,carright是一个代理集,成员为一只海龟。我所做的是创建一个变量,每个海龟拥有一个副本。这是一个标志,表示“这只海龟在末尾”。一般来说,我的建议是您正在尝试这样做一次做的太多了。让你的代码简单地识别感兴趣的海龟并把它们变成红色。让它工作起来。然后再做下一点。如果你用小步做事情,它会迫使你获得正确的逻辑,并且允许更容易的调试。再次感谢你的建议。我会再次检查你建议给我的代码。如果有问题m、 我会在这里问你一个问题。谢谢!很抱歉再次问你这个问题。在你的示例代码“ask turtles with oned?”中,这是一个错误,“预期此输入为真/假块,但得到了任何提示”,因此我安排了这个“ask turtles with[oned?=patch max pxcor 0]”。还有这个示例代码,“询问海龟-在修补程序max-pxcor 0上使用非ONED?”这是一个错误