Как вы порождаете несколько черепах в разных местах на NetLo go? - PullRequest
1 голос
/ 25 апреля 2020

Я создаю симуляцию с несколькими пчелиными ульями, которые представлены коричневыми пятнами. Я хотел бы, чтобы несколько черепах появлялись на всех ульях при настройке, однако при использовании моего кода он может порождать черепах только в одном улье. Я пробовал это, используя предустановленные координаты.

    to setup-bees

  create-turtles number-of-bees
  ask turtles [ setxy 0 0 ]
  ask turtles [ set pcolor brown ]
  ask turtles [ set size 1.5 ]
  ask turtles [ set color red]
  ask turtles [
  set xy_list (list)
  ]

    create-turtles number-of-bees
  ask turtles [ setxy -80 0 ]
  ask turtles [ set pcolor brown ]
  ask turtles [ set size 1.5 ]
  ask turtles [ set color red]
  ask turtles [
  set xy_list (list)
  ]

      create-turtles number-of-bees
  ask turtles [ setxy 80 0 ]
  ask turtles [ set pcolor brown ]
  ask turtles [ set size 1.5 ]
  ask turtles [ set color red]
  ask turtles [
  set xy_list (list)
  ]

end

Это все, что у меня есть, и только порождает черепах в последней локации. Любая помощь будет великолепна, спасибо.

1 Ответ

2 голосов
/ 25 апреля 2020

Проблема в том, что каждый из ask turtles относится ко всем черепахам, которые были созданы до этого момента. Итак, что действительно происходит, так это то, что первая партия черепах, первоначально созданная и помещенная в 0,0, затем просится перейти к -80 0 вместе со второй партией черепах, а затем попросится переместиться (вместе со второй партия черепах) до 80 0 с созданием третьей партии. Вам нужно, чтобы setxy и другие запросы относились только к создаваемой партии. Это выглядело бы как

turtles-own [xy_list]
globals [number-of-bees]
to setup-bees
  clear-all
  set number-of-bees 10

  create-turtles number-of-bees [
    setxy 0 0 
    set pcolor brown 
    set size 1.5 
    set color red
    set xy_list (list)
  ]

  create-turtles number-of-bees [
    setxy -80 0
    set pcolor brown 
    set size 1.5 
    set color red
    set xy_list (list)
  ]

  create-turtles number-of-bees [
    setxy 80 0
    set pcolor brown 
    set size 1.5 
    set color red
    set xy_list (list)
  ]
end

Команды в скобках после каждого create-turtles относятся только к к создаваемым черепахам. Таким образом, у вас могут быть пчелы в разных ульях разного цвета или размера.

Вопрос и наблюдение. Я предполагаю, что размер вашего мира вмещает координаты х + -80? И set xy_list (list) может быть просто set xy_list [].

Кстати, другим подходом будет улей sprout пчел. Например,

ask patch 0 0 [
  set pcolor brown
  sprout number-of-bees 
    [
    set size 1.5 
    set color red
    set xy_list []
    ]
]

Надеюсь, это поможет, Чарльз

...