C组合算法实现.docVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C组合算法实现

本世纪70年代,人们曾疯魔一种被称作“生命游戏”的小游戏,这种游戏相当简单。假设有一个像棋盘一样的方格网,每个方格中放置一个生命细胞,生命细胞只有两种状态:“生”或“死”。游戏规则如下:   1. 如果一个细胞周围有3个细胞为生(一个细胞周围共有8个细胞),则该细胞为生,即该细胞若原先为死,则转为生,若原先为生,则保持不变;   2. 如果一个细胞周围有2个细胞为生,则该细胞的生死状态保持不变;   3. 在其它情况下,该细胞为死,即该细胞若原先为生,则转为死,若原先为死,则保持不变设定图像中每个像素的初始状态后依据上述的游戏规则演绎生命的变化,由于初始状态和迭代次数不同,将会得到令人叹服的优美图案。 程序的算法: ?? 设置两个二维数组,一个用于表示当前生命细胞的状态,另一个用于判断当前的细胞的下一个状态。 这个程序还能统计当前活着的细胞的个数: 程序如下: /*lifegame.c*/ #include stdio.h #include graphics.h #include time.h #include stdlib.h #define MAX 60 #define SIZE 5 void initG(); /*图形模式初始化*/ void closeG();/*关闭图形模式*/ void live(int col,int row); void death(int col,int row); void initG() { ?int gdriver=DETECT,gmode; ?initgraph(gdriver,gmode,d:\\tc); ?cleardevice(); } void closeG() ?{ ?cleardevice(); ?settextstyle(1,0,5); ?setcolor(BLUE); ?outtextxy(80,50,Programme Desiged:Y.Z.X); ?outtextxy(80,160,MAIL:yzx_xue@163.com); ?outtextxy(200,330,2006.5); ?getch(); ?closegraph(); } void live(int col,int row) { ?setcolor(WHITE); ?setfillstyle(SOLID_FILL,WHITE); ?bar(SIZE*(col+1)+1,SIZE*(row+1)+1,SIZE*(col+2)-1,SIZE*(row+2)-1); } void death(int col,int row) { ?setcolor(BLACK); ?setfillstyle(SOLID_FILL,BLACK); ?bar(SIZE*(col+1)+1,SIZE*(row+1)+1,SIZE*(col+2)-1,SIZE*(row+2)-1); } void table() { ?int i; ?setcolor(RED); ?for(i=0;i=MAX;i++) ?{ ?line(SIZE*(i+1),SIZE,SIZE*(i+1),SIZE*(MAX+1)); ?line(SIZE,SIZE*(i+1),SIZE*(MAX+1),SIZE*(i+1)); ?} } void game() ?{ ?int nrow,ncol,i,resData[MAX][MAX],ori[MAX][MAX]; ?int count; ?char str[20]; /*if life is live color is balck*/ /*init the life*/ ?table(); ?for(nrow=0;nrow!=MAX;nrow++) ?for(ncol=0;ncol!=MAX;ncol++) ?{ ??ori[nrow][ncol]=1; ??resData[nrow][ncol]=1; ?} ?for(i=0;i=100;i++) ?{ ?count=0; ? for(nrow=1;nrow!=MAX;nrow++) ?? for(ncol=1;ncol!=MAX;ncol++) ??? { ??if(resData[nrow][ncol]==1) live(nrow,ncol); ??if(resData[nrow][ncol]==0) death(nrow,ncol); ??count+=resData[nrow][ncol]; ??? } ? table(); ? delay(5000); ? for(nrow=1;nrowMAX;nrow++) ?? for(ncol=1;ncolMAX;ncol++) ??switch((ori[nrow-1][ncol-1]+ori[nrow-1

您可能关注的文档

文档评论(0)

raojun00002 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档