2016-06-23 3 views
1

Netlogoで正しくコーディングする方法を実際に学んだことはありません。私がやったことは、試行錯誤していて、私が立ち往生したときにここで質問しています。だから、これが愚かな質問であれば、私はお詫び申し上げます!Netlogoでのチックの使用

現在、すべてのティックが1日に等しいモデルで作業しています。私は、特定のダニ(tick = 60,425,790,115,1520,1855など)で発生したい特定のアクションを持っています。

私はこの試みた:このコードで

if ticks = [60 425 790 1155 1520 1885] 


[ 
    create-hatchlings Hatchling-Release 
    [ set color 57 
    set size 1.5 
    move-to one-of patches with [ pcolor = cyan ] 
    set birth-tick -60] 

create-m-hatchlings Hatchling-Release 
    [ set color 107 
    set size 1.5 
    move-to one-of patches with [ pcolor = cyan ] 
    set m-birth-tick -60] 
    ] 

を、何も起こりません。

if ticks = 60 
    [ 
    create-hatchlings Hatchling-Release 
    [ set color 57 
    set size 1.5 
    move-to one-of patches with [ pcolor = cyan ] 
    set birth-tick -60] 

create-m-hatchlings Hatchling-Release 
    [ set color 107 
    set size 1.5 
    move-to one-of patches with [ pcolor = cyan ] 
    set m-birth-tick -60] 
    ] 

if ticks = 425 
    [ 
    create-hatchlings Hatchling-Release 
    [ set color 57 
    set size 1.5 
    move-to one-of patches with [ pcolor = cyan ] 
    set birth-tick -60] 

create-m-hatchlings Hatchling-Release 
    [ set color 107 
    set size 1.5 
    move-to one-of patches with [ pcolor = cyan ] 
    set m-birth-tick -60] 
    ] 

が、私は最終的に倍のこの数百を行う必要があります:私は、適切なタイミングで発生するイベントを取得することができるよ唯一の方法はそうのように、各番号ごとに個別にそれを書き込むことです。これを書くには良い方法がありますか?

答えて

3

使用member?目盛りの値は、あなたのリストに表示されているかどうかを確認するには:一方

if member? ticks [60 425 790 1155 1520 1885] 
[ 
    ; do something 
] 

を - あなたは毎年、60日目に何かをしたい場合は、モジュロ(mod)を使用します。

if ticks mod 365 = 60 
[ 
    ; do something 
] 

リストは必要ありません。

関連する問題