べき乗則に従う環境 ABM に自然災害の可能性を追加したいと思います(多くの場合、わずかな損傷、まれに平凡な損傷、まれに大きな損傷、非常にまれに完全な損傷)。
これまでに次のようにコーディングしました。
to environment ;environmental hits
create-hits 1 [ ; I do not know if it makes sense to do that?
set shape "circle"
set color white
set size 0.05
setxy random-xcor random-ycor
]
ask hits [
ifelse pcolor = red [die] ;if already red, then stop
[ ask n-of random (count patches) patches [ set pcolor red ]] ;otherwise turn red on an random amount of patches
]
end
ここで、「ヒット」がどれだけ強いか (したがって、影響を受けるパッチの数) と、それが発生する可能性 (べき法則に従って) の確率的要素を追加する方法がわかりません (または発生しない) ) 各ティック。誰か助けてくれませんか?
これが最終的なコードです (Alan が回答):
to environment
create-hits 1 [
set shape "circle"
set color white
set size 0.05
setxy random-xcor random-ycor
]
ask hits [
let %draw (random-float 100)
let %strength 0 ;; no damage
if (%draw < 50) [set %strength (%strength + 1)] ;;1 for little damage
if (%draw < 10) [set %strength (%strength + 1)] ;;2 for middle damage
if (%draw < 5) [set %strength (%strength + 1)] ;;3 for strong damage
if (%draw < 1) [set %strength (%strength + 1)] ;;4 for complete destruction
ifelse pcolor = red [die]
[ ask n-of %strength patches [ set pcolor red ]]
]
end