2016-12-06 2 views
0

Я ищу, чтобы получить идентификатор «кто»/черепаха черепахи, который занимает тот же патч, что и другой, и затем добавить это как элемент в список для обоих черепах.NetLogo - Получение «кого» другой черепахи в одном патче

Например, черепаха А и черепаха В находятся на одном патче, я хотел бы хранить того, кто из черепахи А в списке черепахи В, а кто для черепахи В в списке для черепахи А.

Я понимаю, что это может быть довольно тривиальная вещь, чтобы сделать, так что я пытался сделать это с помощью следующего кода:

if not any? turtles-on neighbors[ 
    if who != who[ 
     set collision-list fput (list (who)) collision-list 
    ] 
    ] 

Здесь я проверяю патч, чтобы увидеть, если он содержит другую черепаху, если он делает, тогда я пытаюсь сохранить того, кто (используя условие для того, кто тот, кто не такой, как текущий кто), а если нет, сохраните его в списке столкновений для каждого агента.

+0

Знаете ли вы, что вы можете положить черепах в свои списки? Есть ли причина не делать этого? – Alan

ответ

1

Обычно неправильно работать с цифрами who вместо самих черепах. Поэтому я проиллюстрирую, как вы можете увеличить «список столкновений» черепах.

turtles-own [clist] 
to setup 
    ca 
    crt 100 [ 
    setxy random-xcor random-ycor 
    set clist [] 
    ] 
    ask turtles [adjust-clist] 
end 

to adjust-clist ;turtle proc 
    let _ts [self] of (other turtles-here) 
    set clist (sentence _ts clist) 
end 
Смежные вопросы