生命游戲,是數(shù)學(xué)家Conway所提出的一個(gè)規(guī)則非常簡單但卻能衍生出眾多有趣內(nèi)容的游戲。
PS一下:這位Conway也是一個(gè)非常有趣的老爺子,比如有趣的“超現(xiàn)實(shí)數(shù)”就是他提出的,而他提出的另一個(gè)有趣的概念是量子理論中的“自由意志定理”,用比較充滿噱頭的話來說就是:倘若人是有自由意志的,那么基本粒子也有。
這篇文章就是從傳統(tǒng)的生命游戲開始,介紹一下這次我個(gè)人對它所做的拓展——當(dāng)然了,這類拓展以前還在學(xué)校的時(shí)候每年都會搞搞,當(dāng)時(shí)用的還是VB與VB.net,現(xiàn)在用的是Vue+ES6。
最初的生命游戲,規(guī)則只有這么兩條:
- 如果一個(gè)有生命的格子周圍的8個(gè)鄰居中有小于2個(gè)或者大于3個(gè)格子是有生命的,那么這個(gè)格子的生命就會死亡,在下一刻變成無生命格子;
- 如果一個(gè)無生命的格子周圍的8歌鄰居中有正好三個(gè)格子是有生命的,那么這個(gè)格子的生命就會復(fù)蘇,在下一刻變成有生命的格子。
在如此簡單的規(guī)則下,我們一般認(rèn)為最終的情況會是穩(wěn)定在幾個(gè)特定的模式下——比如全部死光當(dāng)然是一個(gè)穩(wěn)定模式了,或者四個(gè)格子飽成一個(gè)“田”字當(dāng)然也算一個(gè)穩(wěn)定模式,這類還有很多。
但,出乎意料的是,生命游戲中除了上述靜態(tài)穩(wěn)定模式外,還有不少動態(tài)模式,會呈現(xiàn)出非常有趣的狀態(tài)。
其中最簡單的,就是三個(gè)連成一條橫線,此時(shí)這條橫線會繞著中間的那個(gè)點(diǎn)不斷地橫豎搖擺。
這個(gè)模型雖然是動態(tài)的,但卻不夠“動”。
另一個(gè),是一個(gè)歪斜的“Y”字型,這個(gè)造型會不斷“扭動”身體,然后朝著一個(gè)固定的方向一直走下去,不會停歇——這就是一個(gè)足夠“動”的動態(tài)模式了,可以穩(wěn)定地勻速運(yùn)動。
網(wǎng)上大家可以找到許多別的模式,都很有趣。
那么,為什么規(guī)則會是這樣的?
比如說,我們將復(fù)蘇的規(guī)則修改為1或者2,不是3,那會怎么樣?
當(dāng)我們將復(fù)蘇規(guī)則就該為1的時(shí)候,這其實(shí)就是說每個(gè)點(diǎn)的外圍都可以“長”出新的店來,從而整體是非常容易生長的。
同理,當(dāng)復(fù)蘇規(guī)則為2的時(shí)候,只要是連在一起的兩個(gè)點(diǎn)就可以孕育出新的點(diǎn)來,也是很容易生長的。
但復(fù)蘇規(guī)則為3則不同——它不像1和2那么容易達(dá)成,而是需要一定的“結(jié)構(gòu)性”,而這一要求就導(dǎo)致了整個(gè)容器內(nèi)的生命需要高度“有序化”,同時(shí)又不至于將這種有序化徹底僵死。
規(guī)則為4的時(shí)候就是徹底僵死了,因?yàn)?個(gè)鄰居中4個(gè)有生命,這樣的要求還是較難達(dá)成的。
既然有了最基礎(chǔ)的生命游戲,我們下一個(gè)想法當(dāng)然就是通過恰當(dāng)?shù)木幋a來控制這種極簡單生命的行為了。
這就是行為的基因化。
一旦我們可以通過簡單編碼來控制生命的行為規(guī)則,那也就是說,我們可以通過改寫編碼來修改這種生命的行為。
于是,我們下一步可以引入“變異”,從而改變生命行為。
另一方面,我們又注意到這種生命游戲中的生命是沒有“壽命”這個(gè)概念的,即只要沒有達(dá)成死亡規(guī)則的要求,那么一個(gè)有生命的格子中的生命就不會死去。
因此,為了更加有趣一點(diǎn),我們引入了“壽命”的概念。
基因化,隨機(jī)變異,有限壽命,這是能區(qū)別于傳統(tǒng)生命游戲的第一步。
我們可以更進(jìn)一步引入對“鄰居”中生命計(jì)數(shù)規(guī)則的“量子化”,使用會隨著時(shí)間而變的一個(gè)模為1的復(fù)數(shù)來代表“生命數(shù)”,這樣在統(tǒng)計(jì)的時(shí)候就會出現(xiàn)更多有趣的現(xiàn)象了。
接著,我們要求有生命的格子的復(fù)生命值在時(shí)間的演化過程中是會給變的,而且這個(gè)概念的幅度與這個(gè)生命的“能量”成正比,而這個(gè)“能量”又與鄰居8個(gè)點(diǎn)的總“復(fù)生命的?!毕嚓P(guān),那么情況就會變得非常復(fù)雜了。
此時(shí),如果兩個(gè)格點(diǎn)的鄰居數(shù)不同,那么基本就宣告了這兩個(gè)格點(diǎn)是“不同頻”的,因此在一定時(shí)間后,原本幅角接近的兩個(gè)復(fù)生命值可能就變成相反的了,這對于計(jì)算一個(gè)格點(diǎn)周圍復(fù)生命量的工作來說就非常有趣了。
這里有一個(gè)有趣的現(xiàn)象,就是上述不同頻的格點(diǎn)如果在一起,那么最后會因?yàn)椴煌l而“退相干”,從而使得其中一個(gè)格子更快地死亡。
因此,在“量子化”之后的版本里,兩個(gè)格點(diǎn)的“同頻”成了非常有趣的一項(xiàng)工作。
我們也可以問這么一個(gè)問題:
在量子化版本的生命游戲中,是否存在某些穩(wěn)定的動態(tài)模型?
個(gè)人在此的認(rèn)為是:對于相連生命數(shù)量超過一定閥值的這種量子生命游戲,最終的結(jié)果必然是大部分細(xì)胞死于退相干而別的細(xì)胞死于自然至死。
事實(shí)上,這里的關(guān)鍵信息是:生命可以通過“不可觀測”的手段彼此交流,從而衍生出一些不可觀測情況下不可思議的行為。
比如說,在某個(gè)已經(jīng)看上去穩(wěn)定的模式下,突然某個(gè)格子就消失或者出現(xiàn)了,從而破壞了整個(gè)模式的穩(wěn)定性——而,這種突然出現(xiàn)于消失在一個(gè)已經(jīng)在一段運(yùn)行周期內(nèi)穩(wěn)定的經(jīng)典模式中,是不可想象的,因?yàn)橐?guī)則告訴了我們:如果這一個(gè)運(yùn)行周期里這個(gè)格子沒有消失或者出現(xiàn),且整個(gè)模式?jīng)]有發(fā)生任何改變,那么下一個(gè)運(yùn)行周期里這個(gè)格子也不會消失或者出現(xiàn)。
經(jīng)典版的規(guī)則是死的。
但在量子版中,這點(diǎn)卻受到了沖擊,因?yàn)榱孔影嬷懈褡由系纳鼣?shù)不是0或1的實(shí)數(shù),而是模為0或1的復(fù)數(shù),這里多出來的相位信息是不可見的,但卻可以改變整個(gè)模式中的每個(gè)格子的最終決策——尤其在模式的不同格點(diǎn)上一個(gè)生命可能因?yàn)橹車鼣?shù)的不同而具有不同的相改變速度的時(shí)候,這種決策就很難達(dá)到穩(wěn)定。
這點(diǎn),或許還是很有啟發(fā)意義的吧——不可見的隱變量參與到最終決策中,這也算是量子理論隱變量詮釋的一種復(fù)辟?
下面就是這個(gè)游戲的網(wǎng)址:
在之后的版本中,會引入一個(gè)以前就做過的功能:競技場。以及一個(gè)以前沒做過的功能:多細(xì)胞與細(xì)胞吞噬。
競技場模式中,用戶可以指定不同原始基因組的生命,然后讓他們相互廝殺。這個(gè)其實(shí)主要就是娛樂性。
這里的一個(gè)關(guān)鍵,就是利用生命的基因構(gòu)成來計(jì)算一個(gè)生命的“戰(zhàn)斗力”,基本來說,就是可適應(yīng)的環(huán)境越多的生命,戰(zhàn)斗力越弱,從而達(dá)到一個(gè)平衡。
而戰(zhàn)斗所發(fā)生的場所,只能是在無生命格子中,當(dāng)條件符合從而要轉(zhuǎn)入有生命狀態(tài)時(shí),可能就會有多個(gè)不同生命都可以進(jìn)入這個(gè)狀態(tài),從而就需要引入競爭機(jī)制——這點(diǎn)在隨機(jī)變異版中其實(shí)已經(jīng)引入了。
而在多細(xì)胞模式中,一個(gè)生命可以擁有多個(gè)基因組,然后根據(jù)所處環(huán)境的不同而在多個(gè)基因組中切換,用來“模擬”多細(xì)胞生命對不同環(huán)境的應(yīng)對。
而,既然可以有多細(xì)胞模式,那么我們自然可以使用考慮一個(gè)生命“吞噬”另一個(gè)生命的細(xì)胞的過程,從而就會有細(xì)胞吞噬。
因此,最后我們將獲得的,是一群具有隱變量策略的會變異的有壽命的多細(xì)胞生命,在一個(gè)二維小空間里相互廝殺。
想想也是挺美的。
最后驗(yàn)證申明一下:
這個(gè)小游戲基于Vue.js與ES6制作,算是對著兩項(xiàng)技術(shù)的試手作。其中,由于采用的是ES6,所以并非所有瀏覽器都支持,如果你打開后發(fā)現(xiàn)一片空白,請趕快換用最新的現(xiàn)代瀏覽器,燒掉手上的IE,謝謝。
本文遵守創(chuàng)作共享CC BY-NC-SA 4.0協(xié)議
通過本協(xié)議,您可以分享并修改本文內(nèi)容,只要你遵守以下授權(quán)條款規(guī)定:姓名標(biāo)示 、非商業(yè)性、相同方式分享。
具體內(nèi)容請查閱上述協(xié)議聲明。
本文禁止一切紙媒,即印刷于紙張之上的一切組織,包括但不限于轉(zhuǎn)載、摘編的任何應(yīng)用和衍生。網(wǎng)絡(luò)平臺如需轉(zhuǎn)載必須與本人聯(lián)系確認(rèn)。
如果喜歡簡書,想要下載簡書App的話,輕戳這里~~
<small>私人推薦訂閱專題:《有意思的文章》、《嚴(yán)肅碼匠圈》</small>