# エージェント集合peopleを、既に配置されているエージェント集合residentsにも重ならないようランダムに配置する random_put_agtset_sqgrid(people, avoid=residents)エージェントを配置する際に,1つのエージェントと重ならないようにするには上記のような記述だと思うのですが,2つ以上のエージェントと重ならないようにするにはどのようにするとよいのでしょうか?
ありがとうございます.
2つ以上のエージェントの場合は、2つ以上のエージェントの集合をつくって、avoidに指定すればよいです。 例えば、map上にred、green、blueのエージェントを定義した場合は、以下のように記述できます。
def univ_init(self):
# エージェントを生成
reds = create_agt(Universe.map.red, num=4)
greens = create_agt(Universe.map.green, num=4)
blues = create_agt(Universe.map.blue, num=4)
# redとgreenの集合
colors = []
for one_red in reds:
colors.append(one_red)
for one_green in greens:
colors.append(one_green)
# ランダムに配置
random_put_agtset_sqgrid(reds)
random_put_agtset_sqgrid(greens, avoid=reds)
random_put_agtset_sqgrid(blues, avoid=colors)