五子棋游戏程序的设计报告

上传人:xmg****18 文档编号:120481936 上传时间:2020-02-06 格式:DOC 页数:37 大小:224KB
返回 下载 相关 举报
五子棋游戏程序的设计报告_第1页
第1页 / 共37页
五子棋游戏程序的设计报告_第2页
第2页 / 共37页
五子棋游戏程序的设计报告_第3页
第3页 / 共37页
五子棋游戏程序的设计报告_第4页
第4页 / 共37页
五子棋游戏程序的设计报告_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《五子棋游戏程序的设计报告》由会员分享,可在线阅读,更多相关《五子棋游戏程序的设计报告(37页珍藏版)》请在金锄头文库上搜索。

1、. . . . . 计算机学院网络工程专业程序设计综合课程设计报告 (2011/2012学年 第一学期)学生姓名: 学生班级: 网络工程学生学号: 指导教师: 2011年12月30日 双人五子棋目录第一章 课程设计目的和要求 11.1课程设计的目的 11.2课程设计的要求 1第二章 课程设计任务内容 22.1课程设计的主要内容 2 2.2系统设计原则 2第三章 设计说明 33.1游戏分析和介绍 33.1.1游戏分析33.1.2游戏介绍33.2重点模块说明 33.2.1棋盘界面Showboard()33.2.2下棋Play()43.2.3覆盖棋盘Recoverboard()73.2.4游戏结束后

2、初始化棋盘Unitboard() 73.2.5保存棋盘CopyB()83.3函数清单83.4接口 9第四章 软件使用说明 104.1测试 104.2限制条件 13第五章 课程设计心得体会14附录一 程序流程图15附录二 程序代码16附录三 参考文献26第一章 课程设计目的和要求1.1课程设计的目 1,学习综合运用C语言课程和其他相关课程的知识,提高分析解决实际问题的能力,进一步巩固、加深和拓宽所学的知识,进一步加强结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解。 2,全面系统的学习面向对象程序设计的基本概念、基本语法和编程方法,与同学合作设计整套程序,并且独立完成一定工作量的

3、程序设计. 3,掌握程序设计中的常用算法和C语言的程序技巧,培养良好的程序设计风格。 4,运用所学的知识了解五子棋游戏的制作结构,将所学的知识运用于实践中。1.2课程设计的要求 1,与同学合作设计、编制、调试出一款双人五子棋游戏,并单独完成其中一定量的函数模块。 2,要求该游戏具有趣味性和可操作性,能够正常运行。其中用到C+语言中的各种语句、结构。(如其中需要注意全局变量和局部变量的申明,数组的使用等) 3,双人五子棋要求能够进入欢迎界面,二人对弈,当有五颗同色棋子相连时,判断出输赢等一系列游戏流程。第二章 课程设计任务内容2.1课程设计的主要内容 任务内容就是设计一款老少皆宜、能够锻炼个人策

4、略谋划能力、较为传统的五子棋。棋盘为16*16,棋子放在交叉点儿上,两人各执一色,轮流下棋,先将横、竖、斜线上的五个同色棋子练成不间断的一排则胜出。2.2系统设计原则 1,系统性。系统作为统一整体而存在,因此,在设计中,要从系统的角度考虑。系统的代码要统一,传递语言要尽可能一致。 2,可靠性。可靠性是指系统抵御外界干扰的能力及外界干扰时的恢复能力。 3,规范性。游戏的运用以吸引玩家的乐趣为前提,一方面,系统设计应尽量避免不必要的复杂化,另一方面模块应尽量简洁,以缩短处理流程。第三章 设计说明3.1游戏分析和介绍3.1.1 游戏分析 该五子棋程序基本上实现了五子棋游戏的功能,有双方下棋之前的欢迎

5、界面及下棋过程中的棋盘界面,还有最终会判断出输赢。同时,该游戏采用了二维坐标实现的,明了易懂,方便玩家在游戏过程中的基本操作,使游戏更加简便。细节方面,该程序有实时储存功能,随时记录。另外考虑到游戏挺简单的,就没有设置悔棋的相关模块。3.1.2 游戏介绍 该游戏是简单的双人五子棋,所实现的功能是能够显示欢迎界面,选择是否进行游戏,进入游戏界面以后,玩家开始下棋。玩家输入坐标则会在棋盘上显示棋子,(若是输入的坐标超出棋盘或者该位子已经有子则会提示玩家重新输入坐标位子),若输入则退出游戏。3.2重点模块说明3.2.1 棋盘界面Showboard() 出现棋盘的界面,对棋盘上每一个点进行定位,并在棋

6、盘上显示相关的信息。相关代码如下:int Showboard()/棋盘界面system(CLS);cout ;for(int s=1;s=10) cout s-10 ; else cout s ; cout endl;for(i=0;i16;i+)printf(%2d,i+1);for(j=0;j16;j+)cout mapij;if(i=6)cout 退出:输入: 0 0 ;if(i=8)cout 步数(Step): Step;if(i=12)cout 制作人:吴忆芸 余迎香。; if(i=14)cout 请输入棋子的纵坐标、横坐标下子! ; cout endl;return(1);3.2.

7、2下棋Play() 在这个小游戏中,黑方先下棋,然后可以轮流进行。而在Play()这个函数中会调用各个函数,如最初的欢迎界面Interface(),每颗棋子的保存CopyB(),判断棋子的位子是否合法bool legal() bool Overflow(),判断同色五颗棋子是否连成一条线judgewin() 相关代码如下:int Play()char a03=;char a13=;Showboard();cout 黑方下:endl;while(cout x,cout y)if(x=0&y=0)Recoverboard();Interface();break;if(Overflow()conti

8、nue;if(legal() x-;y-;if(flag=1)/输入的是白棋mapxy0=a00;mapxy1=a01;Step+;Showboard();if(judgewin()cout n绿方胜利了!n ; cout Switch;if(Switch!=n)unitboard();Play();else return 1;cout 黑方下:endl;flag=0;elsemapxy0=a10;mapxy1=a11;Step+;Showboard();if(judgewin()cout n黑方胜利了! endl;cout Switch;if(Switch!=n)unitboard();Pl

9、ay(); else return 1;cout 绿方下:endl;flag=1;else cout It already have a chessman!Please Reenter:n此位置已有子!请重新输入:;3.2.3 覆盖棋盘Recoverboard() 当一盘棋下完选择重来的时候,会出现一个最初的棋盘界面覆盖掉目前存在的棋盘,从而使棋盘达到清屏的效果,但是却能够保存所下的棋的步数。 相关代码如下:void Recoverboard()/覆盖棋盘,使棋盘恢复到原始状态Step=0;for(i=0;i16;i+)for(j=0;j16;j+)mapij0=copymapij0; mapij1=copymapij1;3.2.4 游戏结束后初始化棋盘Unitboard() 相关代码如下:int unitboard()/游戏结束后界面初始化for(int i=0;i16;i+)for(int j=0;j16;j+)mapij0=copymapij0;mapij1=copymapij1;return 1;3.2.5 保存棋盘CopyB() 这个函数看起来貌似可以没有,但是,却是不可缺少的。它所实现的是对棋盘的保存,若是没有这个函数,最终将判断不出胜负。 相关代码如下:void CopyB()/调用字符数组保存原始棋盘for(i=0;i16;i+)for(j=0;j16;j+)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号