Netlogo 错误:您可以';在turtle上下文中不能使用%,因为%仅是观察者

Netlogo 错误:您可以';在turtle上下文中不能使用%,因为%仅是观察者,netlogo,Netlogo,我知道有很多关于这个错误的问题(和答案),但不幸的是,我还没有在我的代码中修复这个错误,甚至没有按照过去的答案修复。我希望你能在这方面帮助我。我知道有些东西不起作用,因为我问了一个问题,但我不知道如何以不同的方式实现它,以便让代理创建一个新对象。 在go中调用过程create\u object时会出现错误消息。 品种A是agenda的所有者。 品种对象是att1 to go ifelse random-float 1 < 0.5 [ ask one-of A [

我知道有很多关于这个错误的问题(和答案),但不幸的是,我还没有在我的代码中修复这个错误,甚至没有按照过去的答案修复。我希望你能在这方面帮助我。我知道有些东西不起作用,因为我问了一个问题,但我不知道如何以不同的方式实现它,以便让代理创建一个新对象。 在go中调用过程
create\u object
时会出现错误消息。
品种
A
agenda
的所有者。 品种
对象
att1

to go
  ifelse random-float 1 < 0.5
  [ ask one-of A
     [
      ifelse empty? agenda

      [ ifelse random-float 1 < 0.5
        [create_object]  ;; this returns the error message
        [remove_object] 
      ]
     ]
   ]
[...]
end
我不知道你是否需要更多的代码。 如果您需要更多信息,请随时发表评论


谢谢

A和object都是海龟吗?如果是这样,您将有一只海龟(品种a)调用一个过程,在该过程中它试图创建一个海龟(品种a)对象。但是,如果您查看Netlogo字典,您会发现
创建turtles
(以及其他形式,如创建对象)仅在观察者使用时有效,而在turtle使用时无效


如果希望海龟创建新海龟,则需要
hatch
命令。请注意,新孵化的海龟将具有与父海龟相同的属性(如位置)。

谢谢JenB。你认为我可以在自己的品种中定义对象并称之为海龟变量或局部变量来做你建议的事情吗?例如:
询问[let object“New object”…set agenda fput object agenda]
to create_object

  create-object 1[
          hide-turtle
          set att1 random-float 1  
          let this-post myself ; is it the same object that I am creating?
        if (condition1= TRUE)
              [set agenda fput this-post agenda] ; this should add the object in the agent A's list
         ]
end