Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
aa152147
五子棋
提交
eea4f3d7
五
五子棋
项目概览
aa152147
/
五子棋
与 Fork 源项目一致
Fork自
inscode / VueJS
通知
1
Star
43
Fork
23
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
五
五子棋
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
eea4f3d7
编写于
7月 29, 2023
作者:
U
u014301111
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Sat Jul 29 04:55:00 CST 2023 inscode
上级
29e5eed7
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
15 addition
and
26 deletion
+15
-26
src/utils/index.js
src/utils/index.js
+15
-26
未找到文件。
src/utils/index.js
浏览文件 @
eea4f3d7
...
...
@@ -57,7 +57,6 @@ function aroundIsEmpty({ ROW, COL, OBJ }, y, x) {
}
}
}
return
res_arr
===
0
}
...
...
@@ -78,36 +77,25 @@ export function checkWin({ row, col, board, player, win_size }) {
for
(
let
i
=
0
;
i
<
directions
.
length
;
i
++
)
{
res
=
[[
row
,
col
]];
const
[
dy
,
dx
]
=
directions
[
i
];
let
x
=
col
+
dx
;
let
y
=
row
+
dy
;
// 向正反两个方向扩展,检查是否有连续的五个相同棋子
while
(
inRange
(
x
,
COL
)
&&
inRange
(
y
,
ROW
)
&&
board
[
y
][
x
]
===
player
)
{
res
.
push
([
y
,
x
])
x
+=
dx
;
y
+=
dy
;
}
for
(
let
j
=
-
1
;
j
<
3
;
j
+=
2
)
{
// 出现五连珠,返回胜利
if
(
res
.
length
>=
win_size
)
{
return
res
;
}
const
[
dy
,
dx
]
=
directions
[
i
];
let
x
=
col
+
dx
*
j
;
let
y
=
row
+
dy
*
j
;
x
=
col
-
dx
;
y
=
row
-
dy
;
while
(
inRange
(
x
,
COL
)
&&
inRange
(
y
,
ROW
)
&&
board
[
y
][
x
]
===
player
)
{
res
.
push
([
y
,
x
])
x
-=
dx
;
y
-=
dy
;
}
// 向正反两个方向扩展,检查是否有连续的五个相同棋子
while
(
inRange
(
x
,
COL
)
&&
inRange
(
y
,
ROW
)
&&
board
[
y
][
x
]
===
player
)
{
res
.
push
([
y
,
x
])
x
+=
dx
*
j
;
y
+=
dy
*
j
;
}
// 出现五连珠,返回胜利
if
(
res
.
length
>=
win_size
)
{
return
res
;
// 出现五连珠,返回胜利
if
(
res
.
length
>=
win_size
)
{
return
res
;
}
}
}
// 当前空位,可以结成多少颗连珠
return
false
;
}
...
...
@@ -176,6 +164,7 @@ export function robotPlay(board, win_size) {
if
(
max_scores_arr
.
length
===
1
)
{
res_key
=
Object
.
keys
(
max_scores_arr
[
0
])[
0
]
}
else
if
(
max_scores_arr
.
length
>
1
)
{
// 多个相同的分数的,随机选择一个
const
random_index
=
Math
.
floor
(
Math
.
random
()
*
max_scores_arr
.
length
)
res_key
=
Object
.
keys
(
max_scores_arr
[
random_index
])[
0
]
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录