Golang Go语言中用 Go 撸了下 2048 的 AI
用 Go 把 2048 的 AI 撸了一遍,有兴趣的同学可以参考下。
算法用的 Expectimax,局面评估靠几个简单的权值矩阵,因为请求频繁,使用 websocket 来通信。2048 的网页前端是从别人的项目 fork 过来修改的,在 readme 上有说明。
Golang Go语言中用 Go 撸了下 2048 的 AI
更多关于Golang Go语言中用 Go 撸了下 2048 的 AI的实战教程也可以访问 https://www.itying.com/category-94-b0.html
什么?你把我撸了?
2333
卧槽。。
#2 哈哈哈哈
自古二楼出人才
二楼 2333333
不说歪楼的事,这个搞得很厉害
确实不错。
2 楼, 23333
谢谢。
https://github.com/xwjdsh/2048-ai/issues/1
docker start 的时候报错了
请问你的 AI 是哪个部位?
果然二楼欢乐多
2 * 1024 ? 我还以为…
我试了几个服务器,都正常。你看看这个链接有没有帮助呢。
https://github.com/moby/moby/issues/16816
合格的二楼-.-
噫!!
是的,爆出 1024 和 2048 分别提升一个搜索深度,会导致速度变慢。
#2
自古二楼出人才
流弊,求待
求带
小白围观
大佬你谦虚了。。
前面很快,后面( 1024 之后)开始吃力了,效率还有的提升。
是的,爆出 1024 和 2048 分别提升一个搜索深度,会导致速度变慢。代码上可以优化的地方有不少,谢谢支持。
好 diao
只玩到分数 71652
自古二楼欢乐多。。
局面评估上实现的比较粗糙,我也觉的跑起来不太稳定。
原来已经开源了。
为啥我的印象中 2048 这个游戏除了会刷出 2,还会刷出 4
开源的挺多的,我也参考了一些项目。大多是 js 实现的,服务端实现的少一些。
是会刷出 4 的。10%出 4,90%出 2,这个是前端里 js 的逻辑,没有改过。
http://ovolve.github.io/2048-AI/
跟这个用的同一算法么?
这个项目我读过,作者用的算法是 minimax 结合剪枝,expectimax 是基于其的一个变种,在局面评估上,他考虑的方面很多,表现很好。
厉害了。。学习中
早上来办公室看 github 吓一跳,原来被大佬翻牌了。
给大佬跪了。。。
在Go语言中实现2048游戏的AI是一个既有趣又富有挑战性的项目。2048的AI设计通常涉及启发式搜索算法,如深度优先搜索(DFS)、广度优先搜索(BFS),或者更高级的算法如A*、蒙特卡洛树搜索(MCTS)等。下面是一些关于如何在Go中实现2048 AI的简要建议:
-
游戏状态表示:首先,你需要一个数据结构来表示2048的游戏状态,通常是一个4x4的二维数组。
-
评估函数:为了指导搜索过程,你需要一个评估函数来估算给定游戏状态的好坏。这通常基于当前游戏板上的数字总分、空位数量、最大块的值等因素。
-
搜索算法:对于简单的实现,DFS或BFS可能就足够了。然而,为了获得更好的性能,你可以考虑使用A*或MCTS等算法。这些算法能够更有效地探索可能的移动,并基于评估函数的结果来选择最佳移动。
-
优化:在实现基本的AI后,你可以尝试通过剪枝、缓存中间结果、优化评估函数等方式来提高AI的性能。
-
测试与调试:在实现过程中,不断地测试和调试你的AI是非常重要的。你可以通过让AI与随机玩家、其他简单AI或你自己对战来评估其性能。
总之,用Go语言实现2048的AI是一个很好的编程练习,它不仅能帮助你深入理解Go语言的特性,还能让你学习到如何设计和实现启发式搜索算法。祝你项目顺利!