Netlogo 如何使两个海龟在一个补丁都可见?

Netlogo 如何使两个海龟在一个补丁都可见?,netlogo,Netlogo,我有两只海龟——一个补丁里有卖家和买家,它们的形状是“脸上快乐的”。 但在界面上,当我运行安装程序时,若一个补丁中有两个海龟,我只能看到其中一个。 我的问题是,我如何编写代码,以便能够同时看到它们。如果不可能,至少在某些补丁中可以看到一个代理在另一个代理中 这是我的代码: ask sellers [move-to one-of patches with [not any? turtles-here]] ask buyers [move-to one-o

我有两只海龟——一个补丁里有卖家和买家,它们的形状是“脸上快乐的”。 但在界面上,当我运行安装程序时,若一个补丁中有两个海龟,我只能看到其中一个。 我的问题是,我如何编写代码,以便能够同时看到它们。如果不可能,至少在某些补丁中可以看到一个代理在另一个代理中

这是我的代码:

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]]

首先,请注意,您实际上可以从您的面部和颜色提示中判断两者是否都存在。如果要同时看到这两个位置,则需要设置透明颜色或偏移位置,或同时设置这两个位置。例如:

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"
  ]
] 

假设斑块中心有两只海龟:

 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

另一个选择是使一种海龟比另一种海龟小,并确保较小的海龟始终位于顶部。例如,如果对买家和卖家的形状都使用
“圆圈”
,则可以
为卖家设置大小0.4
。然后,在移动买家之后移动卖家,或者在同一补丁上显示买家之后,执行某些操作以使每个卖家都显示出来。如果在所有海龟移动后为所有卖家设置显示属性,如颜色、形状或大小,则应使卖家显示在买家上方


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

即使从修补程序中心开始,
fd 0.5
也可能将海龟带到不同的修补程序。我建议使用较小的值。如果标题是随机的,这几乎是不可能的,但很有道理。编辑。