2017-04-24 4 views
0

私は2車線道路と合流する1車線道路のシミュレーションに取り組んでおり、すべて同じ方向に向いています。マージしていない車(cars1)は、半径2以内の車をマージして左車線に変更する必要があるかどうかを確認し、そうであれば左車線をチェックして安全かどうかを確認します。Netlogo Cars Merging

ask cars1[ 
    if (not any? turtles-at -2 4) and (not any? turtles-at -1 4) 
    and (not any? turtles-at 0 4) and (not any? turtles-at 1 4) 
    and (not any? turtles-at 2 4) and (not any? turtles-at 3 4) 
    and (any? merging-cars in-radius 3) 
    [ set ycor 2]] 

私はそれが左車線に変更するために最も近い車線にcars1のために安全でない場合、マージ車が停止しようとしています。

ask merging-cars[ 
    loop[ 
    if[any? cars1 in-radius 2] 
    [stop] 
    ]] 

これは動作しないコードです。合併している車を安全でない時に止める方法を見つけ出していない。

おかげ

+0

モデルライブラリの "Traffic 2 Lanes"モデルを見ましたか?モデル内のマージ行動の例として役立つかもしれませんが、衝突しようとしている車線に余裕があれば車線が変更されます。 –

+0

はい、私はそれを見て、それは私のシミュレーションの特定の部分で多くの助けているが、この状況では役立たない。合併する車が安全かどうかを確認する必要があり、そうでない場合は合流するのが安全になるまで待つ必要があります。 – Emory

+1

権利。再現可能な例を含めるように質問を編集できますか([MCVEガイドライン](http://stackoverflow.com/help/mcve))?必要なことを行うにはいくつかの方法がありますが、詳細や文脈を見ることなく、最良の選択肢を提案することは困難です。 –

答えて

0

を見ていないいずれかを持って正しい方向にあなたを取得するには?これは右に60度の角度をチェックする....言っている

not any? turtles-on patch-right-and-ahead 60 2 

:あなたのようなコマンドを使用して、右または左だけでなく、をチェックするための角度を組み込むことができ、ノートを文書化して作りますこのカメの前に2パッチ。