每一定数量的滴答声都不会发生动作

Action not happening every certain amount of ticks

此代码用于动物的繁殖。它应该每 10 个刻度发生一次,但它立即发生,我不知道为什么。他们也有能量。复制设置为随机显示女性。

在此先感谢您的帮助。

turtles-own[ energia edad]
breed[perros perro]
to setup  
   resize-world 0 80 0 60
  clear-all
  ask patches[
    set pcolor green]

    create-perros 50
 [     
    set size 3        ;; easier to see
    set color yellow
setxy (41 + random 39) random 60
    set heading random 360
    set energia 100
    set edad 1
  ]
  
  reset-ticks
end

to go
  
  ask perros [ set edad edad + 1]
  
  ask perros [
    morir-perros
        moverse-perros
    reproducirse
      ]
  tick
end 
  to morir-perros
  
  if edad > 15 [die]
  if energia < 1 [die]
  
end


to moverse-perros
 
   set heading random 360 fd 5
  set energia energia - 5
 
end 
  
 to reproducirse 
  
  if ticks mod 10 = 0 [ if random 100 > 50 [set energia energia - 60
      hatch 1 [ rt random-float 360 fd 2
      set energia (energia + 60) / 3]]]
  
end

现在您可以 tickgo 过程结束时增加时间步长。在任何 model 中,ticks 默认从 0 开始,因此您的 model 计算 ticks mod 10:

observer> show 0 mod 10
observer: 0

因为这将满足 reproducirse 中的条件,所以代码被评估。您可以通过多种方式处理此问题。最简单的方法可能是 mod 在 reproducirse 中验证您的 if 语句 - 例如:

to reproducirse 
  if ticks > 0 and ticks mod 10 = 0 [ if random 100 > 50 [set energia energia - 60
    hatch 1 [ rt random-float 360 fd 2
      set energia (energia + 60) / 3]]]
end