本人菜鸟,作业急需,高人请进,不胜感激~~~
使用C++语言,实现一个两人对战的三子连珠游戏,该游戏模仿五子连珠,有一方三子连成一线即获胜。游戏过程如下图。程序基本框架如下,请n你补充完成程序中关键函数的代码:
#include<iostream>
using namespace std;
char chBoard[3][3]; //二维数组定义3*3的棋盘
class Chess //棋子类
{
private:
char chSort; //棋子的类别"X"或"O"
int nWin; //赢棋的次数
int nLose; //输棋的次数
int nDraw; //平局的次数
public:
Chess(char chsort) //构造函数,决定一方棋子的类别,参数为‘X’或‘O’
{
chSort=chsort;
nWin=nLose=nDraw=0;
}
void Win(void); //赢棋
void Lose(void); //输棋
void Draw(void); //平局
void PlayTurn(void); //走1步棋
int Judge(); //判断是否连成一线,是则返回1,否则返回0
void PrintInfo(void); //输出输赢总体情况
};
void Chess::Win()
{
cout<<chSort<<"方获胜!";
nWin++;
}
void Chess::Lose()
{
cout<<chSort<<"方输了!";
nLose++;
}
void Chess::Draw()
{
cout<<"双方战成平局!";
nDraw++;
}
void Chess::PlayTurn()
{ //补充走棋函数
}
int Chess::Judge()
{ //补充判断棋子是否连成一线,若是返回1,若不是返回0
}
void Chess::PrintInfo()
{
cout<<chSort<<"方共计赢"<<nWin<<"局,输"<<nLose<<"局,平"<<nDraw<<"局。"<<endl;
}
void PrintRule() //输出游戏规则
{cout<<"欢迎使用三子连珠游戏!"<<endl;
cout<<"游戏规则:"<<endl;
cout<<"1.每1步输入要下棋子的格子的x,y坐标,按回车键;\n";
cout<<"2.有1方首先3个棋子连成一线即判获胜;\n";
cout<<"3.当棋子布满棋盘但仍无获胜方即为平局;\n";
cout<<"4.X方先行;\n";
cout<<"请按任意键开始下棋!\n";
}
void InitialBoard() //棋盘初始化,每个格子没有棋子,均为空
{
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
chBoard[i][j]=' ';
}
void PrintBoard() //输出棋盘
{cout<<endl;
cout<<" 1 2 3"<<endl
<<" ┌─┬─┬─┐"<<endl
<<"1│ "<<chBoard[0][0]<<"│ "<<chBoard[0][1]<<"│ "<<chBoard[0][2]<<"│"<<endl
<<" ├─┼─┼─┤"<<endl
<<"2│ "<<chBoard[1][0]<<"│ "<<chBoard[1][1]<<"│ "<<chBoard[1][2]<<"│"<<endl
<<" ├─┼─┼─┤"<<endl
<<"3│ "<<chBoard[2][0]<<"│ "<<chBoard[2][1]<<"│ "<<chBoard[2][2]<<"│"<<endl
<<" └─┴─┴─┘"<<endl
<<endl<<endl<<endl;
}
int main()
{ //补充主函数代码
}