我正在做一个项目,要求我划分补贴。我有两个品种,工业和港口。现在,我希望每个刻度线都将补贴添加到以前的金额,而不是仅选择该特定刻度线的值。我知道了:
to go
if file-at-end? [ stop ]
file-open "oil price.csv"
set oil-price csv:from-row file-read-line
file-open "co2 price.csv"
set co2-price csv:from-row file-read-line
file-open "electricity price.csv"
set electricity-price csv:from-row file-read-line
;; model update goes here
distribute-subsidies
ask industries [update-profit]
if ticks >= 32 [stop]
tick
end
to distribute-subsidies
ask industries [set subsidy-industry (15000000 - 150000 * subsidy-to-port) / 25]
ask ports [set subsidy-port 150000 * subsidy-to-port]
end
欢迎所有帮助!在此先感谢:)
最大
答案 0 :(得分:1)
您需要一个变量来存储补贴。我认为您正在为每个行业和港口提供补贴。因此,您需要industries-own
和ports-own
为每只乌龟定义一个变量。然后,您可以简单地将新补贴添加到以前的补贴中。
从您的代码中,我相信您已经有了这些变量。您尚未向我们显示own
语句。将您的分发过程替换为:
to distribute-subsidies
ask industries
[ set subsidy-industry subsidy-industry + (15000000 - 150000 * subsidy-to-port) / 25
]
ask ports
[ set subsidy-port subsidy-port + 150000 * subsidy-to-port
]
end
或者,如果您担心效率,请计算一次并加到全部。
to distribute-subsidies
let new-subsidy-industry (15000000 - 150000 * subsidy-to-port) / 25
let new-port-subsidy 150000 * subsidy-to-port
ask industries
[ set subsidy-industry subsidy-industry + new-subsidy-industry
]
ask ports
[ set subsidy-port subsidy-port + new-port-subsidy
]
end