元孢自动机,森林灭火???

-回复 -浏览
楼主 2018-05-29 00:13:49
举报 只看此人 收藏本贴 楼主

假的

这里是森林点火

不知道大家有没有听过数学建模的元孢自动机和森林灭火算法,不知道的可以去百度下,这里是用javascript模拟实现的森林灭火算法,在实践过程中发现,咱们的JS是单线程语言

在这里我实现的是森林灭火的简化版,但内部运行的原理是一样的


森林点火:

开局会随机点燃两颗树

火的生命是2s

每颗树都是独立的个体,当被点燃时,每过一秒都有概率点燃周围的树。

燃烧掉的树变成焦土,不可点燃,火焰之间不可传递。


实现方法:

由于是单线程,无法并行处理,采用全局变量计时,计时器每过一秒扫描一遍森林,对已着火的树判定它的传播概率和生命状态。

建立树类,设置状态,火焰声明,点火器等属性方法。

并将每棵树(这里使用div代表树)都分别绑定在该类的对象上


用到的库函数有

setTimeout() 计时器

clearTimeout() 清楚计时器

Math.random() 随机数

Math.round() 小数取整,四舍五入

成品

点击原文获取源码

我要推荐
转发到

友情链接