极小极大法:如何在Python中实现?

2 投票
3 回答
4593 浏览
提问于 2025-04-16 05:36

我当程序员这么久了,发现自己对算法的理解还是很基础(因为我是自学的)。也许你可以在回答中推荐一本适合初学者的好书,让我能更好地学习算法。

3 个回答

1

这里有一个关于最小最大算法的实现,作为一个黑白棋游戏的一部分(还有浏览器版本)。

你可以通过调试工具或者使用日志语句来逐步了解这个算法,这样可以帮助你更好地理解算法的理论描述

这个可视化小程序也可能对你有帮助。

在每个阶段,玩家都会选择对自己最有利的动作。对一个玩家来说最好的选择,往往对另一个玩家来说就是最糟糕的选择。所以在某个阶段,游戏状态会选择分数最低的情况,而在下一个阶段,则会选择分数最高的情况,依此类推。

1

你可以看看维基百科上关于Negamax的文章:http://en.wikipedia.org/wiki/Negamax。Negamax是对minimax算法的一种小改进,它更简单,容易实现。页面上还有伪代码可以参考。

3

总的来说,推荐一本书,叫做《算法导论》。这本书能帮你了解几乎所有你需要知道的关于一般算法的知识。

补充:

正如AndrewF提到的,这本书里其实没有专门讲到极小极大算法,但它仍然是学习理解和实现算法的非常好资源。

撰写回答