Java & Python 康威生命游戲 - 命令行版(2020年7月23日)

高二的時候看霍金的《大設(shè)計》最后幾頁的時候看到里面提到了康威生命游戲,介紹了它的規(guī)則,感覺很有意思,但是在草稿紙上一點(diǎn)一點(diǎn)畫,推演,實在是太麻煩了,于是我便想是否可以通過編程的方式實現(xiàn)康威生命游戲?我當(dāng)時高二,感覺自己很難做出來。到了大一下學(xué)期,自學(xué)了python和java,學(xué)校的課程里也學(xué)習(xí)了C語言,自己也經(jīng)常寫一些有意思的小程序,可以說是有一定的編程基礎(chǔ)了,于是就又會想起了一年多前的康威生命游戲。
其實在 2020年2月24號,大一上學(xué)期結(jié)束的寒假里,我已經(jīng)把一維版的康威宇宙做出了來了,但是那終究是一維的,沒有二維的豐富,開發(fā)難度肯定沒有二維的高。所以這次我打算真正的試一試二維的,原版的、正經(jīng)的康威宇宙。
在 2020年4月11日的時候,生命游戲的作者 約翰·何頓·康威 已經(jīng)因為新冠肺炎去世了。感覺突然挺遺憾的。之前了解這個人完全是因為生命游戲,但是其實他是一個數(shù)學(xué)家。他還有其他很多更大的貢獻(xiàn)和發(fā)現(xiàn),不只是生命游戲。
2020年7月23日,我把用python實現(xiàn)了,隨后一天我又做了一份Java版本的。
相關(guān)介紹
百度介紹:
https://baike.baidu.com/item/%E5%BA%B7%E5%A8%81%E7%94%9F%E5%91%BD%E6%B8%B8%E6%88%8F
知乎介紹:
https://zhuanlan.zhihu.com/p/45026142
效果截圖


源代碼
Java
回顧反思
直接給調(diào)用者暴露了數(shù)組,但是調(diào)用者并不知道是用
[y][x]
的方式還是[x][y]
的方式,你這個沒有說明,會導(dǎo)致一些不方便如果能把cellsArray封裝成一個類那就好了,因為它已經(jīng)很像類了。
不知道怎么結(jié)尾了,康威生命游戲的評價里有一句話說的不錯,就以它結(jié)尾吧:“ 孤獨(dú)和擁擠都不適合生命的繁衍和發(fā)展 ”。