什麼是生命遊戲呢?
遊戲開始時,每個細胞隨機地設定為「生」或「死」之一的某個狀態。然後,根據某種規則,計算出下一代每個細胞的狀態,畫出下一代細胞的生死分布圖。
應該規定什麼樣的迭代規則呢?需要乙個簡單的,但又反映生命之間既協同又競爭的生存定律。為簡單起見,最基本的考慮是假設每乙個細胞都遵循完全一樣的生存定律;再進一步,把細胞之間的相互影響只限制在最靠近該細胞的8個鄰居中。也就是說,每個細胞迭代後的狀態由該細胞及周圍8個細胞狀態所決定。作了這些限制後,仍然還有很多方法來規定「生存定律」的具體細節。例如,在康威的生命遊戲中,規定了如下生存定律。
(1)當前細胞為死亡狀態時,當周圍有3個存活細胞時,則迭代後該細胞變成存活狀態(模擬繁殖);若原先為生,則保持不變。
(2)當前細胞為存活狀態時,當周圍的鄰居細胞低於兩個(不包含兩個)存活時,該細胞變成死亡狀態(模擬生命數量稀少)。
(3)當前細胞為存活狀態時,當周圍有兩個或3個存活細胞時,該細胞保持原樣。
(4)當前細胞為存活狀態時,當周圍有3個以上的存活細胞時,該細胞變成死亡狀態(模擬生命數量過多)。
可以把最初的細胞結構定義為種子,當所有種子細胞按以上規則處理後,可以得到第1代細胞圖。按規則繼續處理當前的細胞圖,可以得到下一代的細胞圖,周而復始。
上面的生存定律當然可以任意改動,發明出不同的「生命遊戲」。
簡單的在c語言中實現一下,我的開發環境是devc++
/*version 1.0*/最終實現如下://實現高朋星雲
#include#include#include //ñó걺¯êýí·îä¼þ
#define n 15
int startmat[n][n];
int nextmat[n][n];
void initmat (int mat[n][n])
void displaymat(int mat[n][n])
} }}
int main()
return 0;
}
隨手寫的,大家可以玩下。
生命遊戲 c語言實現
本世紀70年代,人們曾瘋魔一種被稱作 生命遊戲 的小遊戲,這種遊戲相當簡單。假設有乙個像棋盤一樣的方格網,每個方格中放置乙個生命細胞,生命細胞只有兩種狀態 生 或 死 遊戲規則如下 1 如果乙個細胞周圍有3個細胞為生 乙個細胞周圍共有8個細胞 則該細胞為生,即該細胞若原先為死,則轉為生,若原先為生,...
生命遊戲 c語言實現
本世紀70年代,人們曾瘋魔一種被稱作 生命遊戲 的小遊戲,這種遊戲相當簡單。假設有乙個像棋盤一樣的方格網,每個方格中放置乙個生命細胞,生命細胞只有兩種狀態 生 或 死 遊戲規則如下 1 如果乙個細胞周圍有3個細胞為生 乙個細胞周圍共有8個細胞 則該細胞為生,即該細胞若原先為死,則轉為生,若原先為生,...
C語言小遊戲 生命遊戲
使用的是microsoft visual studio 2017開發環境 lifegame.cpp 定義控制台應用程式的入口點。include stdafx.h include include include include define high 25 define width 50 全域性變數 ...