NetLogo:如何限制blob大小?
我想在获取补丁的过程中创建一种反馈。在一个时间步中,我想:NetLogo:如何限制blob大小?,netlogo,Netlogo,我想在获取补丁的过程中创建一种反馈。在一个时间步中,我想: 选择修补程序获取修补程序 降低相邻补丁的成本 达到一定程度 在相邻单元格中继续收获(选择) 连接的修补程序的最大数量跨越某个级别,移动到其他地方 向blob附近的单元格添加“保护” 简单地说,补丁的收获总是会降低相邻补丁的成本,但是我的连接blob不能超过特定的大小(即补丁的数量) 以下是我到目前为止所做的工作-通过结合不同的收割技术(切掉第一个补丁,是否继续按blob收割…)。然而,我相信有一个最简单的方法来让它工作 global
- 选择修补程序获取修补程序
- 降低相邻补丁的成本 达到一定程度
- 在相邻单元格中继续收获(选择)
- 连接的修补程序的最大数量跨越某个级别,移动到其他地方
- 向blob附近的单元格添加“保护”
globals [
limit_harvest ]
patches-own [
forest?
cost
]
to setup
clear-all
setup-patches
setup-turtles
reset-ticks
end
to setup-patches
ask patches [
set pcolor green
set forest? TRUE
set cost 20
]
end
to setup-turtles
crt 1
end
to go
if any? patches with [forest? = TRUE] [
harvest ]
if ticks mod 20 = 0 [
set limit_harvest 0 ]
tick
end
to harvest
ask turtles [
ifelse by_blob? = FALSE [
; let min_cost min-one-of patches []
move-to one-of patches with [
forest? = TRUE]
set pcolor red
set forest? FALSE
decrease_cost
]
[ print "continuous"
ifelse limit_harvest <= 10 [
let min_cost min-one-of patches with [forest? = TRUE ] [cost]
move-to min_cost
;min-one-of patches with [forest? = TRUE] [distance myself]
rt 360
set pcolor red
set forest? FALSE
decrease_cost
set limit_harvest limit_harvest + 1
]
[ move-else ]
]
]
end
to move-else
move-to one-of patches with [forest? = TRUE ]
set pcolor yellow
set forest? FALSE
decrease_cost
set limit_harvest limit_harvest + 1
harvest2
end
to harvest2
ifelse limit_harvest <= 10 [
let min_cost min-one-of patches with [forest? = TRUE ] [cost]
move-to min_cost
;min-one-of patches with [forest? = TRUE] [distance myself]
rt 360
set pcolor red
set forest? FALSE
decrease_cost
set limit_harvest limit_harvest + 1
]
[ move-else ]
end
to decrease_cost
ask patches in-radius 1 [
set cost (cost * 0.95 )]
ask patches in-radius 2 [
set cost (cost * 0.85 )]
ask patches in-radius 3 [
set cost (cost * 0.75 )]
ask patches in-radius 4 [
set cost (cost * 0.65 )]
end
to view_cost
ask patches [
set pcolor scale-color red cost 10 0
]
end
globals[
限制[收获]
补丁自己[
森林?
成本
]
设置
清除所有
安装补丁
安置海龟
重置滴答声
结束
设置修补程序
询问补丁[
将颜色设置为绿色
设定森林?真的吗
固定成本20
]
结束
安置海龟
阴极射线管1
结束
外带
如果有的话?具有[forest?=TRUE]的修补程序[
收获]
如果刻度mod 20=0[
设置限制\u 0]
打上钩
结束
收获
问海龟[
ifelse by_blob?=错误[
;让min_花费min一个补丁[]
移动到具有的修补程序之一[
森林?=真的]
设置颜色为红色
设置森林?错误
降低成本
]
[打印“连续”
如果不是这样的话,就限制你的收获