Я пытаюсь смоделировать заражение между комаром и человеком, при установке разных состояний для человека это работает, но для комара это не работает. это код, который я использовал для установки зараженного агента комаров
ask one-of turtles [set infected? true]
if infected? [ set color blue]
Полный код
breed [human humans]
breed [mosquito mosquitoes]
turtles-own
[
infected? ;; If true, the person is infected
recovered? ;; If true, the person has lived through an infection.
susceptible? ;; Tracks whether the person was initially susceptible
]
;;; SETUP PROCEDURES
to setup
clear-all
setup-human
setup-mosquito
reset-ticks
end
to setup-human
create-turtles 100
[
setxy random-xcor random-ycor
set recovered? false
set infected? false
set susceptible? true
set shape "person"
set color white
set size 1
ask one-of turtles[set infected? true]
if infected? [set color red]
]
end
to setup-mosquito
create-turtles 10
[
setxy random-xcor random-ycor
set susceptible? true
set infected? false
set shape "bug"
set color brown
set size 1
ask one-of turtles [set infected? true]
if infected? [ set color blue]
]
end
to go
ask turtles
[
set heading random 360
forward random 2
]
tick
end
В вашем коде скобки неясны, я не вижу, что внутри оператора if
. Но если цель состоит в том, чтобы сделать несколько действий при заражении комара, то сложите их все вместе, например:
ask one-of turtles
[ set infected? true
set color blue
]
При определении ваших пород Netlogo ожидает, что вы сначала определите множественное число, а затем единственное число следующим образом: «порода [люди, люди]». Я также заметил, что вы определяете свои породы, но фактически не используете их нигде в своем коде. Вы можете либо использовать «установить породу людей» в своей процедуре создания черепах, либо вместо этого просто использовать процедуру создания людей (что Netlogo позволяет вам делать, как только вы определили свою породу).