2016-03-31 10 views
0

私は本当に簡単な質問がありますが、私は理解できません。NetLogo:選択したパッチ値でタイムステップごとにグローバルを更新しますか?

私は毎年お金を使うか、total_money_to_spendです。この金額は来年更新される予定です。私のカメは時間ステップごとに1つのパッチを "購入"するので、私のtotal_money_to_spendpriceの値で減少し、私の '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 

答えて

1

私はそれを考え出した:spend-money

to spend-money   ; turtle goes shopping 

    set cash_balance (total_money_to_spend - 10) ; set the actual cash balance first 
    ask turtles [   
    move-to one-of patches with [price > 0] 
    set pcolor magenta 
    set price 0 
    set total_money_to_spend (total_money_to_spend - 10) ; change the global variable within the procedure 
    ] 
end 

私のプロシージャ内globals[]を更新することによって、しかし、私は他の可能性を感謝します! ;)ありがとう! ;)

+1

はい、これは正しい解決策です。しかし、cash_balanceとtotal_money_to_spendが実際にグローバル変数かタートル自身の変数かどうかを考える必要があります。あなたは現在のところ1頭のタートルしか持っていないので、問題はありません。しかし、cash_balanceが、特定のカメが費やすことができる量であることを意図しているならば、カメは自身の変数である必要があり、各カメはすべて中央の金庫から引っ張られるのではなく、 – JenB

+0

良いアイデア、ありがとう@JenB、私は私が私のカメのために様々なtotal_moneyを設定できると思っていませんでした...しかし、私はあなたのアプローチでは本当にもっと面白くなります。ありがとう! – maycca

関連する問題