在界面選項卡中,我有一個滑塊,它的取值範圍爲2 & 10.根據用戶使用此滑塊定義的值,應該創建許多數量的烏龜。在netlogo 2中創建動態烏龜[contd ..]
我試過使用多個if語句,但在後續步驟中存在問題。
if (slider-value = 2) [create2]
if (slider-value = 3) [create3]
if (slider-value = 4) [create4]
if (slider-value = 5) [create5]
使用上述條件,如果創建龜後,我分配額外的規則像座標位置每一個人烏龜,他們應該如何行動等等,我試圖再次使用多個if語句規則。但它似乎並不奏效。
例如子查詢用於創建用於創建3個龜如下
to create2
create-challengers 2
ask turtle 0 [set color blue set label-color blue set size 2
set xcor party1-left-right ]
ask turtle 1 [set color red set label-color red set size 2
set xcor party2-left-right ]
ask turtles [ update-rule set old-mysize 0 set shape "default"]
end
:
to create3
create-challengers 3
ask turtle 0 [set color blue set label-color blue set size 2
set xcor party1-left-right ]
ask turtle 1 [set color red set label-color red set size 2
set xcor party2-left-right ]
ask turtle 2 [set color green set label-color green set size 2
set xcor party3-left-right ]
ask turtles [ update-rule set old-mysize 0 set shape "default"]
end
等等等等。
主要問題是即使程序工作,無論用戶定義了多少龜,所有10個都會被創建,但只有用戶定義的龜數量會移動,即如果用戶已經確定了3,那麼當我運行程序10龜被創建,但只有3個移動。
有沒有辦法像其他編程語言一樣,可以簡單地使用if-else語句。
有人可以提出一種方法,真的很感謝幫助。
在此先感謝!
創建海龜後我給你一定的規則對他們移動:
to update-rule
if (slider-values = 2) [update2]
if (slider-values = 3) [update3]
if (slider-values = 4) [update4]
if (slider-values = 5) [update5]
end
而且我再一次創造多個子規則UPDATE2,UPDATE3這基本上是爲每個龜取決於有多少用戶已經定義:
如果有2種海龜:
to update2
ask turtle 0 [set my-rule party1-rule]
ask turtle 1 [set my-rule party2-rule]
end
在3龜的情況下:
to update3
ask turtle 0 [set my-rule party1-rule]
ask turtle 1 [set my-rule party2-rule]
ask turtle 2 [set my-rule party3-rule]
end
以下是在運動規則
to adapt
if (my-rule = "hunter") [hunt]
;;NB stickers do nothing
if (my-rule = "aggregator") [aggregate]
end
to hunt
ifelse (mysize > old-mysize) [jump 1] [set heading heading + 90 + random-float 180 jump 1]
set old-mysize mysize
end
to run-general
create2 create3 create4 create5 create-voters update-support
ask challengers [adapt] update-support
end
to go
run-general
tick
end
的NetLogo有ifelse –
「如果用戶已經確定了3,然後當我運行該程序時,創建了10個烏龜,但只有3個移動「 - 你能告訴我們讓烏龜移動的代碼嗎?這聽起來像是問題出在那裏,而不是你向我們展示的代碼。到目前爲止,我看不到任何錯誤。 –
@SethTisue:我已經包含了這個問題的代碼。有沒有辦法我可以嵌套if-else語句。從我在netlogo字典中檢查的當前if-else語句只允許兩種可能的操作,有沒有一種方法來編碼(如果condition = True,那麼,否則如果condition = False,那麼這樣做,否則做到這一點) – Yuvaraj