算法设计与分析课程设计报告五子棋doc.docx
- 文档编号:2025702
- 上传时间:2022-10-26
- 格式:DOCX
- 页数:4
- 大小:18.26KB
算法设计与分析课程设计报告五子棋doc.docx
《算法设计与分析课程设计报告五子棋doc.docx》由会员分享,可在线阅读,更多相关《算法设计与分析课程设计报告五子棋doc.docx(4页珍藏版)》请在冰豆网上搜索。
算法设计与分析课程设计报告五子棋doc
算法设计与分析课程设计报告(五子棋)
西安工业大学计算机科学与工程学院算法设计与分析课程设计题目五子棋班级050606人数13人成员陈玮高谦侯夕杰马涛宋文彬王伟周仁文邵文清赵瑞红李盈超尉建明陈建军张祥雄学号050606102050606105050606108050606114050606117050606120050606126050606129050606132040609111040606123050606101040610127时间2008年元月16日班级050606学号题目五子棋完成时间1月16日指导教师杨国梁、陈芳小组排名邵文清,赵瑞红,李盈超,尉建明,周仁文,侯夕杰,陈建军,张祥雄陈玮,宋文彬,高谦,马涛,王伟小组成绩个人得分第1名邵文清赵瑞红贡献细节设计,完成voiddraw_box;voidchange;voidjudgekey的设计并完成实验报告第2名李盈超尉建明贡献主要负责程序的整体规划,完成主函数的设及相关变量的定义,完成voidattentoin的设计第3名周仁文侯夕杰贡献完成voidjudgewhointx,inty的设计第4名陈建军张祥雄贡献完成voiddraw_cicleintx,inty,intcolor的设计第5名陈玮宋文彬贡献完成intjudgeresultintx,inty的设计第6名高谦,马涛王伟贡献调试并运行程序备注考核标准1.个人文档资料402.软件验收403.考勤20目录1课程设计报告-------------------31.1问题描述----------------------31.2需求分析---------------------------31.3概要设计-----------------------31.4详细设计-----------------------51.5调试分析---------------------62源程序---------------------63程序的说明文件-------------------134课设总结-----------------------131.课程设计报告1.1问题描述连珠五子棋是有两个人在一盘棋上进行对抗的竞技运动。
在对局开始时,先由用户选择哪方先开局,先开局一方将一枚棋子落在一点上,然后由另一方在对方棋周围的交叉点上落子,如此轮流落子,直到某一方首先在棋盘的直线、横线或斜线上形成连续的五子则该方就算获胜。
此时,算法结束。
当有任何一方想退出时,都可在算法中实现。
1.2需求分析
(1)、输出游戏规则并由用户决定是否遵守并开局。
(2)、要求动态画出棋盘大小。
(3)、画棋子并确定其颜色。
(4)、玩家轮流下棋。
(5)、判断键盘输入哪个键按规则执行操作(6)、判断谁先落棋。
(7)判断赢家开始西安工业大学计算机科学与工程学院算法设计与分析课程设计题目五子棋班级050606人数13人成员陈玮高谦侯夕杰马涛宋文彬王伟周仁文邵文清赵瑞红李盈超尉建明陈建军张祥雄学号时间2008年元月16日目录1课程设计报告-------------------11.1问题描述----------------------11.2需求分析---------------------------11.3概要设计-----------------------11.4详细设计-----------------------页码1.5调试分析---------------------页码2源程序---------------------页码3程序的说明文件-------------------页码4课设总结-----------------------页码1.课程设计报告1.1问题描述连珠五子棋是有两个人在一盘棋上进行对抗的竞技运动。
在对局开始时,先由用户选择哪方先开局,先开局一方将一枚棋子落在一点上,然后由另一方在对方棋周围的交叉点上落子,如此轮流落子,直到某一方首先在棋盘的直线、横线或斜线上形成连续的五子则该方就算获胜。
此时,算法结束。
当有任何一方想退出时,都可在算法中实现。
1.2需求分析
(1)、输出游戏规则并由用户决定是否遵守并开局。
(2)、要求动态画出棋盘大小。
(3)、画棋子并确定其颜色。
(4)、玩家轮流下棋。
(5)、判断键盘输入哪个键按规则执行操作(6)、判断谁先落棋。
(7)判断赢家1.3概要设计流程图YYNYNYNY1.4详细设计1.5调试分析运行结果屏幕显示Pleaseinputwhoisfirst1or2当输入1时,白棋先走;当输入2时,红棋先走。
屏幕显示Pleaseinputthesizeofchessbox从键盘输入t值,则棋盘大小为t*t型。
屏幕显示Left,Right,Up,DownKEYtomove,Spacetoput,ESC-quit及棋盘,棋子,用上下左右键控制棋子向,用空格键确定棋子的落点。
当白棋赢时,显示TheWhiteWin当红棋赢时,显示TheRedWin遇到的问题算法改进思想将棋盘由原先的固定大小改进为可动态变化,由原来固定的白棋先走改进为让用户可以选择哪方先落子。
2源程序includeincludeincludeincludeincludedefineLEFT0x4b00defineRIGHT0x4d00defineDOWN0x5000defineUP0x4800defineESC0x011bdefineSPACE0x3920defineBILI20defineJZ4defineJS3defineN19intbox[N][N],s;/*落子点*/intstep_x,step_y;intkey;intflag,i,j;voiddraw_box;voiddraw_cicleintx,inty,intcolor;voidchange;voidjudgewhointx,inty;voidjudgekey;intjudgeresultintx,inty;voidattentoin;voidattentoin/*游戏规则*/{charch;printf“Playattentoins\n\n“;printf“1.PressLeft,Right,Up,DownKeytomovePiece\n\n“;printf“2.PressSpacetoplacethePiece\n\n“;printf“3.DONOTpressSpaceoutsideofthedraw_box\n\n“;printf“DoyouaccepttheabovePlayingattentoins[Y/Other]“;while1{chgetche;ifchY||chybreak;elseexit0;}printf“\n\nwhatsizeofthedraw_box“;scanf“d“,printf“\n\nwhoisthefrist1or2“;while1{scanf“d“,ifflag1elsebreak;}}voiddraw_box/*画出棋盘*/{intx1,x2,y1,y2;setbkcolorLIGHTBLUE;setcolorYELLOW;gotoxy7,2;printf“Left,Right,Up,DownKEYtomove,Spacetoput,ESC-quit.“;forx11,y11,y2s;x11;i--ifbox[i][j]0{draw_ciclestep_x,step_y,LIGHTBLUE;break;}ifisbreak;else{foristep_x1,jstep_y;isbreak;step_xi;judgewhostep_x,step_y;break;}caseDOWNifstep_y1sbreak;else{foristep_x,jstep_y1;jsbreak;step_yj;judgewhostep_x,step_y;break;}caseUPifstep_y-11;j--ifbox[i][j]0{draw_ciclestep_x,step_y,LIGHTBLUE;break;}ifj1j--/*水平向左数*/{ifbox[j][k]flagn;elsebreak;}forjx,ky;j5return1;n0;forjx,ky;k1;k--/*垂直向上数*/{ifbox[j][k]flagn;elsebreak;}forjx,ky;k5return1;n0;forjx,ky;j1,k1;j--,k--/*向左上方数*/{ifbox[j][k]flagn;elsebreak;}forjx,ky;j5return1;n0;forjx,ky;j1;j,k--/*向右上方数*/{ifbox[j][k]flagn;elsebreak;}forjx,ky;j1,k5return1;return0;}}voidmain{intgdriverVGA,gmodeVGAHI;clrscr;attentoin;initgraphdraw_box;do{step_x0,step_y0;judgewhostep_x-1,step_y-1;do{whilebioskey10;keybioskey0;judgekey;}whilekeySPACE}whilekeyESC;closegraph;}_3程序的说明文件本程序中包含一个主函数和七个子函数,它们的函数名及功能分别如下voiddraw_box;画棋盘voiddraw_cicleintx,inty,intcolor;画棋子并确定其颜色voidchange;改变玩家voidjudgewhointx,inty;判断谁落棋voidjudgekey;判断键盘输入哪个键按规则执行操作intjudgeresultintx,inty;判断赢家voidattentoin;显示游戏规则4课设总结从1月14日开始,我们进行了为期一周的算法课程设计。
通过这次课程设计,我们拓宽了知识面,锻炼了能力,综合素质得到较大提高。
本次课程设计,使我们对从五子棋设计方案到设计的基本过程的设计方法、步骤、思路、有一定的了解与认识。
在课程设计过程中,我们基本能按照规定的程序进行,先针对五子棋的设计收集、调查有关资料,其间,同组成员之间进行几次方案的讨论、修改,再讨论、再修改,最后定案。
设计方案确定后,又在老师指导下进行扩充详细设计,最终用c语言实现了可视化的五子棋算法。
整个过程周密有序,对我们按时高质完成课程设计非常有利
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 设计 分析 课程设计 报告 五子棋 doc
![提示](https://static.bdocx.com/images/bang_tan.gif)