如何在 netlogo 中按代理人编号的升序或降序排列代理人?
how to lineup the agents in the ascending or descending order of their who number in netlogo?
我正在创建一个患者-外科医生-手术床模型,其中我需要显示外科医生在贴片左侧排队等候进入中间的手术室,患者在右侧排队等候.
我希望根据他们的 who
编号
将外科医生和患者定位在贴片上
S1 S2 S3 --> 手术室 < -- P1 P2 P3
我使用下面的查询,我不确定在哪里合并 who 号码
to lineup-patients
LET gapp 10
LET directions
[45 90 230 180 45 90 230 180 45 90 45 90 230 180 45 90 230 180 45 90 45 90 ]
LET jj 0 ; counter / index
REPEAT initial-number-patients
[ create-PATIENTS 1
[ SETXY (0 + jj * gapp) 20
set shape "person"
SET size 1.2
SET label who
SET label-color black
SET heading item jj directions
]
SET jj jj + 1
ASK patients [
MOVE-TO ONE-OF PATCHES WITH [ PCOLOR = yellow ]
] ]
END
你把它们排成一行后就有了move-to
。它总是感动所有现有的病人。为了让事情更干净,写一个单独的 lineup
proc.
to lineup [#patients #patch #gap]
let _x ([pxcor] of #patch)
let _y ([pycor] of #patch)
let _xqs n-values (count #patients) [[n] -> _x + n * #gap]
(foreach sort #patients _xqs [
[p x] -> ask p [setxy x _y]
])
end
您可以使用 NetLogo 的新实例进行测试,如下所示:
to test
ca
crt 20
lineup turtles one-of patches 0.5
end
我正在创建一个患者-外科医生-手术床模型,其中我需要显示外科医生在贴片左侧排队等候进入中间的手术室,患者在右侧排队等候.
我希望根据他们的 who
编号
S1 S2 S3 --> 手术室 < -- P1 P2 P3
我使用下面的查询,我不确定在哪里合并 who 号码
to lineup-patients
LET gapp 10
LET directions
[45 90 230 180 45 90 230 180 45 90 45 90 230 180 45 90 230 180 45 90 45 90 ]
LET jj 0 ; counter / index
REPEAT initial-number-patients
[ create-PATIENTS 1
[ SETXY (0 + jj * gapp) 20
set shape "person"
SET size 1.2
SET label who
SET label-color black
SET heading item jj directions
]
SET jj jj + 1
ASK patients [
MOVE-TO ONE-OF PATCHES WITH [ PCOLOR = yellow ]
] ]
END
你把它们排成一行后就有了move-to
。它总是感动所有现有的病人。为了让事情更干净,写一个单独的 lineup
proc.
to lineup [#patients #patch #gap]
let _x ([pxcor] of #patch)
let _y ([pycor] of #patch)
let _xqs n-values (count #patients) [[n] -> _x + n * #gap]
(foreach sort #patients _xqs [
[p x] -> ask p [setxy x _y]
])
end
您可以使用 NetLogo 的新实例进行测试,如下所示:
to test
ca
crt 20
lineup turtles one-of patches 0.5
end