diff --git a/src/utils/index.js b/src/utils/index.js index b9737eb0fd1d165e6f9018c6c6a29d7ef02dee82..0f9160be41e5968f082609ac138257855a786e64 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -73,7 +73,7 @@ export function checkWin({ row, col, board, player, win_size }) { let y = row + dy; // 向正反两个方向扩展,检查是否有连续的五个相同棋子 - while (x >= 0 && x < COL && y >= 0 && y < ROW && board[y][x] === player) { + while (inRange(x, COL) && inRange(y, ROW) && board[y][x] === player) { res.push([y, x]) x += dx; y += dy; @@ -81,7 +81,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[y][x] === player) { + while (inRange(x, COL) && inRange(y, ROW) && board[y][x] === player) { res.push([y, x]) x -= dx; y -= dy; @@ -138,6 +138,7 @@ export function robotPlay(board, win_size) { * 计算公式 10**(n) * * 是以一条线的记录积分,一个位置上正负方向为一条线 + * 同样是三颗棋子,没有挡住的比挡住一边的分数要大 * 当一个位置上 横 竖 斜 反斜 位置上都有棋子 * 积分最大为 4 * (10**8) = 400000000 * 积分最小为 4 * (10**0) = 4 @@ -150,6 +151,7 @@ export function robotPlay(board, win_size) { * * 随机下棋 * 如果一个判定回合,棋盘积分中最高的积分有多个,则随机选择一个位置,避免有规律 + * */ /**