用 Go 撸了下 2048 的 AI

2017-10-25 10:16:54 +08:00
 WendellSun

用 Go 把 2048 的 AI 撸了一遍,有兴趣的同学可以参考下。

算法用的 Expectimax,局面评估靠几个简单的权值矩阵,因为请求频繁,使用 websocket 来通信。2048 的网页前端是从别人的项目 fork 过来修改的,在 readme 上有说明。

https://github.com/xwjdsh/2048-ai

4225 次点击
所在节点    Go 编程语言
43 条回复
mrcn
2017-10-25 13:10:04 +08:00
爆出 1024 之后速度好像会变慢很多?
WendellSun
2017-10-25 13:20:42 +08:00
@mrcn 是的,爆出 1024 和 2048 分别提升一个搜索深度,会导致速度变慢。
yulitian888
2017-10-25 13:43:24 +08:00
#2
自古二楼出人才
timothyye
2017-10-25 13:45:19 +08:00
流弊,求待
timothyye
2017-10-25 13:45:25 +08:00
求带
veightz
2017-10-25 13:47:49 +08:00
小白围观
WendellSun
2017-10-25 14:06:44 +08:00
@timothyye 大佬你谦虚了。。
rebill
2017-10-25 14:22:26 +08:00
前面很快,后面( 1024 之后)开始吃力了,效率还有的提升。
WendellSun
2017-10-25 14:37:48 +08:00
@rebill 是的,爆出 1024 和 2048 分别提升一个搜索深度,会导致速度变慢。代码上可以优化的地方有不少,谢谢支持。
lh948
2017-10-25 14:51:46 +08:00
好 diao
lh948
2017-10-25 15:01:12 +08:00
只玩到分数 71652
mosliu
2017-10-25 15:07:56 +08:00
自古二楼欢乐多。。
22092
2017-10-25 15:08:53 +08:00
WendellSun
2017-10-25 15:18:08 +08:00
@lh948 @jg22092kit 局面评估上实现的比较粗糙,我也觉的跑起来不太稳定。
andychen20121130
2017-10-25 15:29:04 +08:00
原来已经开源了。
aihimmel
2017-10-25 15:50:18 +08:00
为啥我的印象中 2048 这个游戏除了会刷出 2,还会刷出 4
WendellSun
2017-10-25 15:59:26 +08:00
@andychen20121130 开源的挺多的,我也参考了一些项目。大多是 js 实现的,服务端实现的少一些。
WendellSun
2017-10-25 16:02:43 +08:00
@aihimmel 是会刷出 4 的。10%出 4,90%出 2,这个是前端里 js 的逻辑,没有改过。
nicoljiang
2017-10-26 18:00:27 +08:00
http://ovolve.github.io/2048-AI/

跟这个用的同一算法么?
WendellSun
2017-10-26 21:27:34 +08:00
@nicoljiang 这个项目我读过,作者用的算法是 minimax 结合剪枝,expectimax 是基于其的一个变种,在局面评估上,他考虑的方面很多,表现很好。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/400481

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX