2017-04-09 20 views
0

我試圖讓它有「免疫= 0」和「生病= 0」的烏龜在碰到一隻烏龜時生病會有「生病= 1" 。NetLogo:如何編碼有條件的「詢問」

ask turtles with [immune = 0 and sick = 0] 
    [if any? turtles-on patch-ahead 1 with [sick = 1] 
    [if (random 100) < infection-rate 
     [set sick 1] 
    ] 
    ] 

但是,給出的錯誤是「WITH期望這個輸入是一個代理集,但是卻得到了一個數字」。有沒有辦法做到這一點?

回答

1

你在做什麼很好,NetLogo只是感到困惑。此代碼通過語法檢查器 - 我在違規行中添加了一些括號。

globals [infection-rate] 
turtles-own [immune sick] 

to testme 
    ask turtles with [immune = 0 and sick = 0] 
    [if any? (turtles-on patch-ahead 1) with [sick = 1] 
    [if (random 100) < infection-rate 
     [set sick 1] 
    ] 
    ] 
end