【问题标题】:Netlogo: agentset of patches to single agentNetlogo:单个代理的补丁代理集
【发布时间】:2020-05-01 14:39:02
【问题描述】:

我有一个海龟(载体)列表,我试图在我的 go 方法中缩小范围。

这是我的程序:

globals [
metal-sheets
cut-sheets
standard-skeleton
finished-standard-skeleton
prestige-skeleton
finished-prestige-skeleton
]

breed[carriers carrier]

turtles-own [
on-job?
]

patches-own [
processing-time
  machine-type ;;cutter, standard-welder, prestige-welder, riveter
  status ;;import, export, pending
]

to setup
  clear-all
  set-default-shape carriers "circle"
  create-carriers number-of-carriers ;;number-of-carriers is a slider
  [set color grey
  set on-job? false
  setxy random-xcor random-ycor]
  setup-patches
  reset-ticks
end

to setup-patches
  ask patches [
    if pxcor = 1 and pycor = 1 [set machine-type "cutter"]
    if pxcor = 1 and pycor = 5 [set machine-type "standard-welder"]
    if pxcor = 5 and pycor = 1 [set machine-type "prestige-welder"]
    if pxcor = 5 and pycor = 5 [set machine-type "riveter"]

    if machine-type = "cutter" 
    [set pcolor red
    set status "import"]
    if machine-type = "standard-welder" 
    [set pcolor green
    set status "import"]
    if machine-type = "prestige-welder" 
    [set pcolor blue
    set status "import"]
    if machine-type = "riveter" 
    [set pcolor yellow
    set status "import"]
  ]
end

to Go

  let cutter patches  with [machine-type = "cutter"]
    let standard-welder patches with [machine-type = "standard-welder"]
    let prestige-welder patches with [machine-type = "prestige-welder"]
    let riveter patches with [machine-type = "riveter"]

  let free-carriers carriers with [on-job? = false]
  let closest-carrier min-one-of free-carriers [distance cutter] ;;Distance expects agent, got agentset

  ask closest-carrier [
    set color green
  ]
end

我在let closest-carrier min-one-of free-carriers [distance cutter] 行收到一个错误,说距离需要一个代理,但得到了一个代理集,尽管集合中只有一个代理。

完整的错误信息是: DISTANCE expected input to be an agent but got the agentset (agentset, 1 patch) instead.

如何将补丁缩小到一个补丁?

【问题讨论】:

    标签: netlogo


    【解决方案1】:

    如果代理集中只有一个代理并不重要,它仍然是一个代理集。在前面放一个one-of,它会从agentset中选择一个agent,从而改变代码解释代码的方式

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-23
      • 1970-01-01
      • 2020-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多