2017-05-25 6 views
1

私は起源(start-patch)から世界中を移動する亀の死亡率を計算する手順(Pass-Away-Space)を作成しています。各カメは、起源からの距離に基づいて自身の死亡率を計算します(start-patch)。次のように私は、この手順のために実装しようとしていたコードは次のとおりです。netlogoの起源からの距離に基づいてカメの死亡率を計算する

to Pass-Away-Space 
    ask turtles [ 
    let chances 1 - exp(-1 * mortality * [distance start-patch] of turtles) 
    if chances >= 1 [die 
     set dead-count dead-count + 1 
    ] 
    ] 
end 

私は取得していますエラーが多数あることを予想入力されているが、リストを得ました。私は問題が何であるか分かりませんし、誰かがコードの問題を指摘し修正できるかどうか疑問に思っていました。

答えて

1

問題はof turtlesです。尋問手続きは一度に1匹のカメに影響を及ぼすので、上の手続きの各カメは[distance start-patch]すべてカメを開始パッチとの距離ではなく評価しています。明確にするために、以下の設定をチェックアウト:

globals [ start-patch ] 

to setup 
    ca 
    reset-ticks 
    crt 10 [ 
    setxy random 30 - 15 random 30 - 15 
    ] 
    set start-patch patch 0 0 
end 

to incorrect-example 
    ask turtles [ 
    print ([ distance start-patch ] of turtles) 
    ] 
end 

to correct-example 
    ask turtles [ 
    print distance start-patch 
    ] 
end 

incorrect-exampleの印刷出力とcorrect-example手順を比較し、あなたが[distance start-patch] of turtlesを使用するときは、すべてのカメの距離のリストを取得していることがわかります。 turtles-own変数(色、サイズなどを含む)を評価するask turtlesを実行すると、各カメは自動的にその変数のバージョンにアクセスします。つまり、どのカメを指定する必要はありません。したがって、pass-away-spaceは以下のようになります(未テスト)。

to Pass-Away-Space 
    ask turtles [ 
    let chances 1 - exp(-1 * mortality * (distance start-patch)) 
    if chances >= 1 [ 
     die 
    set dead-count dead-count + 1 
    ] 
    ] 
end 
関連する問題