Netlogo 为什么过了一段时间哈奇恩就停了?
大家早上好 编辑我的模型后,通过添加随机繁殖率:Netlogo 为什么过了一段时间哈奇恩就停了?,netlogo,Netlogo,大家早上好 编辑我的模型后,通过添加随机繁殖率: to migrate if random-float 100 < random-spawn-rate [create-turtles 2 [rt random-float 360 fd 1]] end 迁移 如果随机浮动100
to migrate
if random-float 100 < random-spawn-rate
[create-turtles 2 [rt random-float 360 fd 1]]
end
迁移
如果随机浮动100<随机繁殖率
[创建海龟2[rt随机浮动360 fd 1]]
结束
我的问题是,在一种海龟(船)灭绝后,甚至它们随机孵化的海龟似乎也灭绝了?
我试过其他的方法,但都不管用
请帮帮我
多谢各位
完整代码:
breed [fish a-fish]
breed [boats boat]
boats-own [profit]
to setup
clear-all
ask patches [set pcolor blue]
set-default-shape fish "fish"
create-fish initial-number-fish
[
set color grey
set size 1.0
setxy random-xcor random-ycor
]
set-default-shape boats "boat"
create-boats initial-number-boats
[
set color black
set size 1.5
set profit random (1 * profit-per-fish)
setxy random-xcor random-ycor
]
reset-ticks
end
to go
if not any? turtles [stop]
ask fish
[
move
fish-reproduce
]
ask boats
[
move-boats
catch-fish
death
reproduce-boats
migrate
]
tick
end
to move
rt random 50
lt random 50
fd 1
end
to fish-reproduce
if random-float 100 < fish-growth
[hatch 1 [rt random-float 360 fd 1]]
end
to move-boats
rt random 50
lt random 50
fd 1
set profit profit - 0.1
end
to catch-fish
let prey one-of fish-here
if prey != nobody
[ask prey [die]
set profit profit + profit-per-fish]
end
to death
if profit < 0 [die]
end
to reproduce-boats
if profit > 1
[
set profit (profit / 2)
hatch 1 [rt random-float 360 fd 1]]
end
to migrate
if random-float 100 < random-spawn-rate
[create-turtles 2 [rt random-float 360 fd 1]]
end
养殖[鱼与鱼]
繁殖[船]
自有[利润]
设置
清除所有
询问补丁[设置颜色为蓝色]
设置默认形状鱼“鱼”
创建fish初始编号fish
[
设置颜色为灰色
设置大小为1.0
setxy随机xcor随机ycor
]
将默认形状设置为“船”
创建船只初始编号船只
[
将颜色设置为黑色
套装尺寸1.5
随机设置利润(每条鱼1*利润)
setxy随机xcor随机ycor
]
重置滴答声
结束
外带
如果没有?乌龟[停]
问鱼
[
移动
鱼繁殖
]
问船
[
划船
捕鱼
死亡
复制船只
迁移
]
打上钩
结束
移动
rt随机50
lt随机50
fd 1
结束
鱼繁殖
如果随机浮动100<鱼类生长
[舱口1[rt随机浮动360 fd 1]]
结束
划船
rt随机50
lt随机50
fd 1
设定利润-0.1
结束
捕鱼
让我们在这里捕食一条鱼吧
如果是猎物!=没有人
[问猎物[死]
设定利润+每条鱼的利润]
结束
至死
如果利润<0[死亡]
结束
复制船只
如果利润>1
[
设定利润(利润/2)
图案填充1[rt随机浮动360 fd 1]]
结束
迁移
如果随机浮动100<随机繁殖率
[创建海龟2[rt随机浮动360 fd 1]]
结束
如果没有可以孵化新船的船,则不会创建更多的船。你的舱口取决于船的数量
基本上,对于一艘船:
if profit > 1
[
set profit (profit / 2)
hatch-boat 1 ...
]
每产一艘船,你就把利润减半。除非您的利润增长或保持不变,否则您的船将最终消亡,因为不再孵化。当船创建停止时,您是否仍然有鱼?是的,仍然有鱼,但船的数量消失了。我成功了,谢谢:)