Netlogo 如何阻止红海龟(感染)立即变灰(恢复/移除)

Netlogo 如何阻止红海龟(感染)立即变灰(恢复/移除),netlogo,Netlogo,我是Netlogo的新手,我一直在尝试编写流行病模拟代码。我已经看过Netlogo中可用的epidem和病毒模型,但我似乎仍然无法解决我的问题。 因此,最初随机抽取10只海龟被感染并变红,但我如何增加感染时间,使它们有时间感染其他海龟,而不是立即变灰(移除/恢复)? 任何反馈都将不胜感激! 这是我的密码: breed [women woman] breed [men man] breed [children child] turtles-own [ susceptible? infected?

我是Netlogo的新手,我一直在尝试编写流行病模拟代码。我已经看过Netlogo中可用的epidem和病毒模型,但我似乎仍然无法解决我的问题。 因此,最初随机抽取10只海龟被感染并变红,但我如何增加感染时间,使它们有时间感染其他海龟,而不是立即变灰(移除/恢复)? 任何反馈都将不胜感激! 这是我的密码:

breed [women woman]
breed [men man]
breed [children child]

turtles-own
[ susceptible?
infected?
removed?
infection-length    ;; How long the person has been infected
recovery-time       ;; Time it takes for the patient to recover
nb-infected
nb-recovered ]

to setup

clear-all

create-women 50 
 [ setxy random-xcor random-ycor
   set color red + 2
   set removed? false
   set infected? false
   set susceptible? true
   set size 1.5 ]

ask women [ set shape "person"]

create-men 50 
 [ setxy random-xcor random-ycor
   set color blue + 1
   set removed? false
   set infected? false
   set susceptible? true
   set size 1.5 ]
ask men [set shape "person"]

create-children 25
 [ setxy random-xcor random-ycor
   set color yellow
   set removed? false
   set infected? false
   set susceptible? true
   set size 1 ]
ask children [set shape "person"]

ask n-of 10 turtles
[get-infected]

reset-ticks
end


to go
ask turtles 
[move
 if infected? [infect]
 if infected? [get-removed]
 ]
end

to move 
rt random 100
lt random 100
fd .1 
end


to get-infected
set infected? true
set color red 
end


to infect
ask other turtles-here with [ not infected? and not removed? ]
[ if random-float 100 < infectiousness
  [get-infected] ]
end


to get-removed
if recovery-time < duration
[ifelse random-float 100 < recovery-chance
  [become-removed]
  [die] ]
end

to become-removed
set infected? false
set removed? true
set color gray
end
品种[女性]
繁殖[男子]
品种[儿童]
乌龟自己的
[敏感?
感染?
远离的?
感染时间;这个人被感染了多长时间
恢复时间;病人恢复所需的时间
nb感染
[回收毒品]
设置
清除所有
创造女性50
[setxy random xcor random ycor
设置颜色为红色+2
设置已删除?错误
设置受感染?错误
设定敏感度?对
套装尺寸1.5]
询问女性[设定形状“人”]
创造男人50
[setxy random xcor random ycor
将颜色设置为蓝色+1
设置已删除?错误
设置受感染?错误
设定敏感度?对
套装尺寸1.5]
问男人[设定“人”的形状]
创建子对象25
[setxy random xcor random ycor
设置颜色为黄色
设置已删除?错误
设置受感染?错误
设定敏感度?对
设置大小1]
询问儿童[设置形状“人”]
询问10只海龟的数量
[感染]
重置滴答声
结束
外带
问海龟
[移动
如果感染了?[感染]
如果感染了?[移除]
]
结束
移动
rt随机100
lt随机100
fd.1
结束
感染
设置感染?真的
设置颜色为红色
结束
感染
询问其他海龟[未感染?未移除?]
[如果随机浮动100<传染性
[感染]]
结束
撤职
如果恢复时间<持续时间
[ifelse随机浮动100<恢复机会
[被删除]
[死亡]]
结束
撤除
设置感染?假的
集删除?真的
设置颜色为灰色
结束

看起来你从来没有告诉一只生病的海龟延长它的寿命。比如:

to get-removed

set duration duration + 1

if recovery-time < duration
[ifelse random-float 100 < recovery-chance
  [become-removed]
  [die] ]
end
删除
设置持续时间+1
如果恢复时间<持续时间
[ifelse随机浮动100<恢复机会
[被删除]
[死亡]]
结束
我应该帮忙