无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

JavaScript 模擬一維康威宇宙(2020年8月21日)

2021-03-09 11:17 作者:阿-岳同學(xué)  | 我要投稿

制作背景

大一結(jié)束了,疫情還沒有結(jié)束,暑假在家里呆著,學(xué)習(xí)了html,css,還有一點點的JavaScript,以前寫過一個python版本的一維康威宇宙的程序,現(xiàn)在想到既然js這么方便,可視化渲染很輕松就能做到,為什么不用js來寫一個呢?已經(jīng)有了python基礎(chǔ)的我感覺直接用js來寫應(yīng)該也不會太難,先用python的思路做,js對應(yīng)不會的就直接從網(wǎng)上搜就可以,于是我就做了一個。(未參考任何其他相關(guān)康威宇宙的程序代碼,純自己寫的)

相關(guān)介紹

康威宇宙其實是二維的,我簡化成了一維。對于原版康威宇宙,可以看 https://zhuanlan.zhihu.com/p/45026142

這個一維的康威宇宙就是:在一個一維的宇宙中,有一堆細胞排列在這個宇宙所在的直線上,有點細胞是活細胞,有的細胞是死細胞。每過一個時刻,整個宇宙就會變化一次。怎么變化呢?規(guī)則是這樣的:

就是遍歷判斷每一個細胞,每個細胞會根據(jù)周圍四個細胞的狀態(tài)來改變自己接下來的狀態(tài),(周圍四個細胞是指:自己左邊的左邊,左邊,右邊,右邊的右邊,一共四個鄰居細胞),這樣下來,宇宙中的每一個死細胞可能會變成活細胞,每一個活細胞也可能會變成死細胞。具體判斷規(guī)則是這樣的:

對于活細胞:如果周圍四個細胞的活細胞數(shù)量在 [1, 2] 內(nèi),那么該活細胞在下一時刻繼續(xù)存活,否則因為擁擠或者孤獨而死亡。

對于死細胞:如果周圍四個細胞的活細胞數(shù)量在 [2, 3] 內(nèi),那么該死細胞在下一時刻復(fù)活,否則繼續(xù)保持死亡狀態(tài)。

遍歷的順序不影響結(jié)果

效果截圖

1223

源代碼



額外發(fā)現(xiàn)

修改上面程序中的這四個數(shù)據(jù),會改變宇宙的規(guī)則。下面的發(fā)現(xiàn)是 2020年2月25日 做python的對應(yīng)的程序的時候發(fā)現(xiàn)的。

var live_min = 1
var live_max = 2
var birth_min = 2
var birth_max = 3

當(dāng)前宇宙的規(guī)則是 1223 把每一時刻的狀態(tài)從上到下打印在屏幕上,就會呈現(xiàn)大片大片的謝爾賓斯基三角形的樣子,但是如果把四個變量依次修改成以下四個數(shù),就會有不同的呈現(xiàn)效果。(初始狀態(tài)是隨機的,死細胞和活細胞出現(xiàn)的概率均為50%)

1111
3211

1223:謝爾賓斯基三角形
1111:稀碎的謝爾賓斯基三角 + 大塊豎向條
1212:內(nèi)部穿插豎向條的謝爾賓斯基三角 + 大塊豎向條
1314:壓扁的謝爾賓斯基三角
1313:像履帶一樣整齊的紋理
2323:車印子
0000:被豎線切斷的橫線
0101:橫向線
0202:橫向線穿插像網(wǎng)
1413:幾條黑豎線
1414:全白
2424:全白
1234:幾條白豎線
1211:含有細微動態(tài)的二維碼
1222:含有鋸齒狀動態(tài)的二維碼
2311:二維碼 + 花式輪胎印
2322:二維碼 + 自行車印
1233:若干白豎線
1244:含有細微動態(tài)的很多白豎線
2222:白色各種自行車印
3434:頂端流下來一點白油,剩下全黑
3333:頂端流下來一點點白油,剩下全黑
4444:頂端流下來一點點點白油,剩下全黑

反思

今天已經(jīng)是 2020年11月1日了,發(fā)現(xiàn) 相關(guān)在屏幕上打印的操作可以用appendChild來實現(xiàn)。展示的效果其實還是可以再改進的。還有程序的結(jié)構(gòu)。


JavaScript 模擬一維康威宇宙(2020年8月21日)的評論 (共 條)

分享到微博請遵守國家法律
隆德县| 邢台县| 周至县| 紫阳县| 方正县| 庆云县| 永登县| 濉溪县| 平武县| 农安县| 临桂县| 开远市| 永济市| 东台市| 平舆县| 万源市| 商洛市| 什邡市| 宁河县| 朔州市| 鄂伦春自治旗| 乐昌市| 博兴县| 开平市| 蒙自县| 航空| 贵定县| 芮城县| 鄱阳县| 墨竹工卡县| 西丰县| 瓦房店市| 巴彦淖尔市| 韶关市| 深泽县| 盐山县| 宽城| 安康市| 富阳市| 张北县| 威远县|