From 419eaf90eccb1cc0495b7c26e6d2143411c28283 Mon Sep 17 00:00:00 2001 From: 63db3122f0950a2aef64df95 <63db3122f0950a2aef64df95@devide> Date: Mon, 3 Jul 2023 10:24:00 +0000 Subject: [PATCH] Mon Jul 3 10:24:00 UTC 2023 inscode --- src/utils/index.js | 33 ++++++++++----------------------- 1 file changed, 10 insertions(+), 23 deletions(-) diff --git a/src/utils/index.js b/src/utils/index.js index f4a91f4..6433976 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -93,6 +93,7 @@ export function robotPlay(board, robot, win_size) { } else { // 这里要应该是要返回这个位置的分数 score = estimateScore({ row, col, board, win_size }) + console.log(score) } } @@ -106,21 +107,6 @@ export function robotPlay(board, robot, win_size) { return maxScorePos; } -const direction_4 = [ - // \ - [[-1, -1], - [1, 1]], - // | - [[0, -1], - [0, 1]], - // / - [[1, -1], - [-1, 1]], - // - - [[-1, 0], - [1, 0]] -] - /** * 计分 * 零颗棋子记 个位数 的积分 @@ -159,19 +145,19 @@ function getBoundary(size, num) { * @param {*} piece_type * @returns */ -function getDirectionScore(board, row, col, [x, y], piece_type) { +function getDirectionScore(board, row, col, [y, x], win_size, piece_type) { const ROW = board.length const COL = board[0].length let res = 0 - let _row = row + x - let _col = col + y + let _row = row + y + let _col = col + x while (true) { if (_row < 0 || _col < 0 || !board[_row] || board[_row][_col] !== piece_type) { break; } res += 1 - _row += x - _col += y + _row += y + _col += x } // 判断边距 return res @@ -187,8 +173,9 @@ function getDirectionScore(board, row, col, [x, y], piece_type) { * @return {number} */ function estimateScore({ board, row, col, win_size }) { - return direction_4.reduce((r, [p1, p2]) => { - const square = getDirectionScore(board, row, col, p1, win_size, is_black) + getDirectionScore(board, row, col, p2, win_size, is_black) - return r + 10 ** square + console.log(JSON.stringify(board)) + return directions.reduce((r, [y, x]) => { + const square = getDirectionScore(board, row, col, [y, x], win_size, is_black) + getDirectionScore(board, row, col, [y * -1, x * -1], win_size, is_black) + return r + (10 ** square) }, 0) } -- GitLab