2016-06-13 1 views
1

赤色のパッチは避けてください。しかし、私は、カメに "fd 1 + random-float 2.0"を動かすように求められた場合、前方に赤いパッチがあり、時には(ほとんどの場合でも)順番。また、私が "fd 1"や "fd 0.1 + random-float 0.9"を動かすようにカメに頼むと、コードはうまく動作します。 うまくいけば、私がカメに1歩進んでくれるように頼んでいるパッチの数が、うまくいけばいいと思う。移動 "fd 0.1 + random-float 0.9"の次のパッチは何でしょうか。これをパッチ先読み1でどのように動作させることができますか?私のコードとインターフェースが追加されました。パッチ・アヘッド1では特定の色のパッチを避けるためにカエルに質問する方法はありますが、NetLogoのワンステップで大きなカメ(fd 1ではなく)で前方へ移動します

enter image description here

to setup 
    clear-all 
    ask patches [set pcolor green ] 
    ask patches with [pycor = 3] [set pcolor red] 

    create-turtles 40  
    [ 
     set color blue 
     set xcor random-pxcor 
     set ycor random-pycor 
     set heading random 360 
     set size 1 
     set speed 1 + random-float 2.0 
    ] 
end 

to go 
    ask turtles [ 
    fd speed 
    avoid-walls 
    ] 
end 

to avoid-walls 
    if [pcolor] of patch-ahead 1 = red [set heading heading - 180] 
end 
+1

あなただけ先に1つの単位を探しているが、潜在的に3.0ユニットを移動することができます。あなたの赤い帯は、カメが作れる最大の移動よりも広い必要があります。あるいは、固定小数点だけでなく、前方の範囲を確認する必要があります。 –

+0

ありがとう@MarcB、私はポイントを得た。 –

答えて

3

Try using in-cone代わりにパッチ先の

to avoid-walls 
    let front-patches patches in-cone 2 75 
    if pcolor of one-of front-patches = red [set heading heading - 180] 
end 
+0

ありがとう、私はそれを試みたが、すべて同じ。 @MarcBは私が赤のパッチサイズを3単位にした後に提案したように、それはうまくいった。 –

関連する問題