Ваша проблема ifelse recovery-prob < 0.1 = true
. Я не знаю, на что настроен ваш recovery-prob, но эта строка всегда верна или всегда ложна. Что вы, вероятно, хотите сделать (и что в вашем комментарии):
ask turtles with [epi-state = infectious-code]
[ ifelse random-float 1 < recovery-prob
[ set epi-state recovered-code
set color green
]
[ die
]
]
Обратите внимание, что вам на самом деле не нужно иметь деталь = true
.
Если у вас есть возбуждающая проба установлена на 0,05 (например), условие верно для всех черепах, и все они выздоравливают. Если он установлен на 0,2 (например), это ложно для всех черепах, и они все d ie.
Я думаю, что у этого блока все еще есть проблема логики c. Как вы и написали, любая инфекционная черепаха или выздоровеет, или немедленно умрет. А как насчет черепах, которые остаются заразными более одного раза?