Netlogo 创建新对象时更改颜色

Netlogo 创建新对象时更改颜色,netlogo,Netlogo,当选择品种A的代理时,它将创建一个新对象。我需要将此对象添加到其列表(议程)和邻居列表中。如果我在下面的代码中没有犯错误,我会问你如何将颜色更改为代理而不是对象 谢谢 breed[objects object] objects-own[att_1] breed [A aa] A-own[ my-object agenda ] to setup create-A 10 ask A[ set agenda [] ] end to go [ ask one-of

当选择品种A的代理时,它将创建一个新对象。我需要将此对象添加到其列表(
议程
)和邻居列表中。如果我在下面的代码中没有犯错误,我会问你如何将颜色更改为代理而不是对象

谢谢

breed[objects object]
objects-own[att_1]

breed [A aa]
A-own[
  my-object
  agenda
]

to setup
  create-A 10
  ask A[
    set agenda []
  ]
end

to go
[
  ask one-of A[create-obj]
]
end

to create-object
   create-object 1[
      if breed = A
        [set color red] ; I want to assign this colour to A, not to the object      
        hide-turtle
        set att_1 random-float 1
        let this-object myself
        if (condition 1)
              [ let customers (turtle-set self in-link-neighbors with [breed = A])
                ask customers
                [
                  set agenda fput this-object agenda
                ]
              ]      
         ]
end

如果品种=A[设置红色]
替换为
如果品种=A[问我自己[设置红色]]
。这样行吗


关键词
我自己
指的是做询问的人,而不是执行要求它做的命令的乌龟。

如果我理解你试图实现的目标,我认为解决方案可以简单到:

to go
  ask one-of A [
    set color red
    create-obj
  ]
end

通常,您几乎不需要使用
if-breed=…
模式。如果你发现自己在这样做,那么你很可能是以错误的方式处理问题,而且通常是没有办法实现你想要的。(当然,欢迎您在这里询问。)

谢谢您的回答。我自己也没有这么频繁地使用关键字
。我能问一下,使用“让这个对象自己”和“设置议程”F是否正确吗?使用“让这个对象”
让代理
A
将创建的对象放入议程(A的议程)?对不起,我不明白这个问题。尝试一下,看看会发生什么。我尝试过,但因为
创建对象
(我不得不问一个新问题,因为这个问题与此问题无关)而收到一条错误消息。因此,我无法检查它是否有效。使用
if bread=A[问我自己[set color red]]
内部
创建对象
将永远不会做任何事情,因为海龟的品种永远是
对象
,永远不会
A
。答案应该是问我自己[设置红色]。