From 85764a0e3ef66a4953ab0b0fed1e70913bb9e497 Mon Sep 17 00:00:00 2001 From: 63db3122f0950a2aef64df95 <63db3122f0950a2aef64df95@devide> Date: Wed, 5 Jul 2023 12:14:00 +0000 Subject: [PATCH] Wed Jul 5 12:14:00 UTC 2023 inscode --- src/utils/index.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/utils/index.js b/src/utils/index.js index b9737eb..0f9160b 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) { * * 随机下棋 * 如果一个判定回合,棋盘积分中最高的积分有多个,则随机选择一个位置,避免有规律 + * */ /** -- GitLab