程序设计报告——控制台游戏2048.docxVIP

  1. 1、本文档共11页,可阅读全部内容。
  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文档。上传文档
查看更多
程序设计报告——控制台游戏2048

大连理工大学程序设计总结报告装订线 控制台游戏——2048学生姓名: 刘阳 院系班级: 电计1203 学 号 : 201281303 联系电话: 188-4085-1891 Email: rick@mail.dlut.edu.cn 完成日期: 2014 年 7 月1 日一、 设计任务设计目标:完成一个控制台小游戏,其中包括游戏、排名、存档和读档等功能。选题意义:2048是最近最流行的小游戏之一,益智益趣,通过C语言控制台仿写这个游戏,可以锻炼编程框架思想以及技巧,同时将所学到的数据结构等知识灵活的运用。目标实现的系统功能:完成2048游戏主体,可查看各玩家排名情况,可查看玩家平均水平,可存档、读档。二、 程序设计与实现结构框图设计的控制台游戏2048结构图如图一所示。控制台游戏2048退出查看纪录读取存档新的游戏保存成绩存档存档位一存档位二步数排名分数排名平均水平图1. 2048游戏框图功能模块设计及其流程图(1) 数据描述与存储游戏模块数据采用二维数组存放,并且不断根据按键信息更新其中数据。存储时以二进制文件存储,数据文件位于工程文件夹中load1.dat以及load2.dat(此时的步数以及分数存储在load1_step.dat、load2_grade、load2_step.dat、load2_grade)。读取数据的目的是可以继续之前没有完成但存档了的游戏。分数模块数据采用结构体数组存放,用typedef定义了StepRecord和GradeRecord。StepRecord中name[15]代表玩家在步数排行榜中的名字,step代表玩家所坚持的步数;GradeRecord中name[15]代表玩家在分数排行榜中的名字,grade代表玩家取得的分数(分数计算规则见说明)。存储时以二进制文件存储,数据文件位于工程文件夹中step_rank.dat、grade_rank.dat。读取数据的目的是将新的数据加入排行榜或者读取并显示排行榜。 (2) 主要功能模块设计及其流程图函数原型1int HideCursor() 函数功能:隐藏光标,减少游戏中的闪烁。入口参数(形参):void出口参数(实参):void算法描述(即实现步骤):函数原型2int gotoxy(int x,int y) 函数功能:隐藏光标,减少游戏中的闪烁。入口参数:int x,int y出口参数:实际点的坐标。算法描述:运用api函数,GetStdHandle获取标准输出设备句柄,SetConsoleCursorPosition设置控制台光标位置并输出。函数原型3int draw_map() 函数功能:绘制游戏地图以及提示信息。入口参数:void出口参数:void算法描述:利用for循环以及gotoxy函数绘制边框,再通过对文件的操作读取当前最高分显示在屏幕上。函数原型4 int draw_cover(int x) 函数功能:绘制游戏中出现的各级菜单(通过参数x控制具体绘制哪一种)。入口参数:int x出口参数:数字1~3算法描述:同样利用for循环和gotoxy函数,绘制出菜单边框,通过参数x的值决定绘制的内容。函数原型5int quntity(int x) 函数功能:获取数据文件中记录个数。入口参数:int x出口参数:1或2算法描述:利用指针定位函数fseek,文件打开时,指针位于文件首第一个字节,调用fseek函数把指针移到文件末尾,再调用ftell()返回指针当前所在位置,这个返回值是文件长度,再根据参数x的值用它除以类型StepRecord或者GradeRecord的长度,得到记录个数。函数原型6int read_record(int x,int a[4][4],int b[2]) 函数功能:读取游戏存档。入口参数:int x,int a[4][4],int b[2]出口参数:x值为1或2,保存游戏数据的二维数组a[4][4],保存步数step和分数grade的数组b[2]。算法描述:通过参数x的控制以读的方式打开相应的数据文件,将游戏数据信息读取到数组a[4][4]中,将分数等信息读取到b[2]中。函数原型7int read_rank(int x,int num) 函数功能:读取游戏排名入口参数:int x,int num出口参数:x值为1或2,num为数据文件中记录个数算法描述:通过参数x的控制以读的方式打开相应的数据文件,将排名数据存入相应数组中,再通过gotoxy函数以及for循环打印。函数原型8int save_record(int x,int a[4][4],int step,int grade); 函数功能:游戏中数据存档入口参数:int x,int a[4][4],int step,int grade出口参数:x值为1或2,a[

您可能关注的文档

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档