生命游戏——一个简单的元胞自动机

来源:互联网 发布:浙江有多少工厂数据 编辑:程序博客网 时间:2024/05/19 14:51

参考书目《元胞自动机理论研究及其仿真应用》科学出版社

元胞状态:0——死亡  1——活着

领域半径:1

邻居模型:Moore型

演化规则S(t)条件S(t+1)1S = 2或311S ≠2、300S = 310S ≠ 30

其中S(t)表示t 时刻元胞的状态,S为8个相邻元胞中活着的元胞数


#include<graphics.h>int main(){int orgData[100][100], resData[100][100];int nCount, nRows, nCols, i, j, times;int GraphDriver = DETECT, GraphMode;for (i = 0; i <100; i++)for (j = 0; j < 100; j++)orgData[i][j] = 1;initgraph(&GraphDriver, &GraphMode, "");//初始化屏幕setcolor(WHITE);rectangle(270, 190, 370, 290);//显示边框for (times = 1; times < 200; times++){for (nRows = 1; nRows < 99; nRows++){for (nCols = 1; nCols < 99; nCols++){nCount = orgData[nRows - 1][nCols - 1] + orgData[nRows - 1][nCols] + orgData[nRows - 1][nCols + 1] + orgData[nRows][nCols - 1] + orgData[nRows][nCols + 1] + orgData[nRows + 1][nCols - 1] + orgData[nRows + 1][nCols] + orgData[nRows + 1][nCols + 1];switch (nCount){case(3):putpixel(nCols + 270, 190 + nRows, BLACK);resData[nRows][nCols] = 1;break;case(2):resData[nRows][nCols] = orgData[nRows][nCols];break;default:resData[nRows][nCols] = 0;putpixel(nCols + 270, 190 + nRows, WHITE);}}}for (i = 1; i < 99; i++)for (j = 1; j < 99; j++)orgData[i][j] = resData[i][j];}return 0;}

注:代码摘自参考书目

原创粉丝点击