2022年c语言源代码 .pdf

上传人:Che****ry 文档编号:34881394 上传时间:2022-08-19 格式:PDF 页数:6 大小:43.90KB
返回 下载 相关 举报
2022年c语言源代码 .pdf_第1页
第1页 / 共6页
2022年c语言源代码 .pdf_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《2022年c语言源代码 .pdf》由会员分享,可在线阅读,更多相关《2022年c语言源代码 .pdf(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、#include #include #include #include #include #define N 4 int gridNN=0; int D=0; int M=2048; /显示void showdata() int i,j; system(CLS); for(i=0;iN+2;i+)printf(%5c,+);printf(nn); for(i=0;iN;i+) printf(%5c,+); for(j=0;jN;j+) if(gridij!=0) printf(%5d,gridij); else printf(%5c, ); printf(%5c,+); printf(nn);

2、 for(i=0;iN+2;i+)printf(%5c,+);printf(n); /判断是否有空位int isNotFull() int i,j,k=0; for(i=0;iN;i+) for(j=0;jN;j+) if(gridij=0) k=1; break; return k; /随机数字void randomdata() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - int r,c,x; x = rand()%2*2

3、+2; do r = rand()%N; c = rand()%N; while(gridrc!=0); gridrc=x; /获取最大值int getMax() int i,j,max=0; for(i=0;iN;i+) for(j=0;jN;j+) if(maxgridij) max=gridij; return max; /移动相加 ,返回 1 表示有移动,返回0 表示无移动int add() int i,j,cr,w,F=0; if(D=1)/top for(i=1;iN;i+) for(j=0;j=1 & gridcrj!=0 ) if(gridcr-1j=0)/上方有空位,上移 g

4、ridcr-1j=gridcrj; gridcrj=0;F=1; else/上方无空位 if(gridcr-1j=gridcrj& w=0)/相等,相加 gridcr-1j=gridcr-1j*2; gridcrj=0; w=1; F=1; else/不等 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - break; cr-; if(D=2)/down for(i=N-2;i=0;i-) for(j=0;jN;j+) cr=i;

5、w=0; while(cr=N-2 & gridcrj!=0 ) if(gridcr+1j=0)/下方有空位,下移 gridcr+1j=gridcrj; gridcrj=0;F=1; else/下方无空位 if(gridcr+1j=gridcrj & w=0)/相等,相加 gridcr+1j=gridcr+1j*2; gridcrj=0; w=1;F=1; else/不等 break; cr+; if(D=3)/left for(i=0;iN;i+) for(j=1;j=1 & gridicr!=0 ) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - -

6、- - - - - - 名师精心整理 - - - - - - - 第 3 页,共 6 页 - - - - - - - - - if(gridicr-1=0)/左方有空位,左移 gridicr-1=gridicr; gridicr=0;F=1; else/左方无空位 if(gridicr-1=gridicr & w=0)/相等,相加 gridicr-1=gridicr-1*2; gridicr=0;w=1;F=1; else/不等 break; cr-; if(D=4)/right for(i=0;i=0;j-) cr=j;w=0; while(cr=N-2 & gridicr!=0 ) if(

7、gridicr+1=0)/右方有空位,右移 gridicr+1=gridicr; gridicr=0;F=1; else/右方无空位 if(gridicr+1=gridicr & w=0)/相等,相加 gridicr+1=gridicr+1*2; gridicr=0; w=1; F=1; else/不等 break; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 6 页 - - - - - - - - - cr+; return F; int getKey() int

8、k=0; char c=getch(); if(c0) /c0 为特殊键,还要再读下一个字节判断为何键 c=getch(); if(c=72) D=1; k=1;/top if(c=80) D=2; k=1;/down if(c=75) D=3; k=1;/left if(c=77) D=4; k=1;/right return k; /在数字全满下,检查是否还有合并的可能,有则返回1;int canAdd() int i,j,k,F=0; for(i=0;iN;i+) for(j=0;jN-1;j+) if(gridij=gridij+1) F=1; for(j=0;jN;j+) for(i

9、=0;iN-1;i+) if(gridij=gridi+1j) F=1; return F; main() char c;int mov,key,isf; printf( 请输入游戏要拼凑的最大数字,例如32,64,128,.,2048:); scanf(%d,&M); /初次状态srand(time(NULL); randomdata();/随机第一个数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 6 页 - - - - - - - - - randomdata();

10、/随机第二个数showdata(); do key=getKey();/ 读取操作键if(key=0) continue; / 不是上下左右键,重新读取键盘mov=add();/ 根据方向键合并相加,返回 1 表示有移动if(mov=1) showdata();/ 显示if(getMax()=M)/ 判断是否胜利 printf( 你赢了! n);break; isf=isNotFull();/ 返回 1 表示还有空位if(isf=1 & mov=1) /有空位且有移动再随机 randomdata();/ 再随机showdata();/显示 if(isf=0)/ 没有空间则游戏结束 if(canAdd()=1) printf( 请选择另一个方向滑动!n); else break; while(1); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 6 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁