• 大小: 12KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-05-09
  • 语言: C/C++
  • 标签: 三子连珠  

资源简介

编一棋盘游戏程序,可以选择人机对战和双人对战两种游戏模式,而人机模式下可以选择三种电脑等级,即简单的电脑、中等的电脑和令人发狂的电脑,电脑智能化程度随等级提高而提高。下棋双方分别以字符X和字符O为棋子。游戏界面显示游戏规则,能动态显示下棋过程,下棋结束退出游戏时显示双方输赢情况。增添功能键,使之实现在任何时候退出程序和悔棋的功能。在输入棋子坐标及选择开关时要有较好的容错性,出错时能给用户以友好提示。

资源截图

代码片段和文件信息



/*******************************************三子连珠***********************************/
#include
#include
#include
#include
#include
using namespace std;

char k(‘a‘);                        //全局变量,选择电脑等级
char choice(‘1‘);                   //全局变量,选择下棋模式

class CGobang                       //棋子类
{
private:
char chSort;                    //棋子的类别
int nWin;                       //赢棋的次数
int nLose;                      //输棋的次数
static int nDraw;               //平局的次数
static char achBoard[3][3];     //棋盘
static int nSize;               //棋盘的尺寸nSize*nsize
static int row[10];             //记录所下行顺序
static int col[10];             //记录所下列顺序
public:
static int nStep;               //记录下棋步数
static int nBack;               //记录悔棋步数
CGobang(char chsort)            //构造函数,决定一方棋子的类别
{
chSort=chsort;
nWin=nLose=nDraw=0;
}
void PlayTurn(void);            //走一步棋
int AIplayTurn(void);           //智能化控制
int JudgeRow(char);             //判断横行是否已有二子
int JudgeCol(char);             //判断纵行是否已有二子
int JudgeDiag(char);            //判断对角是否已有二子
int Judge(void);                    //判断是否连成一线,是则返回1,否则返回0
void Win(void);                 //赢棋
void Lose(void);                    //输棋
static void Draw(void);         //平局
void PrintInfo(void);           //输出总体情况
static void PrintBoard(void);   //输出棋盘
static int GetFull(void);       //判断棋盘是否已布满棋子
static void InitialBoard(void); //初始化棋盘
int getRandInt(intint);        //获取随机数

};

char CGobang::achBoard[3][3];
int CGobang::nSize=3;
int CGobang::nDraw=0;
int CGobang::nStep=0;
int CGobang::nBack=0;
int CGobang::row[10];
int CGobang::col[10];

void PrintRule(void)               //打印下棋规则
{
cout<<“\n\t\t^_^欢迎使用三子连珠游戏!“< cout<<“*-----------------------------------------------------------------*“< cout<<“\t游戏规则:“< cout<<“\t1. 每1步输入要下棋子的格子的xy坐标,按Enter键\n“;
cout<<“\t2. 有1方首先3个棋子连成一线即判获胜\n“;
cout<<“\t3. 当棋子布满棋盘但仍无获胜方即为平局\n“;
cout<<“\t4. 按0键可退出!!\n“;
cout<<“\t5. 按9键可悔一步棋!!\n“;
cout<<“\t6. X方先行\n“;
cout<<“*-----------------------------------------------------------------*“<}

void Clean(void)//清屏 
{
system(“cls“);
PrintRule();
}

void PrintStage()//显示电脑等级及双人模式
{
switch(choice)
{
case ‘1‘:
switch(k)
{
    case ‘a‘:
  cout<<“\n\t\t     简单的电脑\n“;
  break;
    case ‘b‘:
  cout<<“\n\t\t     中等的电脑\n“;
  break;
    case ‘c‘:
  cout<<“\n\t\t   令人发狂的电脑\n“;
  break;
}
break;
case ‘2‘:
cout<<“\n\t\t     双人对弈\n“;
break;
}
}
     
void CGobang::Draw()//平局
{
cout<<“\n\n\t\t平局!\n\n“;
nDraw++;
}

void CGobang::InitialBoard()//初始化棋盘
{
for(int i=0;i for(int j=0;j achBoard[i][j]=‘ ‘;
}

void CGobang::PrintBoard()//输出棋盘
{
cout< cout<<“\t\t     1   2   3 “<    cout<<“\t\t   |---|---|---|“< cout<<“\t\t 1 | “<

评论

共有 条评论