2017-03-25 7 views
0

turtle_indexコードを使用してNetlogoでサイクルを作成しています。このサイクルは機能しますが、一度に1つのタートルだけを使用しています。各カメは次のカメがサイクルを開始する前にサイクルを完了します。私はすべてのカメが同時にそのサイクルに巻き込まれるようにしたい。Netlogo Cyle using turtle_index

to go 
    ask turtle 1 [cycle-forward] 
    wait 0.5 
    ask turtle 2 [cycle-forward] 
    wait 0.5 
    ask turtle 3[cycle-forward] 
end 
+0

「待機」は、現在動作中のカメだけでなく、すべてのエージェントを停止するプリミティブです。上記の例を理解しているように、カメ1は前方に進み、シミュレーション全体が0.5秒待ってから2サイクル先に進み、シミュレーション待ちになります。実際にあなたが望むものを達成するかどうかはわかりません。 Netlogoエージェントは一度に1つの個別のアクションを実行するので、代わりに、あなたのすべてのカメがその手順内の個々のステップを実行するように、 'cycle-forward'プロシージャを再作成する必要があります。 –

+0

私は、グローバル[turtle_index]とカメカウンターを使ってサイクルを設定しています。その結果、カメは一度に1つずつサイクルを通過します。私が望むのは、カメがサイクルを一周して、各カメがサイクルの異なる地点にくるようにすることです。今、1頭のカメは、次のカメがそのサイクルを通過するまでのサイクル全体を通って行きます。 – egur1

答えて

0

ご了承いただいたように、ご理解いただけると思います。これに取り組む1つの方法は、亀がどのようなステップを行ったか、そして彼らが現在のティックに行動したかどうかを知るように、変数をturtles-ownにすることです。そうすれば、彼らは順番に踏み出すことはありません。次に、サイクルをステップに分割し、論理演算子を使用して、設定した基準を満たしていない場合、カメにステップを踏み出さないようにすることができます。例:

turtles-own [ 
    step1? 
    step2? 
    step3? 
    acted? 
] 
to setup 

    ca 
    reset-ticks 
    crt 10 [ 
    set step1? false 
    set step2? false 
    set step3? false 
    set acted? false  
    ] 

end 

to go 
    ask turtles [ 
    set acted? false 
    ] 
    cycle 
    tick 

end 

to cycle 
    let step1t one-of turtles with [ step1? = false ] 
    if step1t != nobody [ 
    ask step1t [ 
     set step1? true 
     set acted? true 
     ;;; example step 1 
     set color red 
     set heading 45 
     fd 3 
    ]  
    ] 

    let step2t one-of turtles with [step1? = true and step2? = false and acted? = false] 
    if step2t != nobody [ 
    ask step2t [ 
     set step2? true 
     set acted? true 
     ;;; example step 2 
     set size 1.5 
     set heading 90 
     fd 3 
    ] 
    ] 

    let step3t one-of turtles with [step2? = true and step3? = false and acted? = false] 
    if step3t != nobody [ 
    ask step3t [ 
     set step3? true 
     set acted? true 
     ;;; example step 3 
     set color color + 2 
     set heading 135 
     fd 3 
    ] 
    ] 
end 
+0

ありがとうございました! – egur1