我的 netlogo 代码似乎没有任何问题,但我的代理没有出现

my netlogo code doesnt seem to have any problems, but my agents dont appear

我刚刚开始学习使用 netlogo,我正在尝试编写一个简单的模型来让不同的代理 [breeds] 执行不同的任务。 interface/universe 上出现的代理是使用选择器选择的...

这是我在代码中写的:


breed [escarabajos escarabajo]; type of beetles that survive in forests
breed [beetles beetle]; type of beetles that survive in agricultural areas 

;For each breed there are three sub-types of beetles, depending on how far they can move (vagility) this is also selected with a chooser. 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SETUP ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

to setup

  ca

  setup-patches

  set-default-shape turtles "bug"

  ask turtles [create-bichos]

  reset-ticks 
  
end

to setup-patches

  ask n-of 100 patches [ set pcolor green ]

  ask n-of 500 patches [set pcolor yellow]

end

to create-bichos

  if breed = "escarabajo" [

    ask patches with [ pcolor = green ] [

      let k forest-carrying-capacity ; what I want is to create the maximum amount of beetles ;possible per patch, and this maximum is determined with a carrying capacity value, which is set ;with a slider.... 

      sprout-escarabajos k [set color 116 set size 6]
      ]
  ]
  
   if breed = "beetle" [

    ask patches with [ pcolor = yellow ] [

        let k agricultural-carrying-capacity

        sprout-beetles k [set color 76 set size 6] 
      ]
  ]

end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; GO ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


to go

  if ticks = 72 [stop]

  ask turtles [rt random 360

    move
  ]
  

end

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;; PROCEDURES ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

to move

  if vagility = "High"

  [ask turtles [

    move-to one-of patches in-radius 2 

  ]
  ]
  
  if vagility = "medium"

  [ask turtles [

   move-to one-of neighbors

  ]
 ]
  
  if vagility = "low"

  [ask turtles [

   move-to one-of neighbors4

  ]
]

end 

就像我说的,代码似乎没有任何问题,但是当我点击设置按钮时,只出现了不同颜色的补丁...

使用 create agent command create-escarabajos <number>create-beetles <number> 创建自定义品种的新代理人

您有行 ask turtles [create-bichos]。这有三个问题。 (1) 你还没有海龟,所以没有要问的海龟,所以没有调用create-bichos过程。 (2) 如果你已经有了一些海龟,那么每只海龟都会调用这个过程,所以它们会多次要求补丁做事情。 (3) breed是海龟的属性,不能作为选择器的名字。

作为初学者,您需要编写更小的代码,并确保每个代码都能正常工作,然后再继续。因此,让我们假设您从创建海龟开始(因为这是您的问题)并且您的选择器称为 'breed-select'。解决方案是简单地删除 ask turtles,但作为第一步,您应该在引入更多代码之前简单地创建固定数量的海龟。

breed [escarabajos escarabajo]; type of beetles that survive in forests
breed [beetles beetle]; type of beetles that survive in agricultural areas 

to setup
  clear-all
  setup-patches
  set-default-shape turtles "bug"
  create-bichos
  reset-ticks 
end

to setup-patches
  ask n-of 100 patches [ set pcolor green ]
  ask n-of 500 patches [set pcolor yellow]
end

to create-bichos
  if breed-selector = "escarabajo"
  [ ask patches with [ pcolor = green ]
    [ sprout-escarabajos 5 [set color 116 set size 6]
    ]
  ]
  if breed-selector = "beetle"
  [ ask patches with [ pcolor = yellow ]
    [ sprout-beetles 5 
    ]
  ]
end