收藏 分享(赏)

《C++语言程序设计》课程设计报告--五子棋.doc

上传人:精品资料 文档编号:8364532 上传时间:2019-06-22 格式:DOC 页数:9 大小:119.50KB
下载 相关 举报
《C++语言程序设计》课程设计报告--五子棋.doc_第1页
第1页 / 共9页
《C++语言程序设计》课程设计报告--五子棋.doc_第2页
第2页 / 共9页
《C++语言程序设计》课程设计报告--五子棋.doc_第3页
第3页 / 共9页
《C++语言程序设计》课程设计报告--五子棋.doc_第4页
第4页 / 共9页
《C++语言程序设计》课程设计报告--五子棋.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、C+语言程序设计课程设计报告课 程: C+语言程序设计 题 目: 五子棋 年 级: 专 业: 学 号: 姓 名: 指导教师: 江苏师范大学数学与统计学院【摘要】五子棋是我国古代的、传统的黑白棋种之一。五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。本游戏是以 C+语言作为开发工具,运行环境 Visual C+ 6.0,通过构造函数绘制棋谱,以及落子函数、判断函数,实现双 人 对 弈 的 功 能 。【关键词】五子棋、游戏、人人对战、C+【引言】五子棋是起源于中国古代的传统黑白棋种之一。现代五子棋日文称之为“連珠” ,英译为“Renju” ,英文称之为“Gobang”或“FIR”

2、 (Five in a Row的缩写) ,亦有“连五子” 、 “五子连” 、 “串珠” 、 “五目” 、 “五目碰” 、 “五格”等多种称谓。 五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。五子棋既有现代休闲的明显特征“短、平、快” ,又有古典哲学的高深学问“阴阳易理” ;它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛;它的棋文化源渊流长,具有东方的神秘和西方的直观;既有“场”的概念,亦有“点”的连接。它是中西文化的交流点,是古今哲理的结晶。本游戏是以 C+语言作为开发工具,运行环境 Visual C+ 6.0,通过构造函数绘制棋谱,以及落子

3、函数、判断函数,实现双 人 对 弈 的 功 能 。【设计思路】第一步:绘制棋谱第二步:对战双方落子第三步:判断是否有五子连珠第四步:重复第一、二、三步直至出现五子连珠【设计过程】通过构造函数实现棋盘,编写落子函数实现玩家落子,通过判断函数判断是否有五子连珠的结果。【设计结果】图1-1初始画面图1-2双方落子图1-3白棋胜出【设计总结】本五子棋游戏是一种简单的小程序,没有图形界面以及复杂的人机、网络对战,但即便如此我们也可以在娱乐中感受到 C+编程的奇妙之处。附录:#include #include using namespace std;class MyGobangpublic: MyGoba

4、ng();void printBoard();void getPointXY();void getPointMN();bool isFirstWin();bool isSecondWin();private: int x,y,m,n,num_xy,num_mn;char board2020;MyGobang:MyGobang()/构造函数实现棋谱num_xy=0;num_mn=0;for(int i=0;ixy;cout20|y20)coutxy;coutxy; cout20|y20)coutxy; cout=x-5;i-)if(boardy-1i=o) num1+;else break;/这

5、里是判断 Y 坐标向下的 0连续数for(j=y;j=0j-)if(boardjx-1=o) num2+;else break;/这里是判断右斜上0连续数for(i=x,j=y;i=0i-,j-)if(boardji=o) num3+;else break;/这里是判断左斜上0连续数for(i=x-2,j=y;i=0i+,j-)if(boardji=o) num4+;else break;if(num1=5|num2=5|num3=5|num4=5) return 1;/ 这里总结 X,Y ,左斜,右斜 的0连续数,有等于五的就直接返回 1 否则返回 0else return 0;void M

6、yGobang:getPointMN()/第二人落子函数coutmn;cout20|n20)coutmn;coutmn;cout20|n20)coutmn; cout=m-5;i-)if(boardn-1i=x) num1+;else break;for(j=n;j=0j-)if(boardjm-1=x) num2+;else break;for(i=m,j=n;i=0i-,j-)if(boardji=x) num3+;else break;for(i=m-2,j=n;i=0i+,j-)if(boardji=x) num4+;else break;if(num1=5|num2=5|num3=5

7、|num4=5) return 1;else return 0;int main()cout“*五子棋*“endl;MyGobang gobang; gobang.printBoard ();/申明 MYGobang 类的一个对象for(int i=0;i+)gobang.getPointXY();/调用这个函数gobang.printBoard ();/调用绘制棋盘if(gobang.isFirstWin ()!=0)/调用第一人是否赢的函数cout“*白棋胜利*“endl;break;gobang.getPointMN();gobang.printBoard ();if(gobang.isSecondWin ()!=0)cout“*黑棋胜利*“endl;break;system(“pause“);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报