成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

【簡單好玩】細(xì)胞自動機小游戲

yagami / 3516人閱讀

摘要:當(dāng)前細(xì)胞為存活狀態(tài)時,當(dāng)周圍有個以上的存活細(xì)胞時,該細(xì)胞變成死亡狀態(tài)??低螒虻淖杂捎辛撕诵牡乃惴ㄓ螒蛞?guī)則,康威生命就是一個具有生命的自由游戲。文件導(dǎo)出導(dǎo)入當(dāng)然加了擴展功能,保存自己喜歡的細(xì)胞自動機成文件。

細(xì)胞自動機

備注:文末有自己用Javascript簡單實現(xiàn)的網(wǎng)頁版細(xì)胞自動機(還挺好玩)

什么是細(xì)胞自動機

細(xì)胞自動機(英語:Cellular automaton),又稱格狀自動機、元胞自動機,它是由無限個有規(guī)律、堅硬的方格組成,每格均處于一種有限狀態(tài)。每格于t時的態(tài)由t-1時的一集有限格(這集叫那格的鄰域)的態(tài)決定。每一格的“鄰居”都是已被固定的。每次演進(jìn)時,每格均遵從同一規(guī)矩一齊演進(jìn)。

當(dāng)然這個細(xì)胞自動機有一個游戲?qū)崿F(xiàn) ------康威生命游戲(英語:Conway"s Game of Life)

康威生命游戲規(guī)則

生命游戲中,對于任意細(xì)胞,規(guī)則如下:
每個細(xì)胞有兩種狀態(tài)-存活或死亡,每個細(xì)胞與以自身為中心的周圍八格細(xì)胞產(chǎn)生互動。(如圖,黑色為存活,白色為死亡)

當(dāng)前細(xì)胞為存活狀態(tài)時,當(dāng)周圍低于2個(不包含2個)存活細(xì)胞時, 該細(xì)胞變成死亡狀態(tài)。(模擬生命數(shù)量稀少)

當(dāng)前細(xì)胞為存活狀態(tài)時,當(dāng)周圍有2個或3個存活細(xì)胞時, 該細(xì)胞保持原樣。

當(dāng)前細(xì)胞為存活狀態(tài)時,當(dāng)周圍有3個以上的存活細(xì)胞時,該細(xì)胞變成死亡狀態(tài)。(模擬生命數(shù)量過多)

當(dāng)前細(xì)胞為死亡狀態(tài)時,當(dāng)周圍有3個存活細(xì)胞時,該細(xì)胞變成存活狀態(tài)。 (模擬繁殖)

可以把最初的細(xì)胞結(jié)構(gòu)定義為種子,當(dāng)所有在種子中的細(xì)胞同時被以上規(guī)則處理后, 可以得到第一代細(xì)胞圖。按規(guī)則繼續(xù)處理當(dāng)前的細(xì)胞圖,可以得到下一代的細(xì)胞圖,周而復(fù)始。

康威生命游戲的自由

有了核心的算法(游戲規(guī)則),康威生命就是一個具有生命的自由游戲。你可以在游戲中創(chuàng)造出自己的細(xì)胞世界。周而復(fù)始。

自己實現(xiàn)的一個生命游戲

生命游戲其實并不是很復(fù)雜,自己實現(xiàn)一個還是挺好玩的。所以自己就用Vue實現(xiàn)了一個小小的生命游戲

核心思想

下一步要做什么,生命游戲最重要就是下一步,不管游戲規(guī)則是如何,下一步狀態(tài)是這個游戲發(fā)展的動力。

function nextStep(map) {
let newMap;
    //@TODO對newMap進(jìn)行核心算法的編寫
return newMap;
}

此函數(shù)就是游戲的生命,將游戲規(guī)則編寫進(jìn)這個函數(shù),Vue只負(fù)責(zé)渲染這個newMap就好了。

?

所以我們有以下函數(shù)

function nextStep(map) {
            let new_map = Array(52).fill(Array(52).fill(0)).map((i) => i.map((j) => 0));
            let countAlive = 0;
            for (let i = 1; i < 51; i++) {
                for (let j = 1; j < 51; j++) {
                    countAlive = map[i + 1][j] + map[i - 1][j] + map[i][j + 1] + map[i][j - 1] + map[i + 1][j + 1] + map[i + 1][j - 1] + map[i - 1][j + 1] + map[i - 1][j - 1];
                    if (map[i][j] === 0 && countAlive < 3) {
                        new_map[i][j] = 0;
                    }
                    if (map[i][j] === 1 && 2 <= countAlive && countAlive <= 3) {
                        new_map[i][j] = 1;

                    }
                    if (map[i][j] === 1 && (countAlive > 3 || countAlive < 2)) {
                        new_map[i][j] = 0;
                    }
                    if (map[i][j] == 0 && countAlive === 3) {
                        new_map[i][j] = 1;
                    }
                    countAlive = 0;
                }
            }
            return new_map;
        }

?

地圖擴展,我們的Map默認(rèn)定了一個50*50的二位數(shù)組,可是考慮到邊界對細(xì)胞算法影響,我們擴展地圖,將地圖作為52*52的二位數(shù)組。這樣然這個50*50的二位數(shù)組最外面包多一層,看控制邊界對細(xì)胞算法影響。細(xì)胞只在內(nèi)層50*50數(shù)組內(nèi)繁衍。

?

let new_map = Array(52).fill(Array(52).fill(0)).map((i) => i.map((j) => 0));

?

文件導(dǎo)出導(dǎo)入 當(dāng)然加了擴展功能,保存自己喜歡的細(xì)胞自動機成文件。

速度的調(diào)整 擴展功能,調(diào)整下一步的速度。

實現(xiàn)的效果

Gayhub源代碼,喜歡就給個Star

戳=>>>>>>>>>>細(xì)胞自動機

這是一個分割線!

最新版本的細(xì)胞自動機用了koa2進(jìn)行了重構(gòu)噢!

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/81375.html

相關(guān)文章

  • 康威生命游戲簡單實現(xiàn)

    摘要:生命游戲,數(shù)學(xué)家發(fā)明的一個游戲,又稱康威生命演化,生命棋,細(xì)胞自動機??低性S多好玩有趣的發(fā)明,最廣為人知的一個是外觀數(shù)列,這里不多說,另一個就是生命游戲。生命游戲模擬的是二維平面上生命的演化過程。 生命游戲,數(shù)學(xué)家 John Conway 發(fā)明的一個游戲,又稱康威生命演化,生命棋,細(xì)胞自動機。 康威有許多好玩有趣的發(fā)明,最廣為人知的一個是外觀數(shù)列(Look-and-Say),這里不多...

    ccj659 評論0 收藏0
  • C++Qt開發(fā)-單線程實現(xiàn)生命游戲

    摘要:生命游戲規(guī)則生命游戲中,對于任意細(xì)胞每個細(xì)胞有兩種狀態(tài)存活或死亡。每個細(xì)胞與以自身為中心的周圍八格細(xì)胞產(chǎn)生互動。繁衍函數(shù)死亡函數(shù)生存和死亡函數(shù),由函數(shù)調(diào)用。 生命游...

    szysky 評論0 收藏0
  • 一個簡單細(xì)胞分裂游戲

    摘要:地址是主要用到了來畫,實現(xiàn)很簡單,分享如下一個圓,中心點坐標(biāo),半徑給自己綁定一個點擊事件,刪除自己,創(chuàng)建四個新圓,中心點位置分別是當(dāng)前半徑四種組合,半徑設(shè)為一半 地址是http://codepen.io/fishenal/full/EDxGL 主要用到了raphael.js來畫svg,實現(xiàn)很簡單,分享如下 var paper = Raphael(0, 0, 1000, 1000) ...

    Pink 評論0 收藏0
  • python機器/深度學(xué)習(xí)項目匯總

    摘要:作者微信公眾號的皮卡丘歡迎大家搜索關(guān)注知乎機器學(xué)習(xí)美顏簡單品讀小說實現(xiàn)顏值預(yù)測預(yù)測比賽結(jié)果制作且版飛機大戰(zhàn)實現(xiàn)簡單的換臉術(shù)遺傳算法擬合圖像實現(xiàn)貓臉檢測分析個人音樂收藏垃圾郵件識別深度學(xué)習(xí)強化學(xué)習(xí)玩破解游戲?qū)崿F(xiàn)簡單的機器翻譯模型學(xué)寫作實現(xiàn)文本 作者:Charles微信公眾號:Charles的皮卡丘(歡迎大家搜索關(guān)注)知乎:https://zhuanlan.zhihu.com/p/... ...

    toddmark 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<