棋盘游戏程序C++课程设计报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

信息科学与技术学院程序设计基础课程设计报告题目名称:棋盘游戏程序学生姓名:罗靖学号:2014508013专业班级:14计科1班指导教师:郭理2015年6月17日目录1课程设计题目与要求....................................31.1设计题目.............................................31.2设计要求.............................................32总体设计..............................................33详细设计..............................................43.1数据结构设计及类设计..................................43.2模块设计.............................................44运行结果.............................................115课程设计总结.........................................13参考文献...............................................13附:源代码.............................................141课程设计题目与要求1.1设计题目编一棋盘游戏程序,人为一方,计算机为一方,人下时字符*将放在所指定的位置,而计算机下时字符@将放在某一空格位置。行、列、或两对角线有连续三个相同字符一方为胜方,也有平局情况。*@@***1.2设计要求要求能动态演示。2总体设计1.棋盘显示模块功能:将棋盘及棋子显示到屏幕。2.初始化模块功能:将游戏数据初始化为新棋局的数据。3.玩家下棋模块功能:玩家下一步棋。4.电脑下棋模块功能:电脑随机下一步棋。5.游戏规则声明模块功能:显示游戏规则。6.棋局输赢判断模块功能:判断棋局的输赢。3详细设计3.1数据结构设计及类设计classSystem//游戏系统{public:ints;//s记录走棋步数intflag;//flag为1时代表玩家走棋,为0时代表电脑走棋。intover;//over为1时代表游戏结束,为0时代表游戏尚未结束。chara[3][3];//存储棋盘3×3个格子里的内容voidprint();//显示棋盘;voidsm();//申明游戏规则voidinit();//游戏系统初始化voidPlayerDownChessman();//玩家走棋voidComputerDownChessman();//电脑走棋intresult();//棋局输赢判断};3.2模块设计main函数功能:运行整个游戏系统,实现下一盘三子棋的功能。入口参数:无。出口参数:无。System类中的成员函数:1.print成员函数功能:将棋盘及棋子显示到屏幕上。入口参数:无。出口参数:无。sys.init();sys.sm();sys.print();sys.s=9?开始sys.over?sys.flag?sys.PlayerDownChessman();sys.ComputerDownChessman();sys.flag=!sys.flag;system(pause);结束YYNNN2.sm成员函数功能:将棋盘游戏规则显示到屏幕上。入口参数:无。出口参数:无。3.init成员函数功能:初始化游戏系统数据。入口参数:无。出口参数:无。4.PlayerDownChessman成员函数功能:玩家下一步棋。入口参数:无。出口参数:无。5.ComputerDownChessman成员函数功能:电脑随机下一步棋。入口参数:无。出口参数:无。6.result成员函数功能:判断游戏输赢,玩家赢了返回1,电脑赢了返回2,不分胜负返回0。入口参数:无。出口参数:无。4运行结果游戏开始:显示了欢迎信息和游戏规则。最开始电脑和玩家都没有下棋,所以棋盘是空的。输入落子行列11,显示玩家落子,随后电脑落子(1,2).输入落子行列22,显示玩家落子,随后电脑落子(3,2).输入落子行列33,由于此时玩家斜向已经有3颗棋子连成一线,玩家获胜,显示恭喜你赢了!!!(平局和输棋情况与此类似,不一一列举了。)5课程设计总结课程设计很快就结束了,我感觉在课程设计过程中学习很有兴趣,过的很充实,可能就是课程设计与上课的差距吧!在课程设计中,我很好的学习了该如何使用调用函数,很大很长地方一个程序就被我分成了一个一个小的程序,不仅容易修改,更容易看的清楚并能很好的检查。在课程设计中,我们还能更好加强同学之间的交流能力。在课程设计中,老师几乎不参与其中,完全靠我们自己去做,给了我们很多自主空间。在课程设计中,我们很好的复习以前学习的知识,因为很多东西都是很基础的,这样巩固了我们学习的基础,毕竟大家也是一开始接触这方面嘛!我们不用像一开始那样,做个程序还得参考各种资料和其他人的程序。参考文献[1]C++面向对象程序设计教程(第3版).北京:清华大学出版社2009.6附:源代码//tick-tack-toeauthor:罗靖Date:2015/6/17#includewindows.h#includeiostream#includectime#includecstdlibusingnamespacestd;classSystem{public:ints;intflag;intover;chara[3][3];voidprint()//显示棋盘{cout┎──┯──┰──┐endl;cout┃a[0][0]┃a[0][1]┃a[0][2]┃endl;cout┠━━╇━━╇━━┫endl;cout┃a[1][0]┃a[1][1]┃a[1][2]┃endl;cout┠━━╇━━╇━━┫endl;cout┃a[2][0]┃a[2][1]┃a[2][2]┃endl;cout┗━━┻━━┻━━┛endl;}voidsm()//申明游戏规则{cout欢迎进入棋盘游戏!endl;coutˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉendl;cout规则:;cout人为一方,计算机为一方,人下时字符*将放在所指定的位置,而计算机下时字符@将放在某一空格位置。行、列、或两对角线有连续三个相同字符一方为胜方,也有平局情况。endl;coutˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉˉendl;}voidinit(){inti,j;SetConsoleTitle(棋盘游戏程序);srand(time(0));s=1,over=0,flag=1;for(i=0;i3;i++){for(j=0;j3;j++)a[i][j]='';}}voidPlayerDownChessman(){intm,n,t1,t2;step1:cout请输入行和列:;cinmn;if(a[m-1][n-1]=='*'||a[m-1][n-1]=='@'){cout输入有误,请重新输入!endl;gotostep1;}else{a[m-1][n-1]='*';++s;cout玩家落子:\n;print();if(result()==1){over=1;cout恭喜你赢了!!!endl;}elseif(result()==3){over=1;cout打成平局!!!endl;}}}voidComputerDownChessman(){intm,n,t1,t2;step2:t1=(rand()%3);t2=(rand()%3);if(a[t1][t2]=='*'||a[t1][t2]=='@'){gotostep2;}else{a[t1][t2]='@';cout电脑落子:\n;print();++s;if(result()==2){over=1;cout大侠你输了,欢迎继续挑战。endl;}elseif(result()==3){over=1;cout打成平局!!!endl;}}}intresult(){if(a[0][0]=='*'&&a[1][1]=='*'&&a[2][2]=='*'||a[2][0]=='*'&&a[1][1]=='*'&&a[0][2]=='*'||a[0][0]=='*'&&a[0][1]=='*'&&a[0][2]=='*'||a[1][0]=='*'&&a[1][1]=='*'&&a[1][2]=='*'||a[2][0]=='*'&&a[2][1]=='*'&&a[2][2]=='*'||a[0][0]=='*'&&a[1][0]=='*'&&a[2][0]=='*'||a[0][1]=='*'&a[1][1]=='*'&&a[2][1]=='*'||a[0][2]=='*'&&a[1][2]=='*'&&a[2][2]=='*'){return1;}if(a[0][0]=='@'&&a[1][1]=='@'&&a[2][2]=='@'||a[2][0]=='@'&&a[1][1]=='@'&&a[0][2]=='@'||a[0][0]=='@'&&a[0][1]=='@'&&a[0][2]=='@'||a[1][0]=='@'&&a[1][1]=='@'&&a[1][2]=='@'||a[2][0]=='@'&&a[2][1]=='@'&&a[2][2]=='@'||a[0][0]=='@'&&a[1][0]=='@'&&a[2][0]=='@'||a[0][1]=='@'&a[1][1]=='@'&&a[2][1]=='@'||a[0][2]=='@'&&a[1][2]=='@'&&a[2][2]=='@'){return2;}if(s==9)return3;return0;}};intmain(){Systemsys;sys.init();sys.sm();sys.print();while(sys.s=9){if(sys.over)break;if(sys.flag)sys.PlayerDownChessman();elsesys.ComputerDownChessman();sys.flag=!sys.flag;}system(pause);}

1 / 19
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功