21xrx.com
2024-09-19 09:57:49 Thursday
登录
文章检索 我的文章 写文章
C++实现三子棋游戏代码
2023-07-05 15:03:04 深夜i     --     --
C++ 三子棋 游戏 实现 代码

三子棋是一种简单但充满趣味的棋类游戏,在这个游戏中,两位玩家轮流放置棋子,直到出现三个连续的同色棋子成一条直线或者棋盘放满时结束游戏。我将通过C++语言实现这个游戏,并为您提供完整的代码实现。

首先,我们需要规定游戏规则,包括棋盘大小、棋子的种类、棋子的落点规则等。在本次实现中,我们将采用3*3大小的棋盘,分别用字符‘X’和‘O’代表两个玩家的棋子。玩家轮流输入一个位置坐标,程序将在指定位置落下对应的棋子,当棋盘上出现三个连续的同色棋子时,游戏结束。

接下来,我们将实现程序的核心代码。我们需要创建一个类,实例化一个棋盘,定义放置棋子的函数并对每一步操作进行判断。

代码如下所示(注意:代码中包含了一些注释以便理解):

#include

using namespace std;

class game{

private:

  int board[3][3];//定义3*3棋盘数组

  char p1='X',p2='O';//两个玩家对应的棋子

  int check();  //判断游戏是否结束

public:

  game();//构造函数

  void display();//显示棋盘

  void place(int player,int row,int col);//落下棋子

  void play();//执行游戏

};

game::game(){//构造函数初始化棋盘

  for(int i=0;i<3;i++){

    for(int j=0;j<3;j++){

      board[i][j]=0;

    }

  }

}

void game::display(){//显示棋盘

  for(int i=0;i<3;i++){

    for(int j=0;j<3;j++){

      cout< <<"\t";

    }

    cout<

  }

}

void game::place(int player,int row,int col){//落下棋子

  if(board[row][col]!=0)//判断该位置是否有棋子

    cout<<"该位置已有棋子!"<

    return;

  if(player==1){

    board[row][col]=1;

  }

  else if(player==2){

    board[row][col]=2;

  }

}

int game::check(){//判断游戏是否结束

  //横向判断

  for(int i=0;i<3;i++){

    if(board[i][0]==board[i][1]&&board[i][1]==board[i][2]){

      if(board[i][0]==1)

        return 1;

      if(board[i][0]==2)

        return 2;

    }

  }

  //纵向判断

  for(int i=0;i<3;i++){

    if(board[0][i]==board[1][i]&&board[1][i]==board[2][i]){

      if(board[0][i]==1)

        return 1;

      if(board[0][i]==2)

        return 2;

    }

  }

  //对角线判断

  if(board[0][0]==board[1][1]&&board[1][1]==board[2][2]){

    if(board[0][0]==1)

      return 1;

    if(board[0][0]==2)

      return 2;

  }

  if(board[0][2]==board[1][1]&&board[1][1]==board[2][0]){

    if(board[0][2]==1)

      return 1;

    if(board[0][2]==2)

      return 2;

  }

  //判断是否平局

  int count=0;

  for(int i=0;i<3;i++){

    for(int j=0;j<3;j++){

      if(board[i][j]==0){

        count++;

      }

    }

  }

  if(count==0)

    return 0;

  return -1;

}

void game::play(){//执行游戏

  int player=1;//开始由玩家1先行

  int row,col;

  int win;

  while(1){

    cout<<"Player"< <<" puts the piece:"<

    cout<<"Row:";

    cin>>row;

    cout<<"Column:";

    cin>>col;

    place(player,row,col);//落下棋子

    display();//显示当前棋盘

    win=check();//判断游戏是否结束

    if(win!=-1){//游戏结束

      if(win==0)//平局

        cout<<"Draw!"<

      else//胜负已分

        cout<<"Player"< <<" wins!"<

      break;

    }

    //轮到另外一个玩家行动

    if(player==1)

      player=2;

    else if(player==2)

      player=1;

  }

}

int main(){

  game G;

  G.play();

  return 0;

}

在最后一行,我们调用main函数,并实例化了一个名为“G”的类对象来执行游戏。

总之,通过C++语言实现三子棋游戏是一个很好的实践,在这个过程中我们学习了如何固定棋盘、落子和判断游戏胜负等操作。希望本文对C++学习有所帮助!

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复