2016-08-18 8 views
2

私は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 

答えて

1

あなたはその期間を高めるために病気のカメを言ったことがないているように見えます。次のようなもの:

to get-removed 

set duration duration + 1 

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

助けてください。

関連する問題