2016-05-11 2 views
1

私はBREED1(まだ)のカメとBREED1の隣にいるbreed2(携帯)のカメとをリンクしようとしていました。 BREED1とbreed2の間のリンク長に応じて変数を変更するには、そうしたいと思います。 (BREED1は家を表し、breed2は人を表していると言うことができます)、家から離れている(BREED1がリンクされている)距離に応じて、人々が「保護されている」かどうかを変更したいと思います。 これが最良の方法であるかどうかは分かりませんが、ここでは自分のコードですが、 "保護された"変数がデフォルトでは常にfalseであるため、機能していないことが分かります。私もnetlogoでリンクを作成し、link-neighborsにリンク長に従ってコマンドを実行する方法を教えてください。

ask link-neighbors 
    [ ifelse link-length < 2 
    [set protected true] 
    [set protected false]] 

リンクの長さに関する部分を追加したいと思い

to protect 
ask n-of total-number-BREED1 BREED1 
    [ if any? breed2-on neighbors 
    [ create-link-with [who] of breed2-on neighbors] 
    ask link-neighbors 
    [ set protected true] 
    ] 

はあなたの助けをありがとう!

答えて

1

breed2オン隣接するパッチとのリンクを作成し、これを試してみてください:

ask BREED1 
    [ 
    if any? breed2-on neighbors [ create-links-with breed2-on neighbors] 
    ask link-neighbors [ set protected true] 
    ] 

と、この、breed1およびそれの隣人

ask BREED1 
[ 
    ask link-neighbors 
    [ 
     if [link-length] of link-with myself < 2 [ do something] 
    ] 
] 

ノート間のリンクの長さを取得:リンク-lengthはリンクの観点から呼び出されるため、2つのものを結ぶリンクを取得する必要があります。

+0

これはまだ動作しません。私は、「保護された= true」で数えられたbreed2のモニターを使用し、保護されていることに応じてコードの別の部分を0に保ちます。/ – leas

+0

どのくらい離れていますか?お互いから隣人?それらが2以上の場合、プロテクトは真実ではありません。 – mattsap

+0

BREED1とbreed2はさまざまな距離で区切られていますが、そのうちのいくつかは同じパッチまたは近隣のパッチにあります – leas

関連する問題