【问题标题】:How to create turtles that create (or are owner of) objects with specific attributes?如何创建创建(或拥有)具有特定属性的对象的海龟?
【发布时间】:2019-11-13 18:45:54
【问题描述】:

下面的代码应该随机选择一个海龟(selected)并让它创建一个带有属性的对象(sizeshape)。 selected 是局部变量,objects 是品种; new_objectsizeobjects-own。 我考虑对象品种的原因是我想通过时间监视网络内的这些对象。在我的代码中,对象的sizeshape 应该具有相同的selected's sizeshape 值。可能会有另一种方法来做我想做的事情,比我的更有效和正确。

  let selected nobody

      set selected one-of turtles with [breed = engineersA or breed = engineersB]
      if empty? [my-list] of selected [
        ask selected [
                set size random-float 1
              ]
                create-objects random 10[
                hide-turtle
                set new_object self
                set size [size] of selected
                set shape [shape] of selected
              ]
              set my-list fput new_object my-list
       ] 

new_object 中的my-list 仍应保留有关大小和形状的信息。 我应该遵循的架构是:

  • 随机选择一只乌龟
  • 为这只海龟创建一个具有特定属性(大小和形状)的新对象
  • 把这个对象,保留它的属性,放到海龟的列表中

由于我在绘制对象时遇到了一些问题(当我想区分 engineersA 创建的对象和 engineersB 创建的对象时),我想请你帮忙以更好地了解如何创建海龟对象/项目的所有者。

任何建议和/或 cmets 将不胜感激。

谢谢

【问题讨论】:

    标签: netlogo


    【解决方案1】:

    你没有说你的问题是什么。但是有三种方法可以创建海龟代理。查看create-sprout-hatch-。在这种情况下,您需要hatch,因为这是父海龟创建具有相同属性值的子海龟的方式。使用hatch-objects 而不是create-objects。这也指定了小海龟的品种。

    这是你想要的吗?它从父级继承大小和形状,并使用myself 来引用父级海龟。

    ask one-of turtles with [breed = engineersA or breed = engineersB]
    [ if empty? my-list
      [ set size random-float 1
      ]
      hatch-objects random 10
      [ hide-turtle
        let this-object self
        ask myself
        [ set my-list fput this-object my-list
        ]
      ]
    ]
    

    【讨论】:

    • 谢谢 JenB。我忘了说问题是可以创建作为其他对象/海龟所有者的海龟。像我一样分配属性是否正确,即使使用孵化-?
    • 如果您使用hatch 创建海龟,那么子海龟的属性将与父海龟的属性相同。因此,您根本不需要显式设置这些值。
    • 那么,将这些属性关联到舱口内会更合适,不是吗?最后一个问题,如果我将 new_object 添加到我的列表中,该对象的大小和形状值与我分配给该对象的值相同吗?
    • 当我写 if empty? [my-list] 时,它返回错误“预期文字值”。你知道为什么吗?
    • 对不起,不应该有括号
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-28
    • 2010-12-04
    • 2015-08-28
    • 1970-01-01
    相关资源
    最近更新 更多