- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
目录
目录 1
摘要 2
第一章 内容与要求 3
1.1设计要求 3
第二章 设计内容 4
2.1类的的设计要求 4
2.2 成员函数的设计要求 4
第三章 设计的实现 6
3.1 类图 6
3.2 实现流程图 6
3.3 主要函数的实现 8
3.3.1 Creatboard(int): 8
3.3.2 Judge(int[],int[]) 9
3.3.3 Print(): 10
第四章 实现结果 11
4.1 效果图 11
第五章 结束语 13
5.1 功能上的优势 13
5.2 不足之处 13
5.3 心得体会 13
参考文献 15
附录 16
程序源代码 16
摘要
本程序主要功能是实现一个连连看游戏,利用了,面向对象,数组,和封装函数等相关的知识。在DEV_cpp坏境编写而成的,运行程序后直接进入主界面;主界面的信息内容清晰明了,用户可以直观的通过了解主界面的信息,进行操作。
而这连连看游戏,则由玩家选择两个相同的棋子,此时两棋子同时消去,而可消去的棋子之间应该能连通,且连接时拐角不能超过两个。通过对问题的分析细化,掌握并实现对函数打包。不同的函数包包含不同的内容,并实现不同的功能。本设计共有8个函数,分别实现22*22棋盘的随机生成函数,并在随机生成时,检测生成的棋盘的合理性(即能否全部消去);输出的棋盘应当正确无误,使用特殊指令如“85 85 85 85” 可以输出棋盘全消的全部步骤;当玩家找不到相应棋子时,玩家输入“95 95 95 95”,系统应该提示可消去的棋子位置;本设计的特色之一是实现函数打包,使用递归生成随机棋盘,面向对象类的封装,每个函数实现不同功能的同时,函数间又紧密衔接在一起。
关键字:软件工程 游戏软件 连连看 面向对象
内容与要求
1.1设计要求
本程序的主要目的是设计一款简单的连连看游戏,实现两颗棋子相同连通且拐角数不超过的消除功能;
首先,构建一个game类,类中封装了char数组board与char数组line,board用于记录棋盘上所有棋子,line用于保存棋盘边上的坐标;
Game类中主要的函数有void Creatboard(int )、void Print()、void Creatline()、 bool Judge(int[],int[])、void Initializer()、void Miji()、 void Tips()、void Play()……
本系统带有自动提示功能:当玩家找不到相应棋子时,可输入指令‘ 95 95 95 95’,系统调用Tips()函数,提供并打印当前所有能够消掉的棋子位置;当玩家想让系统自动消掉当前的合法棋子时,可输入指令‘85 85 85 85 ’,系统将调用Miji()函数,打印全消的步骤;用户自己输入的选择,Judge(int [],int[],)函数将对其进行验证,如果合法,则消掉用户所选,否则提示用户输入有误。
在主函数中,携带提示用户如何进行游戏功能,通过if判断语句对用户每一次输入的选项进行判断,从而是否决定开始游戏,继续游戏,和结束游戏。
本程序必须除上述函数外,还应该包含对棋盘的随机生成函数Creatboard(int),对结果的统一打印函数Print(),保证界面的优美性,提示语句应做到全面,提升游戏的实用性和玩乐性。
设计内容
2.1类的的设计要求
在game类中封装了用于保存棋盘的board[]数组,用于显示坐标的line[]数组,在game类的public中创建了标记棋盘位子是否被占用的mark[]数组,以及定义了类的主要函数void Creatboard(int )用于构建棋盘、void Print()用于打印用户界面、void Creatline()、构建边界坐标、 bool Judge(int[],int[])判断两棋子是否能消去、void Initializer()对棋盘进行初始化、void Miji()打印全消步骤、 void Tips()打印提示、void Play()用户游戏的接口……
2.2 成员函数的设计要求
a).在进入游戏时,系统自动调用void Initializer()将棋盘进行初始化;在Initializer中主要调用iostream头文件中的memset函数读game类中的board、mark、line等数组以及全局变量record数组、conut(计数器)进行初始化;
b).系统对所有数据进行初始化后,随即调用Creatboard函数进行构建棋盘和棋子,Creatboard是一个递归函数,每调用一次该函数都会随机在棋盘上找到两个没用过的空位进行填子,填子后调用Judge()函数对新填的子进行判断是否合法,若合法Creatboard()函数就会自
文档评论(0)