私は本当に簡単な質問がありますが、私は理解できません。NetLogo:選択したパッチ値でタイムステップごとにグローバルを更新しますか?
私は毎年お金を使うか、total_money_to_spend
です。この金額は来年更新される予定です。私のカメは時間ステップごとに1つのパッチを "購入"するので、私のtotal_money_to_spend
はprice
の値で減少し、私の 'cash_balance'はtotal_money_to_spend
- price
になるはずです。タートルは、total_money_to_spend
が許す限り多くのパッチを購入します。したがって: total_money_to_spend
= 50 price
= 10 私の 'cash_balanceは' 限り40、30,20,10、0 ...
する必要があり、コンセプトは超簡単です。
ただし、Netlogoで実行するにはどうすればいいですか? total_money_to_spend
をグローバルとして使用すると、私の 'cash_balance'は各タイステップを更新しません.50に残ります。どのように私は 'cash_balance'を更新できますか?
ありがとうございました!
globals [
cash_balance ; value total_money_to_spend - price of patch
total_money_to_spend ; sum of money
]
patches-own [
price ; cost of the patch
]
to setup
ca
set total_money_to_spend 50
crt 1 [
set color red ]
ask patches [
set price 10
]
reset-ticks
end
to go
if not any? patches with [price > 0] [
stop ]
spend-money
tick
end
to spend-money ; turtle goes shopping
ask turtles [
let price_of_patch [price] of patch-here
move-to one-of patches with [price > 0]
set pcolor magenta
set price 0
; here is the problem - how to update my cash_balance??
; ------------------
set cash_balance (total_money_to_spend - price_of_patch)
]
end
はい、これは正しい解決策です。しかし、cash_balanceとtotal_money_to_spendが実際にグローバル変数かタートル自身の変数かどうかを考える必要があります。あなたは現在のところ1頭のタートルしか持っていないので、問題はありません。しかし、cash_balanceが、特定のカメが費やすことができる量であることを意図しているならば、カメは自身の変数である必要があり、各カメはすべて中央の金庫から引っ張られるのではなく、 – JenB
良いアイデア、ありがとう@JenB、私は私が私のカメのために様々なtotal_moneyを設定できると思っていませんでした...しかし、私はあなたのアプローチでは本当にもっと面白くなります。ありがとう! – maycca