2014-11-17 4 views
3

Я пытаюсь выбрать 2 соседей случайным образом, например, у нас есть возможность выбрать 8 соседей из команды «соседей», аналогично выбору 4 соседей, мы используем команду neighbors4, но что, если мы хотим для выбора только 2 соседей случайным образом из 8 соседей.Как случайно выбрать два патча от соседей4 в NetLogo

Я хочу сделать что-то вроде этого:

ask n-of 2 patches from neighbors with [pcolor = white] 
    [set pcolor blue] 

но, как нет from команды, так что я не знаю, как это будет работать.

ответ

4

Вы были очень близки! Вы хотите:

n-of 2 neighbors with [pcolor = white] 

Но что, если есть, возможно, менее двух соседей, которые являются белыми? В этом случае я предлагаю использовать at-most-n-of reporter defined in this answer.

3

Вы в основном решили эту проблему самостоятельно:

neighbors (или в случае neighbors with [condition]) возвращает agentset, что n-of ожидает, поэтому все, что вам нужно, это

[ 
ask n-of 2 neighbors with [pcolor = white] [ set pcolor blue ] 
] 

.

Смежные вопросы