我正在创建一个患者 - 外科医生 - 手术床模型,其中我需要显示在贴片左侧排队的外科医生等待进入中心的手术室并且患者从右侧等待排队。 / p>
我希望外科医生和患者按照他们的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
答案 0 :(得分:1)
排队后你有一个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