康威生命遊戲
此條目過於依賴第一手來源。 (2023年9月9日) |
康威生命遊戲(英語:Conway's Game of Life),又稱康威生命棋,是英國數學家約翰·何頓·康威在1970年發明的細胞自動機。
規則
生命遊戲中,對於任意細胞,規則如下:
- 每個細胞有兩種狀態 - 存活或死亡,每個細胞與以自身為中心的周圍八格細胞產生互動(如圖,黑色為存活,白色為死亡)
- 當前細胞為存活狀態時,當周圍的存活細胞低於2個時(不包含2個),該細胞變成死亡狀態。(模擬生命數量稀少)
- 當前細胞為存活狀態時,當周圍有2個或3個存活細胞時,該細胞保持原樣。
- 當前細胞為存活狀態時,當周圍有超過3個存活細胞時,該細胞變成死亡狀態。(模擬生命數量過多)
- 當前細胞為死亡狀態時,當周圍有3個存活細胞時,該細胞變成存活狀態。(模擬繁殖)
可以把最初的細胞結構定義為種子,當所有在種子中的細胞同時被以上規則處理後,可以得到第一代細胞圖。按規則繼續處理當前的細胞圖,可以得到下一代的細胞圖,周而復始。
概述
生命遊戲是一個零玩家遊戲。它包括一個二維矩形世界,這個世界中的每個方格居住着一個活着的或死了的細胞。一個細胞在下一個時刻生死取決於相鄰八個方格中活着的或死了的細胞的數量。如果相鄰方格活着的細胞數量過多,這個細胞會因為資源匱乏而在下一個時刻死去;相反,如果周圍活細胞過少,這個細胞會因太孤單而死去。實際中,玩家可以設定周圍活細胞的數目怎樣時才適宜該細胞的生存。如果這個數目設定過高,世界中的大部分細胞會因為找不到太多的活的鄰居而死去,直到整個世界都沒有生命;如果這個數目設定過低,世界中又會被生命充滿而沒有什麼變化。
實際中,這個數目一般選取2或者3;這樣整個生命世界才不至於太過荒涼或擁擠,而是一種動態的平衡。這樣的話,遊戲的規則就是:當一個方格周圍有2或3個活細胞時,方格中的活細胞在下一個時刻繼續存活;即使這個時刻方格中沒有活細胞,在下一個時刻也會「誕生」活細胞。
在這個遊戲中,還可以設定一些更加複雜的規則,例如當前方格的狀況不僅由父一代決定,而且還考慮祖父一代的情況。玩家還可以作為這個世界的「上帝」,隨意設定某個方格細胞的死活,以觀察對世界的影響。
在遊戲的進行中,雜亂無序的細胞會逐漸演化出各種精緻、有形的結構;這些結構往往有很好的對稱性,而且每一代都在變化形狀。一些形狀已經鎖定,不會逐代變化。有時,一些已經成形的結構會因為一些無序細胞的「入侵」而被破壞。但是形狀和秩序經常能從雜亂中產生出來。
這個遊戲被許多電腦程式實現了。Unix世界中的許多駭客喜歡玩這個遊戲,他們用字符代表一個細胞,在一個計算機屏幕上進行演化。比較著名的例子是,GNU Emacs編輯器中就包括這樣一個小遊戲。
穩定狀態
-
方塊
-
麵包
-
蜂巢
-
大船
-
小船
-
桶子
-
池塘
-
蛇
-
航空母艦
-
獨木舟
-
芒果
-
迴紋針
振盪狀態
-
信號燈(週期=2輪)
-
蟾蜍(週期=2輪)
-
紅綠燈(週期=2輪)
-
烽火(週期=2輪)
-
脈衝星(週期=3輪)
-
慨影(週期=15輪)
會移動的振盪狀態
參見
參考資料
外部連結
- Golly (頁面存檔備份,存於互聯網檔案館)
- John Conway's Game of Life (頁面存檔備份,存於互聯網檔案館)
- Conway's Game of Life simulator for Microsoft Windows
- Python版本並以彩色圖像方式呈現於CMD中 (頁面存檔備份,存於互聯網檔案館)
- Game of Life Applet (頁面存檔備份,存於互聯網檔案館) (中國留學生編寫的Applet)
- 用不到100行go 語言實現的網頁版,用隨機數初始化 (頁面存檔備份,存於互聯網檔案館)
- Conway's game of life implementation. (Silverlight)
- JavaScript網頁版本 (頁面存檔備份,存於互聯網檔案館)
- 另一個JavaScript網頁版本 (頁面存檔備份,存於互聯網檔案館)
- 開源JavaScript網頁版本 (頁面存檔備份,存於互聯網檔案館)
- 高斯珀滑翔機槍 生命遊戲介紹 在blogspot
- LifeWiki (頁面存檔備份,存於互聯網檔案館),關於康威生命遊戲的wiki