如何在一个补丁中制作两只乌龟都可见?

时间:2014-12-13 11:31:50

标签: netlogo

我有两只乌龟 - 一个补丁中的卖家和买家,他们的形状"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 个答案:

答案 0 :(得分: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"
  ]
] 

答案 1 :(得分: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

答案 2 :(得分:3)

另一个选择是让一种乌龟比另一种乌龟小,并确保较小的乌龟总是在顶部。例如,如果您为买家和卖家使用"circle"形状,则可以set size 0.4为卖家。然后,在您移动买家后移动卖家,或者在显示相同补丁上的买家之后执行某些操作以使每个卖家显示。如果您在所有海龟移动后为所有卖家设置了显示属性,如颜色,形状或大小,那么这应该会导致卖家出现在买家之上。

另一个选择,如果你的海龟小于补丁,将使用补丁颜色来传达信息。例如,只要同一个补丁上有两只乌龟,您就可以更改补丁颜色。或者你可以确保一种乌龟总是位于顶部(例如买家),并且只要补丁上有卖家(即使没有买家在场),也总是将补丁颜色设置为特殊值)。