程序设计综合课程设计-五子棋c课程设计.doc

程序设计综合课程设计-五子棋c课程设计.doc

ID:51650691

大小:442.50 KB

页数:22页

时间:2020-03-14

程序设计综合课程设计-五子棋c课程设计.doc_第1页
程序设计综合课程设计-五子棋c课程设计.doc_第2页
程序设计综合课程设计-五子棋c课程设计.doc_第3页
程序设计综合课程设计-五子棋c课程设计.doc_第4页
程序设计综合课程设计-五子棋c课程设计.doc_第5页
资源描述:

《程序设计综合课程设计-五子棋c课程设计.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、程序设计综合课程设计五子棋第一章 课程设计目的和要求1.1C++语言课程设计的目的进一步培养结构化程序设计的思想,加深对高级系统语言基本语言要素和控制结构的理解,针对C++语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。此课程设计着眼于知识的运用,把平常学的知识运用到课程实践中来,本身就是考察我们知识运用能力。要求熟悉运用一些编程软件,对我们所学的理论知识进一步的深化。1.2C++语言课程设计实现的要求使用C++语言编写一个基于控制台的简单程序,使学生掌握简单的程序设计技巧。

2、同时设计一个简单的五子棋对弈系统,可以实现五子棋的基本功能,是一款娱乐用的小型程序。22程序设计综合课程设计第一章 课程设计任务内容五子棋对弈系统设计一个五子棋系统程序,实现对五子棋进行运行。基本要求:五子棋是有两个人在一盘棋上进行对抗的竞技活动。在对局开始时,先由用户选择哪方开局,先开局一方将一枚棋子落在一点上,然后由另一方在对方棋周围交叉点上落子,如此轮流落子,知道某一方首先在棋盘的直线、横线或斜线上形成连续的五子则该方程就算获胜。此时算法结束,当有任何一方退时出,都可在算法中实现。22程序设计综合课程设计第三章详细

3、设计说明3.1功能设计(1)由两个玩家分别下棋,当某一玩家五子相连,则赢。(2)界面要求:初始状态——显示棋盘,并显示两个玩家的操作键及初始玩家名称;游戏进行状态——动态显示棋盘,不同玩家的棋子用不同符号显示,屏幕上显示当前玩家号,结束时显示赢家名称。开始3.2五子棋对弈系统流程图白放下子判断该位置是否有棋找另一位是白方下子否判断是否重现开局跳出白棋获胜判断白方是否胜出是否黑方下子否判断该位置是否有棋棋否游戏结束找另一位是否黑方下子跳出黑棋获胜判断黑方是否胜出是判断该位是否图3-1程序总体图22程序设计综合课程设计白(黑

4、)方下子是白(黑)子在水平方向是否大于4白(黑)方获胜否白(黑)子在垂直方向是否大于4是进入选择是否重新开局框白(黑)方获胜否是白(黑)子在正对角线方向是否大于4白(黑)方获胜否是白(黑)子在反对角线方向是否大于4白(黑)方获胜否黑(白)方下子图3-2算法流程图3.3软件中实现各项功能的函数与程序代码主要函数、结构体和链表Inta;//纪录坐标位置Intb;//纪录坐标位置Intplayer,//用于在【a】【b】处落子Intname[N][N]1;//存放棋盘数据分别用1、2、0表示不同颜色子和空Intwin(),//

5、判断胜负voidreste()//重置棋盘voidchessboard()//下棋并绘棋盘类的使用:classQipan{22程序设计综合课程设计public:inta;intb;intplayer;//用于在【a】【b】处落子intname[N][N];//存放棋盘数据intwin();//判断胜负voidreset();//重置棋盘voidchessboard();//下棋并描绘棋盘}本次程序设计主要设计了五个模块1.绘制棋盘模块当游戏初始化时,和每当落子消息触发时,都需要对棋盘进行重绘。这里用特殊符号“○”“●”“

6、+”分别来描绘白子、黑子和棋盘空格。这个函数主要完成了以下工作:●装载棋盘二位数组并进行绘制。●根据棋盘数据绘制棋子。●绘制最后落子指示规矩。绘制棋牌;定义变量I,jI=0;i++iN退出循环j>N退出循环判断:name[i][j]=0NoYes输出“”NoYes“+”判断:name[i][j]=0输出NoYes输出“”输出“”完成扫描1行;输出换行符棋盘绘制结束图3-322程序设计综合课程设计2.键盘操作控制模块此模块主要用于处理与用户的交互过程。即完成落子判断过程。此模块主要

7、完成以下工作:●从键盘读入控制信息(上下左右移动和落子)。●判断是否在棋盘内按落子键,和移动是否超出棋盘范围。●判断落子点是否已有棋子。键盘操作控制Input=‘’//输入键为空格Input=‘D’=‘d’Input=‘A’‖‘a’Input=‘S’=‘s’=‖‘s’Inpu=‘W’‖‘w’从键盘输入控制键;intintput=getch()判断:name[a][b]=0如果b0NoYesa--控制左移a--;控制上移a++;控制下移此处有子,要求重新输入可以落子若player=1

8、则赋值为2反之亦然d++控制右移图3-43.判断胜负模块这是游戏中一个极其重要的算法,用来判断当前棋盘的形势是哪一方获胜。五子棋的胜负,在于判断棋盘上是否有一个点,从这个点开始的右、下、右下、左下四个方向是否有连续的五个同色棋子出现,如图:图3-5判断胜负方向22程序设计综合课程设计这个算法是本系统里的win成员函数

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。