欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOCX文档下载  

    2048c语言源代码推荐文档.docx

    • 资源ID:12603242       资源大小:16.16KB        全文页数:7页
    • 资源格式: DOCX        下载积分:4
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要4
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2048c语言源代码推荐文档.docx

    #i nclude <stdlib.h>#in clude<time.h>#i nclude <stdio.h>#in elude <coni o.h>#in clude<wi ndows.h>#defi ne N 4in t gridNN=0;int D=0;int M=2048;/显示void showdata()int i,j;system("CLS");for(i=0;i<N+2;i+)pri ntf("%5c",'+');pri ntf("nn");for(i=0;i<N;i+)prin tf("%5c",'+');for(j=0;j<N;j+)if(gridij!=O)prin tf("%5d",gridij);elseprin tf("%5c",'');prin tf("%5c",'+');prin tf("nn");for(i=0;i<N+2;i+)pri ntf("%5c",'+');pri ntf("n");/判断是否有空位in t isNotFull()int i,j,k=O;for(i=0;i<N;i+)for(j=0;j<N;j+)if(gridij=0)k=1; break;return k;II随机数字void ran domdata()int r,c, x;x = ran d()%2*2+2;dor = ran d()%N;c = ran d()%N;while(gridrc!=O); gridrc=x;获取最大值in t getMax()int i,j,max=0;for(i=0;i<N;i+)for(j=0;j<N;j+)if(max<gridij) max=gridij;return ma x;II移动相加,返回1表示有移动,返回0表示无移动int add()int i,j,cr,w,F=0;if(D=1)IItopfor(i=1;i<N;i+)for(j=0;j<N;j+)cr=i;w=0;II0:未合并 1:合并过while(cr>=1 && gridcrj!=0 )if(gridcr-1j=0)II 上方有空位,上移 gridcr-1j=gridcrj; gridcrj=0;F=1;elseII上 方无空位等,相加 if(gridcr-1j=gridcrj&& w=0)II gridcr-1j=gridcr-1j*2; gridcrj=0; w=1; F=1;elseII不 等break;cr-;if(D=2)/dow nfor(i=N-2;i>=0;i-)for(j=0;j<N;j+)cr=i;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=O; w=1;F=1;else/不等 break; cr+;if(D=3)/leftfor(i=0;i<N;i+)for(j=1;j<N;j+)cr=j;w=0;while(cr>=1 && gridicr!=O ) 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)/rightfor(i=0;i<N;i+)for(j=N-2;j>=0;j-)cr=j;w=0;while(cr<=N-2 && gridicr!=O )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+;return F;in t getKey()int k=0;char c=getch();if(c<0) c<0为特殊键,还要再读下一个字节判断为何键c=getch();if(c=72) D=1; k=1;/topif(c=80) D=2; k=1;/dow nif(c=75) D=3; k=1;/leftif(c=77) D=4; k=1;/rightreturn k;在数字全满下,检查是否还有合并的可能,有则返回1;int can Add()int i,j,k,F=O;for(i=0;i<N;i+)for(j=0;j<N-1;j+)if(gridij=gridij+1) F=1;for(j=0;j<N;j+)for(i=0;i<N-1;i+)if(gridij=gridi+1j) F=1;return F;main ()char c;i nt mov,key,isf;,2048:");printf("请输入游戏要拼凑的最大数字,例如32,64, 128,sca nf("%d",&M);/初次状态sran d(time(NULL);ran domdata();/ 随机第一个数ran domdata();随机第二个数showdata();dokey=getKey();读取操作键 if(key=O) continue; /不是上下左右键,重新读取键盘 mov=add();根据方向键合并相加,返回1表示有移动 if(mov=1) showdata(); 显示if(getMax()=M)判断是否胜利printf("你赢了! n ”);break;isf=isNotFull();返回1表示还有空位if(isf=1 && mov=1)/ 有空位且有移动再随机ran domdata();/ 再随机showdata();/ 显示if(isf=0)/没有空间则游戏结束if(can Add()=1)printf("请选择另一个方向滑动!n");else break;while(1);

    注意事项

    本文(2048c语言源代码推荐文档.docx)为本站会员(scccc)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开