以每刻 5 单位的速度增加海龟能量

问题描述 投票:0回答:1

我一直在尝试创建一个程序,当海龟在充电点时,以每滴 5 个单位的速度为它们充电。


to go-recharge 

ask turtles [

    if energy-required? = true and (patch-here = goal) [
   
      set energy-ticks-since-here ticks
      while [energy < 100] [
         set energy energy + 5]
      if (ticks - energy-ticks-since-here) > (energy / 5 ) [
         set energy-required? false]
       ]

      ]

一旦经过适当数量的蜱虫,我似乎无法让海龟再次移动。我希望海龟在超过 100 且刻度数已过去(超过 20 表示 100 能量单位)时恢复并移出目标能量。

netlogo rnetlogo
1个回答
0
投票

你的问题是这样的陈述:

set energy-ticks-since-here ticks

这将始终使该值:

(ticks - energy-ticks-since-here)

为零。它没有做你想做的事,即跟踪乌龟已经充电了多少次。

一种方法是使

energy-ticks-since-here
成为海龟自己的变量。当乌龟充电时,您可以将其设置为任意数字:

  if (ticks - energy-ticks-since-here) > (energy / 5 ) [
     set energy-required? false
     set energy-ticks-since-here -999]

然后,在询问海龟块开始时,如果海龟刚刚开始充电,请重置

energy-ticks-since-here

if energy-required? = true and (patch-here = goal) [
   
  if energy-ticks-since-here = -999 [set energy-ticks-since-here ticks]
© www.soinside.com 2019 - 2024. All rights reserved.