纯C++实现2048 AI版本

本文介绍了使用C++实现2048游戏AI的详细过程,包括源码原理、剪枝策略的改进,如额外剪枝和初始乱按步骤。还探讨了进一步的优化方案,如max函数的优化、主要移动方向的选择以及去除赢局判断的剪枝。
摘要由CSDN通过智能技术生成

源码及原理

最近用纯c++实现了了一个2048的附加ai版本。由于教育网github不稳定,所以源码用了oschina 的仓库

clone地址http://git.oschina.net/zhao02/game2048withAI.git


基本原理是minimax search。由http://stackoverflow.com/questions/22342854/what-is-the-optimal-algorithm-for-the-game-2048/22389702#22389702学习而来。

关于该原理的解释这儿写的很清楚,也不乏中文翻译。本文假设读者已经了解该基本算法。

本文只想说说不一样的部分——改进和进一步改进方案。

改进

我觉得当搜索深度高于5之后,AI算法有明显的停顿感。大致算了下,假设没一步移动都可以使屏幕上只剩一个方块,则搜索树最下层的节点数为120的n次方。明显需要剪枝

关于剪枝

原本的算法中除了α-β剪枝之外,
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值