現在、netlogoランド内をトラックが走行するためのルートを構築しています。トラックが配送先のショップ パッチの隣にある場合、トラックはその動作を変更する必要があります。
ただし、私のif
orifelse
ステートメントはうまく応答していないようで、答えは出力によって異なります。いくつかのテストで:
*turtles> ifelse ((patch (first dirx) (first diry)) = one-of neighbors4) [write "11"] [write "22"]
"11"*
*turtles> ifelse ((patch (first dirx) (first diry)) = one-of neighbors4) [write "111"] [write "122"]
"122"*
*turtles> ifelse (patch (first dirx) (first diry)) = one-of neighbors4 [write "111"] [write "122"]
"122"*
*turtles> ifelse (patch (first dirx) (first diry)) = one-of neighbors4 [write "11"] [write "12"]
"12"*
*turtles> ifelse (patch (first dirx) (first diry)) = one-of neighbors4 [write "11"] [write "22"]
"11"*
この間、私はトラックを動かさず、コマンド センターを使用してこれらの質問をします (タートル トラックの観点から)。
私はこれについて非常に混乱しています。私が変更するのはアクション(何を書くか)だけです。これは、true/false ステートメント自体に影響を与えるべきではありません。
ここで何が起こっているのか、なぜifelse
奇妙な反応をするのか、誰にも手がかりがありますか?