C++课程设计实验报井字游戏

  • 格式:doc
  • 大小:404.90 KB
  • 文档页数:10

下载文档原格式

  / 10
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
int b[10];
inFra Baidu bibliotek n=0;//条件变量
class qi//声明棋类
{
public:
void output();
void conditions();
void qizi1();
void qizi2();
int pe;
};
void qi::output()
{
system("cls");//清屏
printf("**********************科技大学**************************\n");
printf("┃┃\n");
printf(" 7┃8┃9 \n");
printf("┃┃\n");
printf("**************测控1202班王涛王凡宇制作*******************\n");
printf(" %s┃%s┃%s \n",a[b[1]], a[b[2]],a[b[3]]);
测控技术与仪器
2012级 C++课程设计实验报告
井字游戏
班级:
学号:

日期:2014.1.8
一、课程设计目的
二、课程设计容与实现的功能
1、课程设计容
2、设计思想
3、实现的功能
三、系统的设计
四、用户手册
五、算法流程图
六、源程序
七、参考文献
一、课程设计目的
进行C++面向对象程序设计课程设计主要是在学习C++这门面向对象语言的基础上,在完成C++面向对象程序设计各部分实验的基础上,掌握一种可视化编程的方法,并通过实践加深对可视化编程与C++面向对象程序设计语言特点的认识与理解。同时,可以提高运用C++编程语言解决实际问题的能力;锻炼实际的编程能力、创新能力及团队组织、协作开发软件的能力;还能提高调查研究、查阅技术文献、资料以及编写软件设计文档的能力。理解的Visual C++ 6.0运行过程,进一步的了解C++是如何面向对象的程序设计,以及在我们平常使用的一些软件的一些功能怎么实现的算法,以及一些基本的菜单如:窗口菜单、编辑菜单、工具菜单、还有文件菜单都是如何实现的。在这次课程设计中我主要负责的模块是页面的美化和游戏难度、判断游戏结果的函数以及游戏模式等函数。
printf("┃┃\n");
printf("━━━╋━━━╋━━━\n");
printf("┃┃\n");
printf(" %s┃%s┃%s \n",a[b[4]],a[b[5]],a[b[6]]);
printf("┃┃\n");
printf("━━━╋━━━╋━━━\n");
printf("┃┃\n");
四、用户手册
1、使用平台是:Visual C++
2、点击运行,则出现这样的界面:
点击开始按钮,弹出对话框提示游戏开始:
游戏结束后弹出对话框显示游戏结果
如果上面有棋子则需重下
五.算法流程图
六、源程序:
#include<iostream>
using namespace std ;
const char a[3][4]={" ","○","×"};
printf(" %s┃%s┃%s \n",a[b[7]],a[b[8]],a[b[9]]);
printf("┃┃\n");
}
void qi::conditions()
{
if((b[1]==1 && b[2]==1 && b[3]==1) || (b[4]==1 && b[5]==1 && b[6]==1) || (b[7]==1 && b[8]==1 && b[9]==1) || (b[1]==1 && b[4]==1 && b[7]==1) || (b[2]==1 && b[5]==1 && b[8]==1) || (b[3]==1 && b[6]==1 && b[9]==1) || (b[1]==1 && b[5]==1 && b[9]==1) || (b[3]==1 && b[5]==1 && b[7]==1))
{
n=1;//"玩家1"赢//如果三个连续的井为1或对角线为1,即就是n=1,则玩家1赢。
}
else
if((b[1]==2 && b[2]==2 && b[3]==2) || (b[4]==2 && b[5]==2 && b[6]==2) || (b[7]==2 && b[8]==2 && b[9]==2) || (b[1]==2 && b[4]==2 && b[7]==2) || (b[2]==2 && b[5]==2 && b[8]==2) || (b[3]==2 && b[6]==2 && b[9]==2) || (b[1]==2 && b[5]==2 && b[9]==2) || (b[3]==2 && b[5]==2 && b[7]==2))
printf("在玩家对战中○代表玩家1×代表玩家2 \n");
printf(" 1┃2┃3 \n");
printf("┃┃\n");
printf("━━━╋━━━╋━━━\n");
printf("┃┃\n");
printf(" 4┃5┃6 \n");
printf("┃┃\n");
printf("━━━╋━━━╋━━━\n");
三、系统的设计
1.程序总体结构:先输出3*3的棋盘格式,然后提示玩家输入棋子位置,接着就是判断该位置是否已经有棋子,如果有,则提示玩家再输入棋子的位置,否则,判断玩家是否最后再输出最后棋盘的结果。
2.界面设计 :界面背景是黑色的3*3的棋盘格式,玩家可以通过输入区域来表示下在何处,如果上面有棋子则需重下,如果两方不能赢则为平局则棋盘上对应的位置就会显示该玩家的代表符号,每走一步,就会显示新的棋盘。
二、课程设计容与实现的功能
1、课程设计容
开发一个简单的可以开发人的智力的小游戏。游戏的界面类一个“井”字,故取名为“井字游戏”。本游戏界面被分为九个方格,每个方格可以放一个“棋子”,然后游戏开始,双方可以在任何一个格子放自己的棋子。游戏规则非常简单:双方哪一个先使自己的三个棋子连成一条线(可以是横向的,纵向的,或是斜向的)就算赢,如果双方在九个格子都占满后均没有完成就算平局,点击开始下一局游戏。
2、设计思想
井字棋是一个流传已久的传统游戏。游戏由两个人轮流来下,分别用“X”和“O”来代替自身的棋子。棋盘分9个格,双方可以在轮到自己下的时候,可以用棋子占领其中一个空的格子。
3、实现的功能
(1)简单的开始玩家对战和退出程序的实现。
(5)判断游戏输赢的实现:游戏结束后,系统自动弹出对话框显示游戏结果。