模拟康威人生游戏的python库
pyseagull的Python项目详细描述
康威生活游戏的Python库
这个框架允许您创建和模拟各种人工生命形式
细胞自动机很简单:简单地定义你的板,添加你的生命形式,
然后执行run
命令!它还提供了无数预先制作的
同时允许您创建自己的生命形式
为什么叫它海鸥?康威的人生游戏非常丰富,所以我指的是 它的缩写,CGoL“海鸥”这个词只是个双关语
用几行代码模拟您的第一个生命形式:
importseagullassgfromseagull.lifeformsimportPulsar# Initialize boardboard=sg.Board(size=(19,60))# Add three Pulsar lifeforms in various locationsboard.add(Pulsar(),loc=(1,1))board.add(Pulsar(),loc=(1,22))board.add(Pulsar(),loc=(1,42))# Simulate boardsim=sg.Simulator(board)sim.run(sg.rules.conway_classic,iters=1000)
也可以通过运行sim.animate()
:
除了Pulsar
,我们还有一个nice collection of
lifeforms
供你选择!
安装
要安装Seagull,请在终端中运行此命令:
pip install pyseagull
这是安装Seagull的首选方法,因为它将始终安装 最新的稳定版本。
如果要安装Bleeding Edge版本,请克隆此repo:
git clone https://github.com/ljvmiranda921/seagull.git
然后运行
cd seagull
python setup.py install
用法
人工生命模拟有三个主要部分:
- 生命体四处移动的
Board
或环境 - 与环境交互的
Lifeform
,以及 - 指示特定细胞是否存活的
rules
在Seagull中,您只需定义Board
,添加Lifeform
/s,然后运行
Simulator
给定一个rule
。您可以根据需要添加多个生命形式:
importseagullassgfromseagullimportlifeformsaslfboard=sg.Board(size=(30,30))board.add(lf.Blinker(length=3),loc=(4,4))board.add(lf.Glider(),loc=(10,4))board.add(lf.Glider(),loc=(15,4))board.add(lf.Pulsar(),loc=(5,12))board.view()# View the current state of the board
然后,您可以简单地运行模拟,并在需要时设置动画:
sim=sg.Simulator(board)hist=sim.run(sg.rules.conway_classic,iters=1000)# Save simulation historysim.animate()
添加自定义生命形式
您可以使用Custom
类来手动创建您的生命形式:
importseagullassgfromseagull.lifeformsimportCustomboard=sg.Board(size=(30,30))board.add(Custom([[0,1,1,0],[0,0,1,1]]),loc=(0,0))
获取模拟统计和历史
默认情况下,调用
run()
方法。此外,您还可以通过调用
get_history()
方法
# The run() command returns the run statisticsstats=sim.run(sg.rules.conway_classic,iters=1000)# You can also get it using get_history()hist=sim.get_history()
示例
您可以在 documentation
贡献
此项目对贡献者开放贡献的形式可以是 功能请求、错误修复、文档、教程等等!我们高度重视 建议在提交Pull Request之前先提交问题。
只需分叉此存储库并发出拉取请求!我们肯定会 感谢:
- 新功能的实现
- 错误报告
- 文件
- 测试
许可证
麻省理工学院许可证(C)2019,Lester James v.Miranda