斗地主残局代码解决思路

欢乐斗地主这个游戏有一个叫做残局的模式

模式的特征:你和机器人都互相知道对方的牌,且对面的机器人绝顶聪明。你先出牌 电脑应对,最后看谁获胜

这是很有代表性的二人博弈模式。

于是我尝试编写代码对这个游戏进行摸索,寻找玩家必胜之道

一开始选择学习的是正统的MINMAX博弈树算法 还想进行Alpha Beta剪枝优化。

资源地址

https://blog.csdn.net/BIT1120172185/article/details/80963609

http://web.cs.ucla.edu/~rosen/161/notes/minimax.html

http://web.cs.ucla.edu/~rosen/161/notes/alphabeta.html

但是由于没有很好的的牌局衡量函数 基本上是没有啥Alpha Beta剪枝优化的,只有自己胜负与敌人胜负两种情况。

而且由于按照资料的流程,我自己也建立了出牌压牌的策略树,那么自然就引入了内存分配与管理等问题。

最后自己进行了优化,代码效率比一般的PY解答要快。比知乎上一位使用C++进行编写的答案似乎也要快一些。

但是。。。。。。。。。。。。。。。。。。。。

我居然在发表算法OJ习题的作者博客发现了一份残局计算代码。

效率约莫和我差不多,使用递归不用内存管理的代码。而且和做够沟通后,作者马上写出了V2.0版本,速度再次提升。

不考虑可读性与扩展性来说,整个代码毫无冗余代码。

比赛风格,算法简短锋锐,刀刀见血。

地址:https://www.cnblogs.com/xiefengze1/p/10567207.html

应该是高中NOI选手 只能说英雄出少年!

猜你喜欢

转载自www.cnblogs.com/itdef/p/10723062.html