プログラミング初心者です。現在artisoc4のモデルをartisoc cloudに言おうしようと思い作業している最中なのですが、artisoc Cloudでは要素番号を指定し、取り出すことができないと知りました。
現在、車両の出発地点をネットワークに含まれるノードからランダムに設定したいと思っているのですが、なにかいい方法はありませんか。日本語が下手で申し訳ありません。一応下にartisoc4で書いたコードを載せておきます。
Dim network As Agtset
MakeAgtSet(network,Universe.city.cross)
Dim num As Integer //交差点数
num=countAgtset(network)
Dim start As Agt
start =GetAgt(network, Int(Rnd()*(num-1))+1 )//networkからランダムに交差点を取得してstartに割り当てる
My.X=start.X
My.Y=start.Y
My.start=start.ID
My.current = start.ID
Dim goal As Agt
goal = GetAgt(network, Int(Rnd()*(num-1))+1) //goalも同様に設定
My.goalAgt=goal
My.goal=goal.ID
My.flag = true
My.steps = 0
エージェント集合の中からランダムにエージェントを取得したい場合は、
飛ぶ鳥モデルからボイドモデルへ
を使って説明すると、パワポのp.12に
self.mawari = self.make_agtset_around_own(2, True) # 自分の周囲のトリを認識する
one = randchoice(self.mawari) # トリの中から1羽選ぶ
とありますが、エージェント集合(self.mawari)の中からランダムにエージェントを取得し、oneに代入しています。
もし、要素番号を指定したい場合は、
エージェント集合をエージェントリストに変換するとよいです。
tori_list = make_agtlist(self.mawari)
one = tori_list[0]