21xrx.com
2024-06-03 04:58:05 Monday
登录
文章检索 我的文章 写文章
C++五子棋游戏代码及解释
2023-06-28 18:30:44 深夜i     --     --
C++ 五子棋 游戏代码 解释

随着计算机的普及,人们对于电子游戏的需求越来越高。而五子棋作为一款历史悠久、简单易学、有趣度极高的游戏,在电子游戏领域也有着广泛的应用。因此,学习如何使用C++语言来实现五子棋游戏是非常有必要的。

下面是C++五子棋游戏的主要代码及解释:


#include <iostream>

using namespace std;

int board[15][15] = {0}; // 存储棋盘的数组,0表示没有落子,1表示黑子,2表示白子

bool success = false;   // 用于标记是否获胜

// 判断是否获胜的函数

void check_win(int color, int x, int y) {

  int count = 1;

  // 判断横向

  for (int i = y + 1; i < 15 && board[x][i] == color; i++, count++);

  for (int i = y - 1; i >= 0 && board[x][i] == color; i--, count++);

  if (count >= 5)

    success = true;

    return;

  

  count = 1;

  // 判断纵向

  for (int i = x + 1; i < 15 && board[i][y] == color; i++, count++);

  for (int i = x - 1; i >= 0 && board[i][y] == color; i--, count++);

  if (count >= 5)

    success = true;

    return;

  

  count = 1;

  // 判断左下->右上

  for (int i = x + 1, j = y - 1; i < 15 && j >= 0 && board[i][j] == color; i++, j--, count++);

  for (int i = x - 1, j = y + 1; i >= 0 && j < 15 && board[i][j] == color; i--, j++, count++);

  if (count >= 5)

    success = true;

    return;

  

  count = 1;

  // 判断左上->右下

  for (int i = x + 1, j = y + 1; i < 15 && j < 15 && board[i][j] == color; i++, j++, count++);

  for (int i = x - 1, j = y - 1; i >= 0 && j >= 0 && board[i][j] == color; i--, j--, count++);

  if (count >= 5)

    success = true;

    return;

  

}

int main() {

  int x, y; // 存储输入的坐标

  int color = 1; // 存储当前落子颜色,1为黑色,2为白色

  while (!success) { // 只要还没有获胜,就可以一直下棋

    // 输出棋盘

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

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

        cout << board[i][j] << " ";

      }

      cout << endl;

    }

    cout << "请" << (color == 1 ? "黑方" : "白方") << "落子,输入坐标(x,y): ";

    cin >> x >> y;

    // 判断输入是否合法

    if (x < 0 || x >= 15 || y < 0 || y >= 15 || board[x][y] != 0)

      cout << "输入不合法

    board[x][y] = color; // 落子

    check_win(color, x, y); // 判断是否获胜

    if (success) {

      cout << (color == 1 ? "黑方" : "白方") << "获胜!" << endl;

      break;

    }

    color = (color == 1 ? 2 : 1); // 切换落子颜色

  }

  return 0;

}

以上代码实现了一个简单的五子棋游戏。在程序运行时,首先会输出一张初始的棋盘(全部为0),然后提示黑色方或白色方输入坐标,再判断输入是否合法,若合法,则在对应的位置落子,并通过 `check_win` 函数判断是否获胜。若获胜,则输出结果;否则,继续下一步,并切换落子颜色。

总之,以上代码虽然简单,但已经实现了五子棋游戏的基本要求,如果您对于C++语言不熟悉,可以作为一个参考,并根据自己的需要进行改编。如果您想要更深入掌握C++,还需要多多练习,去用C++实现更多的程序,才能更好地理解C++语言的核心思想。

  
  

评论区

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