Если вы знаете, что A C из 0 означает выбор участка, у которого нет красных соседей, а A C из 1 означает выбор соседа любого красного пятна, тогда все, что требуется, это выбрать AC = 1 с заданной вероятностью и метод AC = 0 в противном случае. Это то, что я имел в виду под проблемой дизайна, вам нужно разработать необходимые шаги, прежде чем пытаться кодировать эти шаги.
Вот почти решение. Я не позаботился о таких вещах, как проверка того, что пятна, которые становятся красными, еще не являются красными, поэтому счет будет неправильным.
to setup
clear-all
let prop-red 0.1
let AC 0
ask one-of patches [set pcolor red]
ask n-of (prop-red * count patches) patches
[ ifelse random-float 1 < AC
[ ask one-of patches with [ pcolor = red ]
[ ask one-of neighbors [ set pcolor red ]
]
]
[ let candidates patches with [not any? neighbors with [pcolor = red] ]
if any? candidates
[ ask one-of candidates [ set pcolor red ]
]
]
]
end