文档介绍:目录
1 题目内容及设计要求 1
2 总体设计 1
总体功能框图 1
类的设计说明 2
主要算法流程图 2
3 程序清单及注释 4
4 运行结果与分析 13
5 总结 14
6 参考文献 15
题目内容及设计要求
填XO游戏程序
内容及要求:
游戏规则和胜利条件:
选择难度1:(1)两个斜对角之一都为X或O,则玩家胜。(2)一横行都为X或O则玩家胜。(3)一竖行都为X或O则玩家胜。
选择难度2:两个斜对角之一都为X或O,则玩家胜。
选择难度3:两个斜对角都为X或O,则玩家胜。
棋盘共有5行5列:
输入必须为一个两位整数,如11,代表棋盘的第一行第一列,输完后按回车键;
玩者下一步X或O,计算机也自动下一步X或O。
2 总体设计
总体功能框图
总体功能框图如下。
填XO游戏程序
欢迎信息提示
选择游戏难度
棋子位置输入
棋子位置判断
重新绘制棋盘
胜负判断
胜负提示
图 2-1 填XO游戏程序的总体功能框
类的设计说明
Class类的说明如下:
class chess
char cboard[6][6] ;
char cboard[6][6];
chess()
void point(int isx , int isy , char cxoo )
int checkpoint(int isx , int isy )
void drawchess()
void drawit(int jj)
int check(chess &ab , int nandu)
图2-2 类chass的说明图
board[6][6] 为一个char类型的二维数组。
Chess() 为构造函数,默认初始建立一个空的棋盘。
void point(int isx , int isy , char cxoo ) 把数组中对应位置修改为‘o’或‘x’。
int checkpoint(int isx , int isy ) 检查数组对应位置是否被填满。
void drawchess() 清屏后重新绘制棋盘。
void drawit(int jj) 不清屏重新绘制棋盘 。
int check(chess &ab , int nandu) 判断胜利与否。
. 2 其余部分:
int getrandint(int min , int max) 随机获得一个数。
int main () 主函数。
主要算法流程图
. 1 主要算法流程图如下:
判断该位置是否有棋子
开始
输入
位置
是
否
请重新输入
继续输入
根据下棋位置修改相应成员函数
判断是否符合胜利条件
否
是
return 1
return 0
结束
图2-3 主要算法流程图
程序清单及注释
#include<iostream>
#include<cstdlib>
using namespace std;
class chess
{
char cboard[6][6];
public:
chess()
{
for(int i = 1 ; i<6 ; i++)
{
for(int j =1 ; j<6 ; j++)
{
cboard[i][j]=' ';
}
}
}
void point(int isx , int isy , char cxoo )
{
int px,py;
char name;
px=isx ;
py=isy ;
name=cxoo;
cboard[px][py]=name;
}
int checkpoint(int isx , int isy )
{
int px,py;
px=isx ;
py=isy ;
if(cboard[px][py]=='o'||cboard[px][py]=='x')
{
return 1;
}
else
{
return 0;
}
}
void drawchess()
{
system("cls");
for(int i=1 ; i<6; i++)
{
for(int j=1 ; j<6 ; j++)
{
cout<<cboard[i][j]<<"|" ;
}
cout<<endl;
}
}
void drawit(int jj)
{
for(int i=1 ; i<6; i++)
{
for(int j=1 ;