更改
跳到导航
跳到搜索
←上一编辑
下一编辑→
康威的生命游戏 Conway's Game of Life
(查看源代码)
2020年4月12日 (日) 12:37的版本
删除116字节
、
2020年4月12日 (日) 12:37
→代码实现
第115行:
第115行:
[[File:life game.zip|Netlogo源代码]]
[[File:life game.zip|Netlogo源代码]]
[[File:code1.png|right|400px|thumb|setup运行初始状态]]
[[File:code1.png|right|400px|thumb|setup运行初始状态]]
+
代码整体分为两部分,setup和go部分。其中setup进行环境的初始化,go进行持续运行。
+
====setup部分====
+
setup的核心代码如下:
<syntaxhighlight lang="python">
<syntaxhighlight lang="python">
patches-own[living]
patches-own[living]
第121行:
第124行:
clear-all
clear-all
reset-ticks
reset-ticks
−
ask patches[
+
ask patches[
−
if random-float 1 < 0.5 [
+
if random-float 1 < 0.5 [
#以0.5的概率设置白格,黑白格比例为1:1,可以在实际中将0.5改为其他值,来模拟不同黑白格比例
set pcolor white
set pcolor white
]
]
第147行:
第150行:
end
end
</syntaxhighlight>
</syntaxhighlight>
−
代码解释:
+
=
===go部分====
−
代码整体分为两部分,setup和go部分。其中setup进行环境的初始化,go进行持续运行。
+
go按钮在创建之时就设定了持续执行,因此程序会一直进行下去。在每一轮中,程序都会遍历每个格,来判断每个格周围的存活数量。如果黑格周围存活数不等于3,其将死亡,表现为由黑格转为白格。若一个白格周围存活数正好是3,会变为黑色,即为存活状态。在棋盘上所有格子均判断完一轮后,由于设定了持续执行,程序会再次进行遍历,不断循环下去。随着迭代次数的增加,整个环境也会趋于较稳定状态。go部分的核心代码如下:
−
<syntaxhighlight lang
=
"python">
−
ask patches[
−
if random-float 1 < 0.5 [
−
set pcolor white
−
]
−
</syntaxhighlight>
−
这段代码是setup的核心,意思为以0.5的概率设置白格,黑白格比例为1:1,可以在实际中将0.5改为其他值,来模拟不同黑白格比例。
[[File:lgss.gif|400px|thumb|right|运行过程]]
[[File:lgss.gif|400px|thumb|right|运行过程]]
<syntaxhighlight lang="python">
<syntaxhighlight lang="python">
第170行:
第166行:
]
]
</syntaxhighlight>
</syntaxhighlight>
−
这段代码是go部分的核心代码。go按钮在创建之时就设定了持续执行,因此程序会一直进行下去。在每一轮中,程序都会遍历每个格,来判断每个格周围的存活数量。如果黑格周围存活数不等于3,其将死亡,表现为由黑格转为白格。若一个白格周围存活数正好是3,会变为黑色,即为存活状态。在棋盘上所有格子均判断完一轮后,由于设定了持续执行,程序会再次进行遍历,不断循环下去。随着迭代次数的增加,整个环境也会趋于较稳定状态。
+
薄荷
7,129
个编辑
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
集智百科
集智主页
集智斑图
集智学园
最近更改
所有页面
帮助
工具
特殊页面
可打印版本