2014-12-13 2 views
4

У меня есть две черепахи - продавец и покупатель в одном патче, и у них есть форма "face happy". Но на интерфейсе, когда я запускаю настройку, если в одном патче есть два черепаха, я вижу только один из них. мой вопрос в том, как я могу его закодировать, чтобы увидеть их оба. если его невозможно хотя бы увидеть в некоторых патчах одного агента в других других.Как сделать две черепахи в одном патче видимыми?

и вот мой код:

ask sellers 
     [move-to one-of patches with [not any? turtles-here]] 

    ask buyers 
     [move-to one-of patches with [not any? buyers-here]] 
    ask buyers [if any? sellers-here [set shape "face happy"]] 
    ask buyers [if not any? sellers-here [set shape "face sad"]] 
    ask buyers [if any? sellers-here [set color 67]] 
    ask sellers [if any? buyers-here [set shape "face happy"]] 
    ask sellers [if not any? buyers-here [set shape "face sad"]] 
    ask sellers [if any? buyers-here [set color 137]] 

ответ

3

Прежде всего, обратите внимание, что вы можете сказать, если присутствует оба из ваших реплик лица и цвета. Если вы хотите увидеть и то, и другое, вам нужно будет установить прозрачные цвета или смещать места, или и то, и другое. Например,

ask buyers [ 
    move-to one-of patches with [not any? buyers-here] 
    ifelse (any? sellers-here) [ 
    set shape "face happy" 
    set color [255 0 0 125] 
    fd 0.45 
    ][ 
    set shape "face sad" 
    ] 
] 
+0

Даже начиная с центра патчей, 'fd 0.5' может взять черепаху на другой патч. Я бы предложил меньшее значение. –

+0

Если заголовки случайны, это должно быть почти невозможно, но хорошая точка. Ред. – Alan

3

Предполагая, что пластыри с двумя черепахами в центре пластыря:

to spread-out 
    ask patches with [count turtles-here = 2] 
    [ask one-of turtles-here [ 
     fd .25 
     ask one-of other turtles-here [face myself fd -0.25]]] 
end 
3

Другим вариантом является, чтобы сделать один вид черепахи меньше, чем другой, и убедитесь в том, что чем меньше один всегда наверху. Например, если вы используете "circle" для формы для покупателей и продавцов, то вы можете set size 0.4 для продавцов. Затем либо перемещайте продавцов после того, как вы переместите покупателей, либо сделайте что-нибудь, чтобы заставить каждого продавца отобразиться после того, как покупатель отобразит тот же патч. Если вы установили свойство отображения, такое как цвет, форма или размер для всех продавцов после перемещения всех черепах, это должно привести к тому, что продавцы появятся на вершине покупателей.

Другой вариант, если ваши черепахи меньше патчей, было бы использовать цвет патча для передачи информации. Например, вы можете изменить цвет патча, когда на одном патче есть две черепахи. Или вы можете убедиться, что один вид черепахи всегда на вершине (покупатель, например), и всегда устанавливайте цвет патча на особое значение всякий раз, когда на патче есть продавец (даже если нет покупателя).

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