游戏2048c语言代码.docx

游戏2048c语言代码.docx

ID:52359403

大小:12.67 KB

页数:7页

时间:2020-03-26

游戏2048c语言代码.docx_第1页
游戏2048c语言代码.docx_第2页
游戏2048c语言代码.docx_第3页
游戏2048c语言代码.docx_第4页
游戏2048c语言代码.docx_第5页
资源描述:

《游戏2048c语言代码.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、#include#include#include#includeintcode[4][4]={{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}};//游戏中的16个格子inttemp[5];//中间变量intmove=0;/*移动次数*/intscore=0;/*分数*/voidprint()/*显示游戏界面*/{inti,j;system("cls");/*清屏*/system("colorb8");printf("2048");printf("u--UPl--LEFTd--DOW

2、Nr--RIGHT0--EXIT");printf("Score:%dMove:%d",score,move);printf("

3、-------------------

4、");/*显示横向分隔线*/for(i=0;i<=3;i++){for(j=0;j<=3;j++){if(code[i][j]==0){printf("

5、");/*0显示空格*/}else{printf("

6、%4d",code[i][j]);/*显示数字和分隔线*/}}printf("

7、

8、-------------------

9、");/*显示横向分隔线*/}}intadd()/*对中间变量数组进行处理

10、*/{inti;intt=0;intchange=0;/*判断数组是否有改变,0不变,1变化*/do{for(i=0;i<=3;i++){if(temp[i]==0){if(temp[i]!=temp[i+1])change=1;/*当一个0后面不是0时数组改变*/temp[i]=temp[i+1];temp[i+1]=0;}}/*去掉中间的0*/t++;}while(t<=3);/*重复多次*/for(i=1;i<=3;i++){if(temp[i]==temp[i-1]){if(temp[i]!=0){change=1;/*当两个非零相同的数相加时数组改变*/score=score+

11、temp[i];}temp[i-1]=temp[i-1]*2;temp[i]=0;}}/*把两个相邻的相同的数加起来*/do{for(i=0;i<=3;i++){if(temp[i]==0){temp[i]=temp[i+1];temp[i+1]=0;}}/*去掉中间的0*/t++;}while(t<=3);/*重复多次*/returnchange;}intmain(){intgameover=0;/*判断游戏是否结束,1结束,0继续*/inti,j;intchange=1;/*判断格子中的数是否改变,0不变*/charinput;srand((unsigned)time(NULL));

12、/*设置随机数的起点*/while(gameover==0){if(change>=1)/*仅当数发生改变时添加新数*/{do{i=((unsigned)rand())%4;j=((unsigned)rand())%4;}while(code[i][j]!=0);if(((unsigned)rand())%4==0){code[i][j]=4;}else{code[i][j]=2;/*随机选一个空格填上2或4*/}move++;/*增加次数*/}print();/*显示*/input=getch();/*输入方向*/change=0;switch(input){case'0':/*退出*

13、/printf("Areyousuretoexit?(y/n)");input=getchar();if(input=='y'

14、

15、input=='Y')exit(0);break;case'U':case'u':/*上*/for(j=0;j<=3;j++){for(i=0;i<=3;i++){temp[i]=code[i][j];/*把一列数移到中间变量*/}temp[4]=0;change=change+add();for(i=0;i<=3;i++){code[i][j]=temp[i];/*把处理好的中间变量移回来*/}}break;case'L':case'l':/*左*/for(

16、i=0;i<=3;i++){for(j=0;j<=3;j++){temp[j]=code[i][j];/*把一行数移到中间变量*/}temp[4]=0;change=change+add();for(j=0;j<=3;j++){code[i][j]=temp[j];/*把处理好的中间变量移回来*/}}break;case'D':case'd':/*下*/for(j=0;j<=3;j++){for(i=0;i<=3;i++){temp

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。