Netlogo:如何安装"初始值"具有特定条件的递减计时器

时间:2017-06-11 02:36:17

标签: timer netlogo

我想在乌龟到达路的尽头(右端)时设置一个减量计时器。 (我想只为到达道路左端的乌龟激活减量计时器。)并继续转动减​​量计时器直到乌龟在指定条件下死亡。减量计时器的设置时间(" A")分别设置。我做了以下示例程序。但该模型效果不佳。因为在此示例程序中,如果乌龟位于道路的右端,则递减计时器的初始值将继续设置为每个刻度。我想在乌龟到达路的尽头时安装减量计时器的初始值。因此,递减计时器的初始值不能被设置为"来设置"在模型的开头编程空间。当我在"安装"时安装递减计时器的初始值时,递减计时器的初始值将保留在乌龟到达道路尽头之前的日志中。我想避免麻烦的日志计数。坦克你。

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
]

1 个答案:

答案 0 :(得分:2)

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

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
]