How does one report the distance between links and use those values reported for other calculations in code?

时间:2019-04-16 22:51:51

标签: netlogo

I'm trying to calculate and report the distance (link-length) between specific agentsets in NetLogo? Is there a way to calculate link length into a list?

The movement of the agents is based on whether the distance(connection) value is below/above a threshold. However, I'm having difficulty setting the values of the link length to variable connection. (preferably in a list). I'd appreciate any help.

globals[hourly-wage connection]
breed[offices office]
breed[employees employee]
offices-own [
  pay-high ;; 7 offices pay well
  pay-low  ;; 3 offices dont pay well
]
to setup 
  clear-all
    create-offices 10 [
    set size 1.0
    set color blue
    set shape "house"
    setxy random-xcor random-ycor
    ask offices [create-link-with one-of other offices] ;; undirected links
    ask links [set color red]
  ]

  create-employees 2 [
    set size 1
    set color brown
    set shape "person"
  ]
  set hourly-wage 20
end

;;;; 
 to go
  cal-dist
  ask employees [ 
    if connection > 15
   move-to one-of high-pay office
    if connection <= 15
    move-to one-of low-pay office
  ]
end

to cal-dist
  set connection [list print link-length] ;; 
  ask links [show link-length]
  set salary (hourly-wage * connection)   ;;; salary printed in a list
end

1 个答案:

答案 0 :(得分:1)

Not exactly sure what you're trying to do here with connection etc, but you can put any link variables into a list using of- for example:

to setup
  ca
  ; First create the agents
  crt 5 [
    while [ any? other turtles in-radius 5 ] [
      move-to one-of neighbors
    ]
    set color blue
    set shape "house"
  ]

  ; Once they're created, have them link with
  ; one of the other agents
  ask turtles [ 
    create-link-with one-of other turtles [
      set color red
    ]
  ]

  let link-lengths [ link-length ] of links

  print link-lengths

  reset-ticks
end

I don't know that this actually answers your question, so you may want to provide more detail as to what you're trying to accomplish with these links.