0

我正在编写一个模型,农民会季节性地更新利润并相应地种植农作物。一年的时间段内总共会有 630 个刻度。有两个季节。第一季将需要 252 个滴答声来完成一个作物周期。其他季节将需要接下来的 378 个刻度来完成一个作物周期。对于这两个季节,农民将计算她的利润。最初在 252 个刻度之后,然后重置一些变量以开始下一季并计算接下来 378 个刻度的利润。这将同时进行并运行一段时间,比如说 10 年或更长时间。有没有人可以帮助编写代码。

下面给出代码。

问题:Ticks mod 命令将高估或低估每个季节的利润。我想计算第 1 季的利润从 0 到 252 滴答,第 2 季从 253 滴答到 630 滴答。第 1 季的利润从 631 到 882 再计算第 2 季到 1260 滴答。并且这将继续。

    breed [farmers farmer]
farmers-own [water irrigation-turn]
to setup
  clear-all
  create-farmers 5
  [ set label who
    set size 2
  ]
   ask farmer 0 [ setxy min-pxcor + 1 0 set irrigation-turn 0]
     ask farmer 1 [ setxy min-pxcor + 1 2 set irrigation-turn 1]
     ask farmer 2 [ setxy min-pxcor + 1 4 set irrigation-turn 2]
     ask farmer 3 [ setxy min-pxcor + 3 0 set irrigation-turn 3]
    ask farmer 4[ setxy min-pxcor + 3 2 set irrigation-turn 4]
    ask farmers [ set label who
     set size 2]
  reset-ticks
end
to go
 irrigate
  update-profits
 tick
end
to irrigate
    ask turtles with [irrigation-turn = (ticks mod count farmers)] 
    [ set color  red]
    ask turtles with [  irrigation-turn != (ticks mod count farmers)] 
    [set color blue]
  end
to update-profits
  if ticks mod 630 = 252 [set-season1profit]
  if ticks mod 630 = 378 [ set-season2profits]
  end
4

0 回答 0