您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 三级辅导 >> 正文    
  用c语言演绎“生命游戏” 【注册男护士专用博客】          

用c语言演绎“生命游戏”

www.nanhushi.com     佚名   不详 

  本世纪70年代,人们曾疯魔一种被称作“生命游戏”的小游戏,这种游戏相当简单。假设有一个像棋盘一样的方格网,每个方格中放置一个生命细胞,生命细胞只有两种状态:“生”或“死”。游戏规则如下:
  1. 如果一个细胞周围有3个细胞为生(一个细胞周围共有8个细胞),则该细胞为生,即该细胞若原先为死,则转为生,若原先为生,则保持不变;
  2. 如果一个细胞周围有2个细胞为生,则该细胞的生死状态保持不变;
  3. 在其它情况下,该细胞为死,即该细胞若原先为生,则转为死,若原先为死,则保持不变设定图像中每个像素的初始状态后依据上述的游戏规则演绎生命的变化,由于初始状态和迭代次数不同,将会得到令人叹服的优美图案。
  
#include
  main(){
  int orgdata[100][100],resdata[100][100];/*分别记录每次迭代的初始和结果状态*/
  int ncount,nrows,ncols,i,j,times; /*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){
  /*周围有3个活细胞,该细胞为生,在屏幕上用黑色像素表示*/
  case 3: putpixel(ncols+210,120+nrows,black);
  resdata[nrows][ncols]=1;break;
  /*周围有2个活细胞,该细胞不变,在屏幕显示也不变*/
  case 2: resdata[nrows][ncols]=orgdata[nrows][ncols];
  break;
  /*其它情况下,细胞为死,在屏幕上用白色像素表示*/
  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();
  }
  }

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    2011年护士资格考试:考…
    2009年初级护士资格考试…
    2009年主管护师考试于12…
    2009年初级护士考试于12…
    2009年初级护师考试于12…
    石家庄市关于2009年度护…
    2009年护士专业技术资格…
    医护技能考试周末举行 4…
    护士“托福”今年7月开考
    护士“托福”考试开始报…
    专 题 栏 目