可以使用两个循环来遍历整个棋盘,分别判断横向和竖向的连续5个棋子是否同色,然后再分别判断左上到右下和右上到左下两个斜线方向上的连续5个棋子是否同色。

以下是封装好的可复用的判断斜线方向上连续5个同色棋子的函数:

function checkDiagonalWin(color, board) {
  for (let i = 0; i < board.length - 4; i++) {
    for (let j = 0; j < board[i].length - 4; j++) {
      if (
        board[i][j] === color &&
        board[i + 1][j + 1] === color &&
        board[i + 2][j + 2] === color &&
        board[i + 3][j + 3] === color &&
        board[i + 4][j + 4] === color
      ) {
        return true;
      }

      if (
        board[i][j + 4] === color &&
        board[i + 1][j + 3] === color &&
        board[i + 2][j + 2] === color &&
        board[i + 3][j + 1] === color &&
        board[i + 4][j] === color
      ) {
        return true;
      }
    }
  }

  return false;
}

其中,color是要判断的颜色,board是一个二维数组表示棋盘,数组中的元素为0表示空位,1表示黑色棋子,2表示白色棋子。

函数返回true表示存在连续5个同色棋子,否则返回false。

我用canvas做了一个五子棋小游戏但我没有找到一个好的方法判断斜线方向上连续5个同色的棋子你有什么好的方法吗请帮我封装成可复用的js函数

原文地址: https://www.cveoy.top/t/topic/bpMd 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录