ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:79.52KB ,
资源ID:13445792      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/13445792.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(欢乐五子棋课程设计报告Word文件下载.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

欢乐五子棋课程设计报告Word文件下载.docx

1、掌握并且熟练应用C+程序设计中所学知识。掌握函数功能的划分方法,并运用此方法解决问题。学会程序测试方案的制定,并且实现程序的测试。通过此次实践,积累经验,提高分析和解决问题的能力。 另外,能够运用所学知识了解五子棋游戏制作的结构,将所学知识用于实践中。1.2课程设计要求1)在了解课程设计要求的情况下,运用C+编一个关于五子棋的程序,并可以实现相关功能。2)在课程设计的过程中,难免会遇到一些困难和错误,这就要求自己在遇到困难时学会查找和解决,并向同学,老师请教。最后不能解决的问题要如实反映。3)在整个过程中,需要设计者独立完成,不得抄袭,养成独立思考的能力。第2章 课程设计任务和内容2.1设计的

2、主要工作(1) 总体设计:包括功能结构图和系统流程图的设计(包含五子棋游戏的各种功能步骤)。(2)细节部分:实现人人对弈和人机对弈的要求,并且对输入的内容判断棋盘是否已满,判断输入坐标(下棋的位置)是否已有棋子,如果有就提示重下,判断是否胜利,再者是循环整个游戏或者换成人人对弈或者人机对弈,可按玩家意愿选择,并且可选是自己先玩还是电脑先玩。(3)程序的运行:编译后的游戏按规则步骤的将数据输入,然后按照提示就可以将游戏进行,并将其剪切出来。2.2系统设计原则 (1) 系统性。系统是作为统一整体而存在的,因此,在系统设计中,要从整个系统的角度进行考虑,系统的代码要统一,设计规范要标准,传递语言要

3、尽可能一致,对系统的数据采集要做到数出一处、全局共享,使一次输入得到多次利用。(2) 灵活性。为保持系统的长久生命力,要求系统具有很强的环境适应性,为此,系统应具有较好的开放性和结构的可变性。在系统设计中,应尽量采用 模块化结构,提高各模块的独立性,尽可能减少模块间的数据耦合,使各子系统间的数据依赖减至最低限度。(3) 可靠性。可靠性是指系统抵御外界干扰的能力及受外界干扰时的恢复能力。一个一起玩家有乐趣的游戏系统必须具有较高的可靠性,如循环连接、检错及纠错能力、简明易懂等。(4) 规范性。游戏的运用以吸引玩家的乐趣为前提; 一方面,系统设计中应尽量避免不必要的复杂化,另一方面各模块应尽量简洁,

4、 以便缩短处理流程。第三章 详细设计说明3.1 游戏分析和介绍基于本游戏,首先得为整个棋盘建立一张表格用以记录棋子信息,我们使用一个20*20的二维数组 Table2020 (20*20是五子棋棋盘的大小),数组的每一个元素对应棋盘上的一个交叉点,用点表示空位、“1”和“2”在刚开始表示人机对弈或者人人对弈,之后表示人或电脑谁先下棋。通过输入姓名来确定玩家身份,这张表也是今后分析的基础。在此还要为两个玩家双方各建立一张棋型表Computer20204和Player20204,用来存放棋型数据3.2模块图说明图3-13.3 文字说明该五子棋程序基本上实现了五子棋的游戏功能,有双方下棋的棋盘界面及

5、最终判定结果的界面。同时该游戏采用二维坐标实现,明了易懂,方便玩家在游戏过程中的基本操作,使游戏更加简便。在细节方面,该系统判别棋面状况,如已有棋,则提示重下,当棋盘满时,判断为平局。该游戏基本实现了欢乐五子棋游戏的一些要求和特征。在游戏的源程序及文档方面,我们也严格遵守软件工程思想,立足实验要求,确定任务,需求分析,设计和编码,每个步骤力求清晰易懂。原代码注释详尽,各功能模块功能分明,可移植性强。当然该系统也有很多不足的地方,第一次进行独立的课程设计,也有很多细节方面是考虑不到的,这款游戏也是在不断的调试和修改中产生和完善的。希望老师能够指出不足,帮助我不断提高。3.4 初始化:首先,建立盘

6、面数组Table2020、对战双方的棋型表Computer20204和Player2020 4并将它们清零以备使用;然后初始化显示器、键盘、鼠等输入输出设备并在屏幕上画出棋盘。(棋盘已经显示) 3.5主循环控制模块控制下棋顺序,当轮到某方下子时,负责将程序转到相应的模块中去,主要担当一个调度者的角色。3.6对方和己方下子 当轮到对方下时,您通过键盘输入0到20的数字,回车键后在棋盘上落子,程序会根据该点的位置,在Table2020数组的相应地方记录,以表明该子是玩家下的或者电脑下的,然后提示另一玩家下子。将自己和对手调换一下位置,然后用上面的方法来预测对手的棋,这样既可以防住对手巧妙的攻击,又

7、能待机发动反击,玩家若想赢的游戏,必须认真考虑每一步,在人机对弈中,要注意防范,也要考虑下一步对方怎么走,否则容易输。3.7盘面分析填写棋型表 您在下五子棋时,一定会先根据棋盘上的情况,找出当前最重要的一些点位,如“活三”、“冲四”等;然后再在其中选择落子点。先来分析己方的棋型,我们从棋盘左上角出发,向右逐行搜索,当遇到一个空白点时,以它为中心向左挨个查找,如果遇到己方的子则记录然后继续,如果遇到对方的子、空白点或边界就停止查找。左边完成后再向右进行同样的操作;最后把左右两边的记录合并起来,得到的数据就是该点横向上的棋型,然后把棋型的编号填入到Computerxyn中就行了(x、y代表坐标,n

8、=0、1、2、3分别代表横、竖、左斜、右斜四个方向)。而其他三个方向的棋型也可用同样的方法得到,当搜索完整张棋盘后,己方棋型表也就填写完毕了。然后再用同样的方法填写对方棋型表。3.8胜负判断当某方连成五子(包括横,竖,斜)即获胜,当某方获胜时,输出该方获胜,游戏结束,并进行下一轮游戏,提示摁1或2来进行人机或者人人对弈。3.9程序流程图本程序定义了各种操作函数、各种状态判定宏,思想明确,思路清晰。各个判断选择了不同路径,因此继续进行或输出结果。本流程图中,“循环”的利用非常直接和清晰,双方交替下棋,以及人机对弈,因此循环往复。最终决出胜负或最终平局。分析时,也考虑了许多种情况,针对各个情况均作

9、出了相对措施和解决方案。图3-2第4章 软件使用说明4.1测试计划如图4-1运行结果出示图,输入数字进行游戏的开始或者退出图4-1如图4-2为人机对弈中,玩家自己选择是玩家先下棋或者电脑先下棋 图4-2如图4-3为人人对弈过程,输入玩家的姓名图4-3图4-4为人人对弈中,假设输入玩家zhangbei和jinwubing,在对弈之后,zhangbei五子相连,输出“zhangbei获胜,游戏结束”可继续进行游戏。图4-4如图4-5为人机对弈中,最后玩家五子相连,输出了“玩家获胜,游戏结束”,可继续进行游戏。图4-54.2限制条件 在运行该程序时,在人人对弈中,当涉及到1*1时,需要6个子才能算获

10、胜,这是本程序的一个缺陷。另外,在本程序中涉及到许多函数都没学过,对这次的设计是一个很大的挑战,但在同学老师的帮助下最终克服了许多困难。第五章 课程设计心得体会在本次课程设计中,不仅让我认识到自己学习上的不足,也通过请教其他同学和老师学会了修改并运行程序,还让自己复习了编程的知识,对遇到的众多问题,通过思考,耐心动手解决问题,在课程设计期间我也学到了课本中很多学不到的知识,明白了只有通过自己不断的动手实践才能找出不足、找出问题和提高自己能力,发现课程设计是我学习和掌握专业知识的好方法,让自己思维变得活跃,也会看懂,学明白程序问题,本次受益匪浅。最后,感谢王俊艳老师教我们数据结构这门课程,交给我

11、很多程序设计的思想和知识。这次课程设计最要感谢老师和同学为我提供了这么多宝贵的意见并对我的报告做了很多的批示,给我讲解了很多我不懂得知识及应用方法,为我更好更快的完成报告付出了辛勤和汗水。附录1:参考文献1)严蔚敏 吴伟民 数据结构 北京 清华大学出版社 2010年2)苏仕华 魏韦巍 王敬生 刘燕君 数据结构课程设计(第二版) 北京 机械工业出版社 2010年。3)谭浩强 C程序设计(第二版) 北京 清华大学出版社 1999年4)谭浩强 C+程序设计 北京 清华大学出版社 2009年5)丁展 VisualC+游戏开发技术与实例北京 人民邮电出版社 2005年附录2:程序清单#includeme

12、mory.hstringusing namespace std;const int N=20; /定义棋盘规模int pace = 0; /统计步数const char chess2=X,O; /定义数组显示棋子颜色int lastI =0;int maxI= 9, maxJ= 9;int lastJ=0;bool SystemError = 0;void initchess(char* A, int N) /该函数,初始化棋盘 int i,j; for(i=0;iN;i+) for(j=0;jj+) Ai*N+j=.; return;void printchess(char* A, int N) /该函数,打印棋盘 i+) if(i10) cout i; elseNendl;9)i+1j if(j=0&i=0) if(color=0)黑色方放弃,白子获胜了,祝贺您!白色方放弃,黑子获胜了,祝贺您! SystemError = 1; i-; j-;0|i20|j20)请您输入1-20的数 else if(Ai*N+j!=)已有棋子,请您重下 break;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1