一、新增按鈕
Netlogo 很常會用不同按鈕來設定模擬情境,而類似網頁的Button,netlogo 的按鈕也會對應到一個功能。
(一)新增按鈕
- 按下在上方工具列的「添加」旁邊的「按鈕」
- 為按鈕命名
- 輸入按下按鈕要執行的程式名稱
(二)撰寫按鈕功能並對應
在新增按鈕的時候,需要指定命令,也就是按下按鈕要執行的程式名稱,如果輸入一個還未在代碼介面裡面的函式名稱的話,按鈕的文字會是紅色的,提醒我們要指定已存在的函式。
另外,在新增按鈕時,下方還有一個顯示名稱的設定,這裡就跟要執行的程式無關,單純是按鈕上的文字,可以自由設定。例如下圖,按鈕名稱是設定,按下後會執行setup函式。
(三)持續執行與單次執行的差別
在新增按鈕的時候,有一個核取方塊是持續執行。持續執行就是程式會一直執行,也就是這個按鈕裡面的事件會不斷被執行。常見的用法是有一個setup 按鈕做各種初始化設定,接著有一個go按鈕會一直執行,藉以進行模擬。
二、常用語法 ask patches / ask turtles
在【netlogo教學】第一章:什麼是netlogo?什麼是ABM(Agent-Based Modeling)?有提到,netlogo主要有patch和turtle,而通常我們會對這些元素撰寫程式碼做控制。
要對patch做一些事:ask patches
ask patches [ 要patch執行的程式 ]
要對turtle做一些事:ask turtles
ask turtles [ 要turtle執行的程式 ]
初始化設定:ca ( clear-all ,清除全部的簡寫),通常在setup的時候,會先清除前次模擬的成果,用的就是ca這個語法。
三、程式範例
將每個patch都設為黃色,並在上面產生一個藍色的turtle。
patch和turtle的關係是,turtle會在某個patch上,turtle的產生也要指定他要誕生在哪個patch上。
- 先用ca來清除之前的結果
- 將所有patch設為黃色
- 每個patch產生(sprout)一個turtle,並設定顏色為藍色
to setup
ca
ask patches [
set pcolor yellow
sprout 1 [ set color blue ]
]
end
更多netlogo教學系列
上一篇:【netlogo教學】第1章:什麼是netlogo?什麼是ABM(Agent-Based Modeling)?。
下一篇:【netlogo教學】第3章:netlogo的座標系統設定與循環世界。
若有教學或其他合作需求,歡迎來信 nbablissfully@hotmail.com 詳談
小額支持鍾肯尼
如果我的文章有幫助到你,歡迎你點這裡開啟只要40元的小額贊助連結,可以贊助我一杯咖啡錢;我會更有動力繼續寫作,幫助大家解決更多問題。
Pingback: 【netlogo教學】第1章:什麼是netlogo?什麼是ABM(Agent-Based Modeling)? - 鍾肯尼的雜談