五子棋游戏[3] – 人机博弈 – 博弈树

五子棋游戏[3] – 人机博弈 – 博弈树
距离上次写这个系列已经过去很久了,非常抱歉,现在呢我重新拾笔来填我自己挖下的这个坑。 在上一次的文章中,我们已经制作了整个游戏的最核心的框架,也就是说我们得到一个可以进行游戏的交互界面并且对游戏规则进行掌控的一个游戏类,在此前的文章中,我尽可能的让大家回避我所写的代码,因为这样会限制大家对整个游戏架构的思考,毕竟构建一个游戏的方式是多种多样的,我所想的方法并不一定是最好的,所以我希望大家自己去构建游戏的核心部分,我的文章仅作为一些提示。不过从这一篇文章开始,情况将有所转变,在完成的游戏核心部分之后,我希望让大家了解到的是,让游戏获得智能本身是一件又简单但又不简单的事情。 简单,是因为我们其实只是需要一个算法,能够替代两个玩家中的其中之一,这个算法的框架显而易见: 算法的输入数据就是当前棋局,算法通过分析棋局来计算并得出一个最佳的行棋位置。算法的需求是明朗简单的,但是难点就在于如何实现这个算法。 好在,有无数的人身先士卒,已经研究出了一类算法来应对这种博弈类问题,而且这种方法易于理解和实现...