for (times=1;times<200;times++){
for (nRows=1;nRows<99;nRows++) {
for (nCols=1;nCols<99;nCols++){
/*計(jì)算每一個(gè)細(xì)胞周圍的活的細(xì)胞數(shù)*/
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){
/*周圍有3個(gè)活細(xì)胞,該細(xì)胞為生,在屏幕上用黑色像素表示*
case 3: putpixel(nCols+210,120+nRows,BLACK);
resData[nRows][nCols]=1;break;
/*周圍有2個(gè)活細(xì)胞,該細(xì)胞不變,在屏幕顯示也不變*/
case 2: resData[nRows][nCols]=orgData[nRows][nCols];
break;
/*其它情況下,細(xì)胞為死,在屏幕上用白色像素表示*/
default:resData[nRows][nCols]=0;
putpixel(nCols+210,120+nRows,WHITE);
}
}
}
for (i=1;i<99;i++)
for (j=1;j<99;j++) orgData[i][j]=resData[i][j];
getch();
}
}
在計(jì)算機(jī)上運(yùn)行上述程序,得到迭代次數(shù)為45、69、74、78、97、116、119和156時(shí)的圖像分別如上圖所示。
在實(shí)際模擬時(shí),可以取更多的生命細(xì)胞,也可以考慮生命細(xì)胞的初始狀態(tài)是依一定概率設(shè)定的隨機(jī)狀態(tài),變化時(shí)也可以讓邊緣細(xì)胞參與變化。
只要對(duì)上述程序略作更改,就會(huì)得到另外一系列美妙絕倫的圖案。
相關(guān)推薦:2011計(jì)算機(jī)等級(jí)考試二級(jí)C輔導(dǎo)實(shí)例編程匯總
計(jì)算機(jī)等級(jí)考試二級(jí)C語言歷年真題匯總(2005-2010)
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |