欢迎来到天天文库
浏览记录
ID:5709444
大小:267.51 KB
页数:18页
时间:2017-12-23
《《算法设计与分析》课程设计论文-五子棋游戏》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、《算法设计与分析》课程设计论文五子棋游戏学生姓名:学生学号:200710802017院(系):计算机学院年级专业:2007级信息与计算科学指导教师:2010-6-1117目录摘要21问题的提出32问题的分析33程序及流程的设计43.1概要设计43.2模块及其功能介绍53.2.1.定义全局变量53.2.2.Main()主函数53.2.3.drawqp()画棋盘函数53.2.4.win()判断是否胜出函数53.2.5.Gameplay()双人对战函数53.2.6.Xandy()显示光标纵横坐标函数63.2.7.图形功能函数64调试分析7总结8参考文献9附录:源程序1017
2、摘要本问介绍的一个五子棋游戏的编写和设计,本游戏的依据就是下棋的双方各持黑白棋子,当某方在横、纵或对角方向连成五个棋子,则认为该玩家胜利,游戏结束。该程序用C语言编写,主要有C语言函数的调用(其中包括图形函数,判断函数等)和可视化编程,还有数组的应用,比如在该程序中就是用一个二维数组来表示棋盘。从程序表面看,这是一个二维平面图,所以数据用二维数组来表示,数组两个下标可以表示棋盘上的位置,数组元素的值代表棋格上的状态,共有三种情况,分别是0代表空格,1代表白棋,2代表黑棋。这样程序的主要工作是接收棋手按键操作,棋手1用Up、Down、Left、Right控制光标移动,回
3、车键表示落子。棋手2用W、S、A、D控制光标移动,空格键表示落子。一旦接收到回车键或空格键,说明棋手落子,先判断是否是有效位置,也就是说已经有棋子的位置不能重叠落子。落子成功后,马上判断以该位置为中心的八个方向:上、下、左、右、左上、左下、右上、右下是否有相同颜色的棋子连成五子,如果连成五子,则游戏结束,输出相应的信息。如果想退出游戏,可以按Esc键。关键词五子棋,C语言,二维数组,函数17五子棋游戏设计1问题的提出连珠(五子棋)是有两个人在一盘棋上进行对抗的竞技运动。在对局开始时,先由用户选择哪方先开局,先开局一方将一枚棋子落在一点上,然后由另一方在对方棋周围的交叉
4、点上落子,如此轮流落子,直到某一方首先在棋盘的直线、横线或斜线上形成连续的五子则该方就算获胜。此时,算法结束。当有任何一方想退出时,都可在算法中实现。2问题的分析为了要实现五子棋的人和人的对战,我们就首先要实现通过键盘对棋子的操作。因此我们必须要先定义一个键盘,并用二维数组来表示棋盘并把它用图形函数输出在屏幕上。因此我们可以定义结构体来表示一个完整的棋盘。为了让人可以移动光标来选择下棋位置,我们必须要定义函数来输出光标的位置(既横纵坐标)。我们实现了人和人的对战就要胜负,因此我分析要定义一个判断函数来判断谁胜谁负。要是我们在定义一个游戏开始函数来控制游戏的还是和一个游
5、戏结束函数来控制游戏的结束,那么我们这就是一个完整的游戏过程,则我们这个程序就基本实现了人和人的对战。173程序及流程的设计开始西安工业大学计算机科学与工程学院算法设计与分析课程设计题目:五子棋班级:050606人数:13人成员:陈玮高谦侯夕杰马涛宋文彬王伟周仁文邵文清赵瑞红李盈超尉建明陈建军张祥雄学号:时间:2008年元月16日目录1课程设计报告-------------------11.1问题描述----------------------11.2需求分析---------------------------11.3概要设计--------------------
6、---11.4详细设计-----------------------页码1.5调试分析---------------------页码2源程序---------------------页码3程序的说明文件-------------------页码4课设总结-----------------------页码1.课程设计报告1.1问题描述连珠(五子棋)是有两个人在一盘棋上进行对抗的竞技运动。在对局开始时,先由用户选择哪方先开局,先开局一方将一枚棋子落在一点上,然后由另一方在对方棋周围的交叉点上落子,如此轮流落子,直到某一方首先在棋盘的直线、横线或斜线上形成连续的五子则该方就
7、算获胜。此时,算法结束。当有任何一方想退出时,都可在算法中实现。1.2需求分析(1)、输出游戏规则并由用户决定是否遵守并开局。(2)、要求动态画出棋盘大小。(3)、画棋子并确定其颜色。(4)、玩家轮流下棋。(5)、判断键盘输入哪个键按规则执行操作(6)、判断谁先落棋。(7)判断赢家1.3概要设计流程图:YYNYNYNY1.4详细设计1.5调试分析运行结果:屏幕显示:Pleaseinputwhoisfirst:1or2当输入1时,白棋先走;当输入2时,红棋先走。屏幕显示:Pleaseinputthesizeofchessbox:从键盘输入t值,则棋盘大
此文档下载收益归作者所有