生命遊戲簡單canvas實現

2022-09-12 10:12:14 字數 764 閱讀 5634

最近了解到乙個好玩的東西,叫生命遊戲,是英國數學家約翰·康威在 1970 年代所發明的一種元胞自動機

按照以下三條規則進行演化:

活細胞周圍的細胞數小於 2 個或多於 3 個則死亡

活細胞周圍有 2 或 3 個細胞可以繼續存活

死細胞周圍恰好有 3 個細胞則會復活

用 j**ascript 語言描述這一規則如下:

function transform()  else 

}}}

在這個程式中,alive陣列中的每乙個元素代表單個細胞,元素的值為 1 代表活,元素的值為 0 代表死,演化的時候就遍歷整個alive陣列,然後對不同的值執行不同的操作,我用的是canvas,自然就是填充不同的矩形

cellobj.prototype.draw = function ()  else 

}}};

更新操作呢,有很多選擇,比如requestanimationframe,但是不夠靈活,所以我選擇使用setinterval,可以自由調節演變速度,**如下:

function gameloop() 

setinterval(gameloop, 100);

看似非常高深的遊戲,其實很容易就實現了,但是元胞自動機的魅力不止於此,可以週期迴圈,平移,甚至可以模擬時鐘!想不到吧,還有無數的花樣等待發掘。

康威生命遊戲的簡單實現

生命遊戲,數學家john conway發明的乙個遊戲,又稱康威生命演化,生命棋,細胞自動機。康威有許多好玩有趣的發明,最廣為人知的乙個是外觀數列 look and say 這裡不多說,另乙個就是生命遊戲 game of life 關於康威,摘錄一段wikipedia的敘述 約翰 何頓 康威 john...

canvas寫個簡單的小遊戲

之前在html5 canvas屬性和方法彙總一文中,介紹過canvas的各種屬性以及方法的說明,並列舉了自己寫的一些canvas demo,接下來開始寫乙個簡單的小遊戲吧,有多簡單,這麼說吧,不到100行,先上效果圖 初始化首先在html頁面中新增中新增乙個canvas元素,並給出乙個id用於在js...

Python 生命遊戲的實現

給定乙個包含 m n 個格仔的面板,每乙個格仔都可以看成是乙個細胞。每個細胞都具有乙個初始狀態 1 即為活細胞 live 或 0 即為死細胞 dead 每個細胞與其八個相鄰位置 水平,垂直,對角線 的細胞都遵循以下四條生存定律 如果活細胞周圍八個位置的活細胞數少於兩個,則該位置活細胞死亡 如果活細胞...