程序设计方案书训练大作业报告——控制台游戏.docVIP

程序设计方案书训练大作业报告——控制台游戏.doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
程序设计方案书训练大作业报告——控制台游戏

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

文档评论(0)

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

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

1亿VIP精品文档

相关文档