進擊的生命游戲

生命游戲剃诅,是數(shù)學(xué)家Conway所提出的一個規(guī)則非常簡單但卻能衍生出眾多有趣內(nèi)容的游戲。

PS一下:這位Conway也是一個非常有趣的老爺子颂碧,比如有趣的“超現(xiàn)實數(shù)”就是他提出的,而他提出的另一個有趣的概念是量子理論中的“自由意志定理”,用比較充滿噱頭的話來說就是:倘若人是有自由意志的软驰,那么基本粒子也有。

這篇文章就是從傳統(tǒng)的生命游戲開始心肪,介紹一下這次我個人對它所做的拓展——當(dāng)然了锭亏,這類拓展以前還在學(xué)校的時候每年都會搞搞,當(dāng)時用的還是VB與VB.net硬鞍,現(xiàn)在用的是Vue+ES6慧瘤。


最初的生命游戲,規(guī)則只有這么兩條:

  1. 如果一個有生命的格子周圍的8個鄰居中有小于2個或者大于3個格子是有生命的固该,那么這個格子的生命就會死亡锅减,在下一刻變成無生命格子;
  2. 如果一個無生命的格子周圍的8歌鄰居中有正好三個格子是有生命的伐坏,那么這個格子的生命就會復(fù)蘇怔匣,在下一刻變成有生命的格子。

在如此簡單的規(guī)則下桦沉,我們一般認為最終的情況會是穩(wěn)定在幾個特定的模式下——比如全部死光當(dāng)然是一個穩(wěn)定模式了每瞒,或者四個格子飽成一個“田”字當(dāng)然也算一個穩(wěn)定模式,這類還有很多纯露。

但独泞,出乎意料的是,生命游戲中除了上述靜態(tài)穩(wěn)定模式外苔埋,還有不少動態(tài)模式懦砂,會呈現(xiàn)出非常有趣的狀態(tài)。

其中最簡單的,就是三個連成一條橫線荞膘,此時這條橫線會繞著中間的那個點不斷地橫豎搖擺罚随。

這個模型雖然是動態(tài)的,但卻不夠“動”羽资。

另一個淘菩,是一個歪斜的“Y”字型,這個造型會不斷“扭動”身體屠升,然后朝著一個固定的方向一直走下去潮改,不會停歇——這就是一個足夠“動”的動態(tài)模式了,可以穩(wěn)定地勻速運動腹暖。

網(wǎng)上大家可以找到許多別的模式汇在,都很有趣。

那么脏答,為什么規(guī)則會是這樣的糕殉?

比如說,我們將復(fù)蘇的規(guī)則修改為1或者2殖告,不是3阿蝶,那會怎么樣?

當(dāng)我們將復(fù)蘇規(guī)則就該為1的時候黄绩,這其實就是說每個點的外圍都可以“長”出新的店來羡洁,從而整體是非常容易生長的。

同理爽丹,當(dāng)復(fù)蘇規(guī)則為2的時候筑煮,只要是連在一起的兩個點就可以孕育出新的點來,也是很容易生長的习劫。

但復(fù)蘇規(guī)則為3則不同——它不像1和2那么容易達成,而是需要一定的“結(jié)構(gòu)性”嚼隘,而這一要求就導(dǎo)致了整個容器內(nèi)的生命需要高度“有序化”诽里,同時又不至于將這種有序化徹底僵死。

規(guī)則為4的時候就是徹底僵死了飞蛹,因為8個鄰居中4個有生命谤狡,這樣的要求還是較難達成的。

既然有了最基礎(chǔ)的生命游戲卧檐,我們下一個想法當(dāng)然就是通過恰當(dāng)?shù)木幋a來控制這種極簡單生命的行為了墓懂。

這就是行為的基因化。

一旦我們可以通過簡單編碼來控制生命的行為規(guī)則霉囚,那也就是說捕仔,我們可以通過改寫編碼來修改這種生命的行為。

于是,我們下一步可以引入“變異”榜跌,從而改變生命行為闪唆。

另一方面,我們又注意到這種生命游戲中的生命是沒有“壽命”這個概念的钓葫,即只要沒有達成死亡規(guī)則的要求悄蕾,那么一個有生命的格子中的生命就不會死去。

因此础浮,為了更加有趣一點帆调,我們引入了“壽命”的概念。

基因化豆同,隨機變異番刊,有限壽命,這是能區(qū)別于傳統(tǒng)生命游戲的第一步诱告。

我們可以更進一步引入對“鄰居”中生命計數(shù)規(guī)則的“量子化”撵枢,使用會隨著時間而變的一個模為1的復(fù)數(shù)來代表“生命數(shù)”,這樣在統(tǒng)計的時候就會出現(xiàn)更多有趣的現(xiàn)象了精居。

接著锄禽,我們要求有生命的格子的復(fù)生命值在時間的演化過程中是會給變的,而且這個概念的幅度與這個生命的“能量”成正比靴姿,而這個“能量”又與鄰居8個點的總“復(fù)生命的奈值”相關(guān),那么情況就會變得非常復(fù)雜了佛吓。

此時宵晚,如果兩個格點的鄰居數(shù)不同,那么基本就宣告了這兩個格點是“不同頻”的维雇,因此在一定時間后淤刃,原本幅角接近的兩個復(fù)生命值可能就變成相反的了,這對于計算一個格點周圍復(fù)生命量的工作來說就非常有趣了吱型。

這里有一個有趣的現(xiàn)象逸贾,就是上述不同頻的格點如果在一起,那么最后會因為不同頻而“退相干”津滞,從而使得其中一個格子更快地死亡铝侵。

因此,在“量子化”之后的版本里触徐,兩個格點的“同頻”成了非常有趣的一項工作咪鲜。

我們也可以問這么一個問題:

在量子化版本的生命游戲中,是否存在某些穩(wěn)定的動態(tài)模型撞鹉?

個人在此的認為是:對于相連生命數(shù)量超過一定閥值的這種量子生命游戲疟丙,最終的結(jié)果必然是大部分細胞死于退相干而別的細胞死于自然至死颖侄。

事實上,這里的關(guān)鍵信息是:生命可以通過“不可觀測”的手段彼此交流隆敢,從而衍生出一些不可觀測情況下不可思議的行為发皿。

比如說,在某個已經(jīng)看上去穩(wěn)定的模式下拂蝎,突然某個格子就消失或者出現(xiàn)了穴墅,從而破壞了整個模式的穩(wěn)定性——而,這種突然出現(xiàn)于消失在一個已經(jīng)在一段運行周期內(nèi)穩(wěn)定的經(jīng)典模式中温自,是不可想象的玄货,因為規(guī)則告訴了我們:如果這一個運行周期里這個格子沒有消失或者出現(xiàn),且整個模式?jīng)]有發(fā)生任何改變悼泌,那么下一個運行周期里這個格子也不會消失或者出現(xiàn)松捉。

經(jīng)典版的規(guī)則是死的。

但在量子版中馆里,這點卻受到了沖擊隘世,因為量子版中格子上的生命數(shù)不是0或1的實數(shù),而是模為0或1的復(fù)數(shù)鸠踪,這里多出來的相位信息是不可見的丙者,但卻可以改變整個模式中的每個格子的最終決策——尤其在模式的不同格點上一個生命可能因為周圍生命數(shù)的不同而具有不同的相改變速度的時候,這種決策就很難達到穩(wěn)定营密。

這點械媒,或許還是很有啟發(fā)意義的吧——不可見的隱變量參與到最終決策中,這也算是量子理論隱變量詮釋的一種復(fù)辟评汰?


下面就是這個游戲的網(wǎng)址:

BT版生命游戲


在之后的版本中纷捞,會引入一個以前就做過的功能:競技場。以及一個以前沒做過的功能:多細胞與細胞吞噬被去。

競技場模式中主儡,用戶可以指定不同原始基因組的生命,然后讓他們相互廝殺惨缆。這個其實主要就是娛樂性糜值。

這里的一個關(guān)鍵,就是利用生命的基因構(gòu)成來計算一個生命的“戰(zhàn)斗力”踪央,基本來說臀玄,就是可適應(yīng)的環(huán)境越多的生命瓢阴,戰(zhàn)斗力越弱畅蹂,從而達到一個平衡。

而戰(zhàn)斗所發(fā)生的場所荣恐,只能是在無生命格子中液斜,當(dāng)條件符合從而要轉(zhuǎn)入有生命狀態(tài)時累贤,可能就會有多個不同生命都可以進入這個狀態(tài),從而就需要引入競爭機制——這點在隨機變異版中其實已經(jīng)引入了少漆。

而在多細胞模式中臼膏,一個生命可以擁有多個基因組,然后根據(jù)所處環(huán)境的不同而在多個基因組中切換示损,用來“模擬”多細胞生命對不同環(huán)境的應(yīng)對渗磅。

而,既然可以有多細胞模式检访,那么我們自然可以使用考慮一個生命“吞噬”另一個生命的細胞的過程始鱼,從而就會有細胞吞噬。

因此脆贵,最后我們將獲得的医清,是一群具有隱變量策略的會變異的有壽命的多細胞生命,在一個二維小空間里相互廝殺卖氨。

想想也是挺美的会烙。


最后驗證申明一下:
這個小游戲基于Vue.js與ES6制作,算是對著兩項技術(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)系確認舔哪。


如果喜歡簡書欢顷,想要下載簡書App的話,輕戳這里~~
<small>私人推薦訂閱專題:《有意思的文章》捉蚤、《嚴肅碼匠圈》</small>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末抬驴,一起剝皮案震驚了整個濱河市炼七,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌布持,老刑警劉巖豌拙,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異题暖,居然都是意外死亡按傅,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進店門胧卤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來逞敷,“玉大人,你說我怎么就攤上這事灌侣⊥凭瑁” “怎么了?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵侧啼,是天一觀的道長牛柒。 經(jīng)常有香客問我,道長痊乾,這世上最難降的妖魔是什么皮壁? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮哪审,結(jié)果婚禮上蛾魄,老公的妹妹穿的比我還像新娘。我一直安慰自己湿滓,他們只是感情好滴须,可當(dāng)我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著叽奥,像睡著了一般扔水。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上朝氓,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天魔市,我揣著相機與錄音,去河邊找鬼赵哲。 笑死待德,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的枫夺。 我是一名探鬼主播将宪,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了涧偷?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤毙死,失蹤者是張志新(化名)和其女友劉穎燎潮,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體扼倘,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡确封,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了再菊。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片爪喘。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖纠拔,靈堂內(nèi)的尸體忽然破棺而出秉剑,到底是詐尸還是另有隱情,我是刑警寧澤稠诲,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布侦鹏,位于F島的核電站,受9級特大地震影響臀叙,放射性物質(zhì)發(fā)生泄漏略水。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一劝萤、第九天 我趴在偏房一處隱蔽的房頂上張望渊涝。 院中可真熱鬧,春花似錦床嫌、人聲如沸跨释。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽煤傍。三九已至,卻和暖如春嘱蛋,著一層夾襖步出監(jiān)牢的瞬間蚯姆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工洒敏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留龄恋,地道東北人。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓凶伙,卻偏偏與公主長得像郭毕,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子函荣,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,860評論 2 361

推薦閱讀更多精彩內(nèi)容