Permissions NetLogo权限异常

Permissions NetLogo权限异常,permissions,patch,turtle-graphics,netlogo,Permissions,Patch,Turtle Graphics,Netlogo,我的netlogo程序有问题。代码如下: globals[ growth-param money-size-ratio ] turtles-own[ location tsize bbalance ] to setup ca reset-ticks ask patches[set pcolor blue] create-turtles initial-telemarketers [ set size 1 set bbalance 0.0

我的netlogo程序有问题。代码如下:

globals[
growth-param
money-size-ratio

]

turtles-own[
  location
  tsize
  bbalance
]

to setup
  ca
  reset-ticks
  ask patches[set pcolor blue]

  create-turtles initial-telemarketers [
    set size 1
    set bbalance 0.0
    setxy random-xcor random-ycor
    set shape "circle"
  ]
  set growth-param 1000
  set money-size-ratio 0.001
end

to go
  ask patches[set pcolor blue]
  sell
  accounting
  observer-updates
  tick
end

to sell

  let territory 10 * sqrt size
  let maxcalls 100 * size
  ask n-of maxcalls patches in-radius territory[
    if pcolor = blue [set pcolor black]
    set bbalance bbalance + 2
  ]

end

to accounting
  let cost size * 50
  ask turtles[
  set bbalance bbalance - cost

  ifelse bbalance < 1
  [die]
  [set size bbalance * growth-param]
  ]

end

to observer-updates

end
globals[
生长参数
货币规模比率
]
乌龟自己的[
位置
tsize
平衡
]
设置
ca
重置滴答声
询问补丁[设置颜色为蓝色]
创建海龟初始电话销售员[
1号套餐
将bbalance设置为0.0
setxy随机xcor随机ycor
设置形状“圆”
]
将生长参数设置为1000
将货币大小比率设置为0.001
结束
外带
询问补丁[设置颜色为蓝色]
卖
会计
观察员更新
打上钩
结束
出售
面积为10*sqrt
让maxcalls调用100*大小
在半径范围内询问n个maxcalls补丁[
如果pcolor=蓝色[将pcolor设置为黑色]
设置B平衡B平衡+2
]
结束
会计
让成本大小为*50
问海龟[
设置B平衡B平衡-成本
如果B平衡<1
[死亡]
[设置大小B平衡*增长参数]
]
结束
查看观察员更新
结束
简单地说,这应该是多少电话营销公司互动的一个模型。这是Railsback&Grimm的模特书

每次它尝试运行时,我都会看到两个问题:在过程sell中,它不想将bbalance设置为新值,因为它仅为turtle,而tick仅为observer上下文


谢谢你的帮助

sell
是一个海龟过程(因为它在radius中使用海龟原语,例如
size
)。但是
go
是一个观察程序。不能直接从observer过程调用turtle过程;您需要指定要运行它的海龟。在
go
内部,我想你可能想写
询问海龟[sell]
而不是仅仅
sell
sell
是一个海龟程序(因为它使用海龟原语,例如
大小
半径
)。但是
go
是一个观察程序。不能直接从observer过程调用turtle过程;您需要指定要运行它的海龟。在
go
里面,我想你可能是想写
ask turtles[sell]
而不仅仅是
sell

globals[
globals[

  money-size-ratio

]

turtles-own[
  location
  tsize
  bbalance
  maxsize
]

to setup
  ca
  reset-ticks
  ask patches[set pcolor blue]

  create-turtles initial-telemarketers [
    set size 1
    set bbalance 0.0
    setxy random-xcor random-ycor
    set shape "circle"
    set maxsize 0
  ]

  set money-size-ratio 0.001
end

to go

  ask patches[set pcolor blue]
  ask turtles [sell]
  ask turtles [accounting]  ;; let's ask the turtles to do this
  observer-updates
  tick

end

to sell
  let territory 10 * sqrt size
  let maxcalls 100 * size
  if maxcalls > 40401[
    set maxcalls 40401;keeps maxcalls within acceptable bounds
  ]
  let coun 0
  ask n-of maxcalls patches in-radius territory[
    if pcolor = blue[
      set pcolor black
      set coun coun + 2
    ] 
  ]
  set bbalance bbalance + coun


end

to accounting
  let cost size * 50 ;; size is a turtle variable so if you want to access it this way, let's make the whole thing
                     ;;  a turtle procedure.  That's what was confusing Netlogo about the tick command 

    set bbalance bbalance - cost

    if bbalance > growth-param
     [set size size + (bbalance - growth-param) * money-size-ratio
      set bbalance growth-param
       ]
    if size > maxsize[
      set maxsize size
    ]


    if bbalance <= 0
    [show (word "dead. Maximum size: " maxsize)
      die

      ]

    if size = 0
    [show (word "dead. Maximum size: " maxsize)
      die

      ]



end

to observer-updates

end
货币规模比率 ] 乌龟自己的[ 位置 tsize 平衡 最大尺寸 ] 设置 ca 重置滴答声 询问补丁[设置颜色为蓝色] 创建海龟初始电话销售员[ 1号套餐 将bbalance设置为0.0 setxy随机xcor随机ycor 设置形状“圆” 将maxsize设置为0 ] 将货币大小比率设置为0.001 结束 外带 询问补丁[设置颜色为蓝色] 问海龟[卖] 问海龟[会计];;让我们让海龟们做这个 观察员更新 打上钩 结束 出售 面积为10*sqrt 让maxcalls调用100*大小 如果maxcalls>40401[ 设置maxcalls 40401;将maxcalls保持在可接受的范围内 ] 让我们来谈谈 在半径范围内询问n个maxcalls补丁[ 如果pcolor=蓝色[ 设置彩色黑色 设置CONN CONN+2 ] ] 设置B平衡B平衡+协商 结束 会计 成本大小为*50;;大小是一个海龟变量,所以如果您想通过这种方式访问它,让我们来完成整个过程 ;; 海龟手术。这就是让Netlogo对tick命令感到困惑的地方 设置B平衡B平衡-成本 如果B平衡>生长参数 [设定大小+(B平衡-增长参数)*货币大小比率 设置B平衡增长参数 ] 如果大小>最大大小[ 设置最大大小 ] 如果b平衡
全局[
货币规模比率
]
乌龟自己的[
位置
tsize
平衡
最大尺寸
]
设置
ca
重置滴答声
询问补丁[设置颜色为蓝色]
创建海龟初始电话销售员[
1号套餐
将bbalance设置为0.0
setxy随机xcor随机ycor
设置形状“圆”
将maxsize设置为0
]
将货币大小比率设置为0.001
结束
外带
询问补丁[设置颜色为蓝色]
问海龟[卖]
问海龟[会计];;让我们让海龟们做这个
观察员更新
打上钩
结束
出售
面积为10*sqrt
让maxcalls调用100*大小
如果maxcalls>40401[
设置maxcalls 40401;将maxcalls保持在可接受的范围内
]
让我们来谈谈
在半径范围内询问n个maxcalls补丁[
如果pcolor=蓝色[
设置彩色黑色
设置CONN CONN+2
] 
]
设置B平衡B平衡+协商
结束
会计
成本大小为*50;;大小是一个海龟变量,所以如果您想通过这种方式访问它,让我们来完成整个过程
;;  海龟手术。这就是让Netlogo对tick命令感到困惑的地方
设置B平衡B平衡-成本
如果B平衡>生长参数
[设定大小+(B平衡-增长参数)*货币大小比率
设置B平衡增长参数
]
如果大小>最大大小[
设置最大大小
]

如果bbalance正常,如果有人试图在谷歌上搜索,但找不到其他内容,这是我的完整(工作!)代码:好的,如果有人试图在谷歌上搜索,但找不到其他内容,这是我的完整(工作!)代码: