21xrx.com
2024-12-27 21:41:30 Friday
登录
文章检索 我的文章 写文章
分享:五子棋C++语言最简单代码
2023-07-06 20:56:24 深夜i     --     --
五子棋 C++ 代码 简单 分享

五子棋是一种非常受欢迎的棋类游戏,它的规则简单易懂,容易上手,同时又具备一定的策略性和趣味性。本文将分享一份C++语言编写的五子棋最简单代码。

首先,我们需要定义一个数组来表示棋盘,如下所示:

int chessboard[16][16];

其中,16表示棋盘的边长,棋盘上每个位置的值表示该位置的状态,0表示未落子,1表示黑子,2表示白子。

接下来,我们可以定义一个函数来输出棋盘,代码如下:

void printChessboard()

{

  cout << " ";

  for(int i=0; i<16; i++)

    cout << i << " ";

  cout << endl;

  for(int i=0; i<16; i++)

  {

    cout << i << " ";

    for(int j=0; j<16; j++)

    {

      if(chessboard[i][j] == 0)

      {

        cout << "+ ";

      }

      else if(chessboard[i][j] == 1)

        cout << "X ";

      else if(chessboard[i][j] == 2)

        cout << "O ";

    }

    cout << endl;

  }

}

该函数主要是打印棋盘,并将棋盘上的状态转换为显示的符号。

接下来,我们需要定义一个函数来判断游戏是否结束。我们知道,五子棋游戏中,如果某一方在横、竖、斜方向上连续五个子,就获得胜利。因此,我们需要编写一个函数来实现这个判断:

bool isGameOver(int x, int y, int color)

{

  int count = 0;

  //判断横向是否有相同颜色的5个棋子

  for(int i=x-4; i<=x+4; i++)

  {

    if(i<0 || i>15)

      continue;

    if(chessboard[i][y] == color)

    {

      count++;

      if(count == 5)

        return true;

    }

    else

      count = 0;

  }

  //判断竖向是否有相同颜色的5个棋子

  for(int j=y-4; j<=y+4; j++)

  {

    if(j<0 || j>15)

      continue;

    if(chessboard[x][j] == color)

    {

      count++;

      if(count == 5)

        return true;

    }

    else

      count = 0;

  }

  //判断正斜向是否有相同颜色的5个棋子

  for(int i=x-4, j=y-4; i<=x+4 && j<=y+4; i++, j++)

  {

    if(i<0 || i>15 || j<0 || j>15)

      continue;

    if(chessboard[i][j] == color)

    {

      count++;

      if(count == 5)

        return true;

    }

    else

      count = 0;

  }

  //判断反斜向是否有相同颜色的5个棋子

  for(int i=x-4, j=y+4; i<=x+4 && j>=y-4; i++, j--)

  {

    if(i<0 || i>15 || j<0 || j>15)

      continue;

    if(chessboard[i][j] == color)

    {

      count++;

      if(count == 5)

        return true;

    }

    else

      count = 0;

  }

  return false;

}

该函数主要是判断指定位置的棋子颜色是否和横、竖、斜方向上的连续五个棋子的颜色一致。

最后,我们需要编写主函数来实现游戏的流程:

int main()

{

  int x, y;

  int color = 1;

  cout << "欢迎来到五子棋游戏!" << endl;

  while(true)

  {

    printChessboard();

    cout << "玩家" << color << "落子,请输入位置坐标(x y):" << endl;

    cin >> x >> y;

    if(chessboard[x][y] != 0)

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

    chessboard[x][y] = color;

    if(isGameOver(x, y, color))

      cout << "玩家" << color << "获得胜利!" << endl;

      break;

    color = (color == 1 ? 2 : 1);

  }

  return 0;

}

在主函数中,我们将先输出欢迎信息,然后通过循环来持续获取玩家的棋子位置,落子并判断游戏是否结束,如果游戏结束就输出获胜信息,然后结束游戏。

以上就是五子棋C++语言最简单代码的全部内容,你可以参考该代码来编写自己的五子棋游戏。

  
  

评论区

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