程序设计综合课程设计五子棋c++课程设计.doc
《程序设计综合课程设计五子棋c++课程设计.doc》由会员分享,可在线阅读,更多相关《程序设计综合课程设计五子棋c++课程设计.doc(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、五子棋第一章 课程设计目的和要求1.1 C+语言课程设计的目的 进一步培养结构化程序设计的思想,加深对高级系统语言基本语言要素和控制结构的理解,针对C+语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。此课程设计着眼于知识的运用,把平常学的知识运用到课程实践中来,本身就是考察我们知识运用能力。要求熟悉运用一些编程软件,对我们所学的理论知识进一步的深化。1.2 C+语言课程设计实现的要求使用C+语言编写一个基于控制台的简单程序,使学生掌握简单的程序设计技巧。同时设计一个简单的五子棋对弈系统,可以实现五子棋的基本功能,是一款娱乐用的小型程序。第二章 课程
2、设计任务内容五子棋对弈系统 设计一个五子棋系统程序,实现对五子棋进行运行。基本要求:五子棋是有两个人在一盘棋上进行对抗的竞技活动。在对局开始时,先由用户选择哪方开局,先开局一方将一枚棋子落在一点上,然后由另一方在对方棋周围交叉点上落子,如此轮流落子,知道某一方首先在棋盘的直线、横线或斜线上形成连续的五子则该方程就算获胜。此时算法结束,当有任何一方退时出,都可在算法中实现。 第三章 详细设计说明3.1 功能设计(1)由两个玩家分别下棋,当某一玩家五子相连,则赢。 (2)界面要求:初始状态显示棋盘,并显示两个玩家的操作键及初始玩家名称;游戏进行状态动态显示棋盘,不同玩家的棋子用不同符号显示,屏幕上
3、显示当前玩家号,结束时显示赢家名称。开始五子棋对弈系统流程图 白放下子判断该位置是否有棋找另一位 是白方下子 否判断是否重现开局跳出白棋获胜判断白方是否胜出 是否黑方下子 否 判断该位置是否有棋棋 否游戏结束找另一位 是否 黑方下子 跳出黑棋获胜判断黑方是否胜出 是判断该位是否图 3-1程序总体图白(黑)方下子 是白(黑)子在水平方向是否大于4 白(黑)方获胜否白(黑)子在垂直方向是否大于4是进入选择是否重新开局框白(黑)方获胜 否 是白(黑)子在正对角线方向是否大于4白(黑)方获胜 否 是白(黑)子在反对角线方向是否大于4白(黑)方获胜否黑(白)方下子图3-2算法流程图3.3 软件中实现各项
4、功能的函数与程序代码主要函数、结构体和链表Int a; /纪录坐标位置Int b; /纪录坐标位置Int player, /用于在【a】【b】处落子Int nameNN1; /存放棋盘数据 分别用1、2、0表示不同颜色子和空Int win(), /判断胜负void reste() /重置棋盘void chessboard()/下棋并绘棋盘类的使用:class Qipanpublic:int a;int b;int player; /用于在【a】【b】处落子int nameNN;/存放棋盘数据int win();/判断胜负void reset();/重置棋盘void chessboard();/
5、下棋并描绘棋盘本次程序设计主要设计了五个模块 当游戏初始化时,和每当落子消息触发时,都需要对棋盘进行重绘。这里用特殊符号“”“”“+”分别来描绘白子、黑子和棋盘空格。这个函数主要完成了以下工作: 装载棋盘二位数组并进行绘制。 根据棋盘数据绘制棋子。 绘制最后落子指示规矩。绘制棋牌;定义变量I,jI=0;i+iN退出循环jN退出循环判断:nameij=0NoYes输出“ ”NoYes “ + ” 判断:nameij=0输出NoYes输出“ ”输出“ ”完成扫描1行;输出换行符棋盘绘制结束 图3-32键盘操作控制模块 此模块主要用于处理与用户的交互过程。即完成落子判断过程。 此模块主要完成以下工作
6、: 从键盘读入控制信息(上下左右移动和落子)。 判断是否在棋盘内按落子键,和移动是否超出棋盘范围。 判断落子点是否已有棋子。键盘操作控制Input=/输入键为空格Input=D=dInput=AaInput=S=s =sInpu=Ww从键盘输入控制键;int intput=getch()判断:nameab=0如果bN-1如果b0如果a0NoYesa- -控制左移a- -;控制上移a+;控制下移此处有子,要求重新输入可以落子 若player=1 则赋值为2 反之亦然d+控制右移 图3-43判断胜负模块 这是游戏中一个极其重要的算法,用来判断当前棋盘的形势是哪一方获胜。五子棋的胜负,在于判断棋盘上
7、是否有一个点,从这个点开始的右、下、右下、左下四个方向是否有连续的五个同色棋子出现,如图:图 3-5判断胜负方向 这个算法是本系统里的win成员函数。需要它接受一个棋子颜色的参数,然后返回一个布尔值,这个值指示是否胜利。这里用一个数组int cout8来控制2种颜色4个方向的棋子情况。Cout1中i为单位表示白子个数,其中count1=j,表示横方向白子连续个数为j,cout3=j表示竖方向上,cout5=j,表示从左到右斜方向,cout7=j表示从右到左斜方向。双数表示黑子,同白子原理一样。1).横向判断流程图“” 定义变量:lint i,j,k/控制循环变量 int count8=0, 循
8、环控制列:J=0,j+ J=N J, J=N输出结果;win=output(count,win) I=5 K5 k=5 Name1+kj=1 Namei+k1=2 Count2+ Count3+图3-73).从左到右斜方向“” 循环控制 5:K=0;k+ K5 k=5Name1+kj-k=1 Namei+kj-k=2 Count4+ Count5+图3-84) .从右到左斜方向“/” 循环控制 5:K=0;k+ K5 k=5Name1+kj-k=1 Namei+kj-k=2 Count6+ Count7+图3-9图3-94.重置棋盘模块 在每局游戏开始的时候都需要调用这个函数reset()将棋
9、盘清空,也就是棋盘的初始化工作。在这个函数中,主要发生了这么几件事情: 将nameNN中每一个落子位都置为无子状态(0)。 将光标的初始位置,置于棋盘正中即a=N/2,b=N/2。 默认的先手顺序是黑子先手,置player=1。5.游戏结束模块 这一模块主要用于释放内存,用输出流语句输出结束信息,并控制循环退出程序。3.4 限制条件在windows xp . WIN7 下的下运行第四章 软件使用说明4.1 软件使用说明及出现的问题该程序可以实现对学生信息的录入和显示,安装Visual C+ 6.0中文版后,在工具栏“文件”中单击“新建”选项,单击“Win32 Console Applicati
10、on”,输入工程名“郭”,单击“A simple Application”。在“文件”中单击“新建”,选择“C+ Source file”输入文件名称“瑜”。开始输入程序,程序输入完成,单击“Compile”,待程序无误后,Build execute。4.2 运行结果软件使用结果1.进入游戏主界面图4-12.点击1开始游戏图4-23.继续点击1或2游戏过程中图4-34.判断胜负图4-45.在主界面中点击2游戏说明图4-56.在主界面中点击0退出游戏图4-6第五章 课程设计心得与体会课程设计是培养学生综合运用所学知识 ,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 综合 课程设计 五子棋 c+
限制150内