下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、成绩评定 教师签名评定日期嘉应学院 计算机学院实验报告课程名称:C程序设计开课学期:2015 2016学年第1学期班级:计算机1505指导老师:陈广明设计题目:游戏2048学生姓名(学号): 第3组:钟瞻宇梁佳 3房嘉泽 0陈祺 9目录一、实验目的和要求 错误 !未定义书签二、实验环境、内容和方法 错误 !未定义书签三、程序设计 错误 !未定义书签四、源代码 错误 !未定义书签五、调试与运行结果 错误 !未定义书签六、总结 错误 !未定义书签一、实验目的和要求 使用C语言编写2048这款游戏。(2) 能够正常运行,拥有游戏界面。(3) 能正常进行游戏从开始到结束。(4) 用户操作方便。二、实验
2、环境、 内容和方法实验内容:1、游戏开始时随机产生两个数值为 2/4 的方格,其中一个方格置 于 4 个角中的一个位置,另一个方格随机的置于其他位置,其他方格置于 0。2、每次按方向键( w,s,a,d )后,逐行计算移动后的方格值。每行移动的算法 是:先将所有值为 0 的数移至行首。能后从行尾开始逐一和前一个数比较,如果 相等则合并这 2 个格子。3、每合并一次格子,将其值累计到游戏总分中。4、一次移动结束后,在所有值为 0 的方格中随机的分配一个 2/4 的值。5、所有方格值不为 0 且上下、左右相邻的方格都不相等,则游戏结束。6、2 出现的概率为 70%,4出现的概率为 30%。 实验方
3、法:通过上机操作完成各内容。实验环境:实验用PC机一台,使用操作系统为 Windows 7/ Windows 8/ WindowslO,安 装 vc+ 或 v2008 等编译软件三、程序设计Y游戏结束四、源代码#in clude#in clude#in clude#in clude#defi ne M 2048void up();n);printf(”玩家可以选择上 下(s)左(a)右(d)四个方向,若棋盘内的数字出现位移或合并,视为有效移动.n);printf(若有相同的数字则合并,每次有效移动可以同时合并,但不可以连续合并.n);printf( 合并所得的所有新生成数字想加即为该步的有效得
4、分 .n);printf( 玩家选择的方向行或列前方有空格则出现位移 .n);printf( 每有效移动一步,棋盘的空位 (无数字处 )随机出现一个数字 (依 然可能为 2 或 4).n);printf( 棋盘被数字填满,无法进行有效移动,判负,游戏结束 .n);printf( 棋盘上出现 2048,判胜,游戏结束 );printf(nnn);printf( ttt 按回车开始游戏 .n);getchar(n);system(cls);system(color 70);random();random();all_printf();int flag=1,i,j;char judge;for(;f
5、lag=1;)play();for(i=0,flag=0;i=3;i+)for(j=0;j=3;j+)if(Aij=0&(flag=0|flag=1)flag=1;else if(Aij=M)flag=2;if(flag=0)system(color c7);printf(nttt任务失败!你总共获得4分!n,C);else if(flag=2)printf(nttt恭 喜 你 获 得 胜 利 ! 你总共获得%c分!n,C);if(flag=0|flag=2)printf( 是否重新开始( y or n ):);jucge=getch();if(jucge=y)system(cls);C=0;
6、for(i=0;i=3;i+)for(j=0;j=3;j+)Aij=0;random();random();all_printf();flag=1;system(color 70);else break;elserandom();system(cls);all_printf();printf(n);printf(t 分数为 :%6dtt,C);*/void play()/*操作函数char direction;direction=getch();switch(direction)case w:up();break;case s:down();break;case a:left();break;
7、case d:right();break;default: printf( 输入错误! n);void up()int a44=0,i,j,m;for(j=0;j=3;j+)for(i=0,m=0;i=3;i+)if(Aij=0)continue;else am+j=Aij;/Aij的有效值赋给 aij,所有有效值向上靠拢。for(i=0;i=3;i+)for(j=0;j=3;j+)Aij=0; / 对整个 A 数组赋 0for(j=0;j=3;j+)for(i=0,m=0;i=3;i+)if(i=3&aij!=0)Amj=aij;else if(aij=0)continue;else if(
8、aij=ai+1j)Am+j=aij*2;ai+1j=0;integral(aij*2);else if(aij!=ai+1j)Am+j=aij;/ 分析计算回归赋值。/向上void down()int a44=0,i,j,m;for(j=0;j=0;i-)if(Aij=0)continue;的有效值赋给 aij,else am-j=Aij;/Aij所有有效值向下靠拢。for(i=0;i=3;i+)for(j=0;j=3;j+)Aij=0;/对整个 A 数组赋 0for(j=0;j=0;i-)if(i=0&aij!=0)Amj=aij;else if(aij=0)continue;else i
9、f(aij=ai-1j)Am-j=aij*2;ai-1j=0;integral(aij*2);else if(aij!=ai-1j)Am-j=aij;/ 分析计算回归赋值。/ 向下。void left()int a44=0,i,j,m;for(i=0;i=3;i+)for(j=0,m=0;j=3;j+)if(Aij=0)continue;else aim+=Aij;/Aij 的有效值赋给 aij, 所有有效值向左靠拢。for(i=0;i=3;i+)for(j=0;j=3;j+)Aij=0;/对整个 A 数组赋 0。for(i=0;i=3;i+)for(j=0,m=0;j=3;j+)if(j=3
10、&aij!=0)Aim=aij;else if(aij=0)continue;else if(aij=aij+1)Aim+=aij*2;aij+1=0;integral(aij*2);else if(aij!=aij+1)Aim+=aij;/ 分析计算回归赋值。/ 向左void right()int a44=0,i,j,m;for(i=0;i=0;j-)if(Aij=0)continue;的有效值赋给 aij,else aim-=Aij;/Aij所有有效值向右靠拢。for(i=0;i=3;i+)for(j=0;j=3;j+)Aij=0;/对整个 A 数组赋 0for(i=0;i=0;j-)if
11、(j=0&aij!=0)Aim=aij;else if(aij=0)continue;else if(aij=aij-1)Aim-=aij*2;aij-1=0; integral(aij*2);else if(aij!=aij-1)Aim-=aij;/ 分析计算回归赋值。随机函数/ 向右。void random() /* */srand(time(0);int i,k,p,q;i=rand()%10+1;if(i=7)k=2;else k=4;for(q=rand()%4+0,p=rand()%4+0;Aqp!=0;)q=rand()%4+0;p=rand()%4+0;Aqp=k;void i
12、ntegral(int x) /*/C=C+x;void all_printf() /* 片 */int i,j;printf( 积分函数输出图n);for(i=0;i=3;i+)for(j=0;j=3;j+)printf( );printf( n);/for(j=0;j=3;j+)if(Aij=0)printf( ); else printf( %5d ,Aij);printf( n);/for(j=0;j=3;j+)printf( );printf( n);/printf(n);五、调试与运行结果i1H241B24分数为:17W4恭害你获得胜利鞘总共获得冊毗分辛 是否重新开始?()二17964旱否重轴开始?(恭喜你获得胜刹?你总共获得泗12分辛六、总结六、总结通过本次课程设计,对 C语言
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026陕西汉中市精神病医院招聘5人备考题库附答案详解(典型题)
- 2026广东广州市黄埔区新龙镇面向社会招聘政府聘员5人备考题库带答案详解(综合卷)
- 2026云南昆明华航技工学校蒙自校区招聘12人备考题库及答案详解【有一套】
- 2026年春季贵州黔东南州从江县招考幼儿园编外专任教师备考题库附参考答案详解(能力提升)
- 2026诏安县霞葛中心卫生院编外人员招聘2人备考题库【含答案详解】
- 2026江西赣州市托育综合服务中心招聘业务园长1人备考题库及完整答案详解1套
- 2026年宿州九中教育集团(宿马南校区) 教师招聘备考题库及参考答案详解一套
- 2026黑龙江齐齐哈尔市龙沙区南航街道公益性岗位招聘1人备考题库带答案详解(综合题)
- 2026南方科技大学生物医学工程系诚聘海内外高层次人才备考题库及答案详解【有一套】
- 2026江苏南京工业大学教学科研岗招聘101人备考题库(含答案详解)
- 呼吸科安宁疗护与临终关怀
- 2026年全国两会应知应会知识竞赛测试题库及答案
- 2026哈尔滨工业大学郑州高等研究院招聘1人考试参考试题及答案解析
- 探秘“转化链”:基于真实情境的初中科学物质推断项目式学习设计
- 护理三基三严考试题库及答案大全
- 生成式人工智能在初中历史课堂互动教学中的实践与反思教学研究课题报告
- 2026年1月浙江省高考首考英语试卷真题完整版(含答案+听力)
- 《华南地区长效型花境管养技术规程》
- 2024+EACTS+指南:成人心脏手术围手术期用药
- 2026年陕西国防工业职业技术学院单招职业技能考试题库附答案解析
- 2025年新《治安管理处罚法》知识考试题库及答案
评论
0/150
提交评论