前言
今天用Python簡單復現一下里面介紹的生命遊戲,讓我們愉快的開始吧~
開發工具
Python版本:3.6.4
相關模塊:
matplotlib模塊;
numpy模塊。
環境搭建
安裝Python並添加到環境變量,pip安裝需要的相關模塊即可。
主要思路
遊戲簡介:
想象一下,一望無際的太平洋被分成了許許多多方格子。每個格子里正好能放下一個“細胞”。這個細胞不能運動,它可以是死的,也可以是活的。但它的狀態,是由它周圍8個細胞的死活決定的。
決定的規則爲:
(1)“人口過少”:任何活細胞如果活鄰居少於2個,則死掉;
(2)“正常”:任何活細胞如果活鄰居爲2個或者3個,則繼續活;
(3)“人口過多”:任何活細胞如果活鄰居大於3個,則死掉;
(4)“繁殖”:任何死細胞如果活鄰居正好是3個,則活過來。
題外話:
上面這幾條規則大概是元胞自動機中最出名的一套規則了。“麥克阿瑟天才獎”最年輕的得主Stephen Wolfram正是元胞自動機的忠實粉絲。其發現的“Rule 30
”規則組,可以從一個活細胞出發,生成一套極其複雜的無盡花紋。後來Mathematica裏使用的隨機數生成器,就是基於“Rule 30
”的。250次迭代後的“Rule 30
”:
據說結果神似織錦芋螺
的花紋。
Wolfram認爲這正是我們宇宙的本質;我們的世界就是計算,就是一套簡單的規則生成的複雜現象。其關於元胞自動機的研究獲得了超過一萬次引用。
隨手附上xkcd的一幅漫畫:
生命遊戲具體實現過程詳見主頁簡介相關文件中的源代碼。