Wed Jul 5 12:14:00 UTC 2023 inscode

上级 57decf5e
...@@ -73,7 +73,7 @@ export function checkWin({ row, col, board, player, win_size }) { ...@@ -73,7 +73,7 @@ export function checkWin({ row, col, board, player, win_size }) {
let y = row + dy; 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]) res.push([y, x])
x += dx; x += dx;
y += dy; y += dy;
...@@ -81,7 +81,7 @@ export function checkWin({ row, col, board, player, win_size }) { ...@@ -81,7 +81,7 @@ export function checkWin({ row, col, board, player, win_size }) {
x = col - dx; x = col - dx;
y = row - dy; 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]) res.push([y, x])
x -= dx; x -= dx;
y -= dy; y -= dy;
...@@ -138,6 +138,7 @@ export function robotPlay(board, win_size) { ...@@ -138,6 +138,7 @@ export function robotPlay(board, win_size) {
* 计算公式 10**(n) * 计算公式 10**(n)
* *
* 是以一条线的记录积分,一个位置上正负方向为一条线 * 是以一条线的记录积分,一个位置上正负方向为一条线
* 同样是三颗棋子,没有挡住的比挡住一边的分数要大
* 当一个位置上 横 竖 斜 反斜 位置上都有棋子 * 当一个位置上 横 竖 斜 反斜 位置上都有棋子
* 积分最大为 4 * (10**8) = 400000000 * 积分最大为 4 * (10**8) = 400000000
* 积分最小为 4 * (10**0) = 4 * 积分最小为 4 * (10**0) = 4
...@@ -150,6 +151,7 @@ export function robotPlay(board, win_size) { ...@@ -150,6 +151,7 @@ export function robotPlay(board, win_size) {
* *
* 随机下棋 * 随机下棋
* 如果一个判定回合,棋盘积分中最高的积分有多个,则随机选择一个位置,避免有规律 * 如果一个判定回合,棋盘积分中最高的积分有多个,则随机选择一个位置,避免有规律
*
*/ */
/** /**
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册