36
本文作者: 張馳 | 2015-12-27 19:19 |
圖片來自wiki
生命游戲(Game of Life)是英國數(shù)學(xué)家約翰·何頓·康威在1970年發(fā)明的細(xì)胞自動(dòng)機(jī),它也是一款“零玩家”游戲,即游戲的演化完全由初始狀態(tài)決定,不需要后續(xù)信息輸入。
生命游戲在形式上一般是由方格組成的二維矩形,每個(gè)方格中有一個(gè)細(xì)胞,而細(xì)胞在下一刻的狀態(tài)由周圍八個(gè)方格中細(xì)胞的狀態(tài)來決定。周圍活著的細(xì)胞太多或太少,方格中的細(xì)胞都會(huì)因?yàn)橘Y源缺乏或太寂寞而死掉,就像現(xiàn)實(shí)中的生命一樣。玩家可以給個(gè)初始值后,靜靜地看著矩形中的生命誕生或消亡,期間還會(huì)出現(xiàn)一些有趣的幾何圖案,是個(gè)打發(fā)時(shí)間的不二選擇。
圖片來自wiki
生命游戲可以在電腦上用多種語言實(shí)現(xiàn)了,這里就有一個(gè)Python的例子。不過在上周硬創(chuàng)邦的創(chuàng)客馬拉松上,有一支團(tuán)隊(duì)想把這個(gè)經(jīng)典游戲和零件柜結(jié)合起來。
Atommann參加過多次創(chuàng)馬了,在哈工大站和朋友一起做了個(gè)海龜機(jī)器人,捧走了第一名。這次他又聚集了幾個(gè)朋友,想做個(gè)12 X 12的方形零件柜,裝電阻電容一類的小器件;然后在每個(gè)小盒中放入LED燈,把二維矩形具現(xiàn)化,用于演示生命游戲,這樣還能讓它變身一件藝術(shù)器。
作品思路不復(fù)雜,那最終效果如何呢?小編還是直接劇透吧。
其實(shí)這次創(chuàng)馬Atommann他們沒能在最終展示前完成作品,也沒能拿到名次。他告訴硬創(chuàng)邦,其實(shí)技術(shù)上難度不大,比上次的海龜機(jī)器人還要小一些,“主要是這次的重復(fù)工作(如焊接)太多,導(dǎo)致沒有足夠的時(shí)間寫代碼”。所有的LED都可以亮的,但生命游戲還是無法演示。
一件意料外的事是,程序員跑了,準(zhǔn)確地說是,程序員有重要的事必須離開。而編程又不是Atommann擅長的領(lǐng)域,所以沒能趕上。他“本想換一個(gè)方案,但又想挑戰(zhàn)自己,看能不能在限定的時(shí)間內(nèi)把東西焊好”,也是糾結(jié),但東西焊好了,也沒多少時(shí)間寫代碼了??磥泶a農(nóng)真的很重要,請(qǐng)善待他們。
雖然有點(diǎn)遺憾,但Atommann還是在創(chuàng)馬結(jié)束后完成了這個(gè)項(xiàng)目,效果見這里。
最開始見到這個(gè)項(xiàng)目的時(shí)候,小編想到了另一個(gè)視頻。內(nèi)容是國外黑客入侵了一座大樓的電力系統(tǒng),然后開關(guān)各房間的燈來玩坦克大戰(zhàn)。視頻如下:
所以小編問Atommann是不是可以用零件柜玩俄羅斯方塊這樣的游戲(坦克大戰(zhàn)的話,12 X 12估計(jì)不夠),他說這肯定要實(shí)現(xiàn)的,最近還在抽時(shí)間繼續(xù)完成這個(gè)項(xiàng)目。
關(guān)于為什么會(huì)想到做生命游戲,Atommann講得也很有趣,以至于小編想偷懶原原本本呈現(xiàn):
大概在 2000 年左右,我上中專的時(shí)候在書店買到兩本書,書名是 《數(shù)學(xué)游戲》(上下),是《科學(xué)美國人》的《數(shù)學(xué)游戲》專欄上一些文章的集結(jié)本,我?guī)啄昵皩戇^一個(gè)書評(píng),見“能帶給人思考和娛樂的數(shù)學(xué)書”。
書里有很多數(shù)學(xué)娛樂和編程問題,當(dāng)時(shí)學(xué)校也教編程,主要是BASIC語言,于是我就在上機(jī)的時(shí)候嘗試書里的例子,發(fā)現(xiàn)這些程序非常有趣。為了節(jié)省上機(jī)的時(shí)間和費(fèi)用,我在去學(xué)校機(jī)房上機(jī)前,一般先到公園里把程序?qū)懺诩埳?,到了上機(jī)時(shí)間再把程序錄入電腦進(jìn)行調(diào)試。
其中我最感興趣的程序就是生命游戲,細(xì)胞自動(dòng)機(jī)程序和一些分形程序。2001年畢業(yè)工作后我都還在玩這些程序。
程序生成的圖形之一
現(xiàn)在還很懷念以前那些在電腦上改參數(shù)生成不同的圖形的日子 :)
程序生成的蟲子圖
《數(shù)學(xué)游戲》中文版中,每篇文章都沒有寫出作者的名字。這不方便讓人搜索文章來源。直到后來,我才明白,有些文章是數(shù)學(xué)娛樂大師 Martin Gardner 寫的;有些文章是奇書《哥德爾、埃舍爾、巴赫:集異璧之大成》的作者 Douglas Hofstadter 寫的;還有一些文章是加拿大數(shù)學(xué)家 Alexander Dewdney 寫的。后來我還托人從美國買了 Dewdney 的三本書。
我中專專業(yè)是機(jī)械制造,后來通過自學(xué)進(jìn)入了電子行業(yè)。我也非常喜歡 DIY和相應(yīng)的文化,很多東西都想自己親自動(dòng)手做一遍。在電子制作過程中,發(fā)現(xiàn)浪費(fèi)很多時(shí)間在找零件上。而且電子零件的種類十分繁多,比如 5% 精度的電阻就有 168 種之多。如果在做一個(gè)東西的時(shí)候,發(fā)現(xiàn)手上少了一個(gè)零件,比如電阻,然后到處翻箱倒柜去找,這是讓人無法忍受的。因此,在2012年就萌生了做零件柜的想法。我們當(dāng)時(shí)討論了很多有趣的方案,其中一個(gè)就是把 LED 燈條加到現(xiàn)有的零件柜上,用語音識(shí)別,定位所需要的零件。
應(yīng)該是在今年,我想到這個(gè)項(xiàng)目還沒有完成,突然想到可以在零件柜的每個(gè)格子里安裝一個(gè)LED,這樣就可以把零件柜做成一個(gè)藝術(shù)裝置,把康威的生命游戲也集成進(jìn)去。想法就這樣產(chǎn)生了,只是把不同的東西組合在一起,就是一個(gè)新的作品。
看到這段經(jīng)歷,小編只想說:3年前的想法現(xiàn)在才做,這坑填得夠慢呀!
Atommann也表示,“如果不報(bào)名參加創(chuàng)客馬拉松,這個(gè)能運(yùn)行生命游戲的,漂亮的,獨(dú)一無二的零件柜還是停留在我們的腦海里,而不是擺在SZDIY里?!?/span>
所以,有什么想法就來參加硬創(chuàng)邦的創(chuàng)客馬拉松吧(此處為硬廣)!
關(guān)注硬創(chuàng)邦微信號(hào)(leiphone_bang),加入全球創(chuàng)客馬拉松主群(群號(hào):259592983),參與我們的互動(dòng)討論,獲得最新比賽信息~
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。