From fa3f6429cde7656ea8c7ae76d06e08f4a1bd5818 Mon Sep 17 00:00:00 2001 From: 63db3122f0950a2aef64df95 <63db3122f0950a2aef64df95@devide> Date: Mon, 3 Jul 2023 08:07:00 +0000 Subject: [PATCH] Mon Jul 3 08:07:00 UTC 2023 inscode --- src/utils/index.js | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/utils/index.js b/src/utils/index.js index a1b0998..255f5ff 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -17,8 +17,8 @@ export const directions = [ /** * 检查四个方向连续的棋子数 * @param {object} param - * @param {number} param.row 行 - * @param {number} param.col 列 + * @param {number} param.row 行 y + * @param {number} param.col 列 x * @param {(is_empty|is_white|is_black)[]} param.board 棋盘 * @param {is_white|is_black|is_empty} [param.player] 当前棋子类型 * @param {number} param.win_size 需要几个棋子才赢 @@ -27,10 +27,8 @@ export const directions = [ export function checkWin({ row, col, board, player, win_size }) { const ROW = board.length; const COL = board[0].length - const TYPE = player ?? board[row][col] let res = [] - for (let i = 0; i < directions.length; i++) { res = [[row, col]]; const [dy, dx] = directions[i]; @@ -38,7 +36,7 @@ export function checkWin({ row, col, board, player, win_size }) { let y = row + dy; // 向正反两个方向扩展,检查是否有连续的五个相同棋子 - while (x >= 0 && x < COL && y >= 0 && y < ROW && board[x][y] === TYPE) { + while (x >= 0 && x < COL && y >= 0 && y < ROW && board[x][y] === player) { res.push([y, x]) x += dx; y += dy; @@ -46,7 +44,7 @@ export function checkWin({ row, col, board, player, win_size }) { x = col - dx; y = row - dy; - while (x >= 0 && x < COL && y >= 0 && y < ROW && board[x][y] === TYPE) { + while (x >= 0 && x < COL && y >= 0 && y < ROW && board[x][y] === player) { res.push([y, x]) x -= dx; y -= dy; @@ -83,7 +81,7 @@ export function robotPlay(board, robot, win_size) { let score = 0; const [row, col] = point; - // 判断下子后是否获胜 + // 判断在此空位上落子后是否获胜 const win = checkWin({ row, col, board, player: robot, win_size }); if (win) { return [row, col] -- GitLab