python小练习(079):带AI的黑白棋小游戏(升级版)
这次是对上一版本的AI做了点升级,用了DFS递归5层搜索最优解,由于是机器和人对战,所以轮到机器下的时候,第一次为全局搜索可行解,第二次是玩家下,运用棋类博弈的MinMax算法(玩家的最优解即是机器的最差解)求得最差解,第三次轮到机器下,继续全局搜索所有可行解,第四次同样求得机器的最差解,第五次返回所有可行解。在所有的可行解中取得当前局面下的最优解,就是要下的位置。基本上每步都依次循环,除非遇到无解的情况,那么只能找可以下的位置,作为唯一输出。基本上程序方面的优化就到此为止了,如果还需要提高AI,则要从下棋的策略上再去研究了。
当前市面上流行的黑白棋AI大多采用模板控制,即把局面归纳为数量固定的若干个模板,然后按照模板对策进行下棋。
模板的好处是运行速度非常快(因为根本就不需要递归求所有可行解),而且模板化的对策都是比较成熟的对策了,出错的可能性很小。
本套程序完全是自己弄着玩的,所以没有引入任何一套模块,不过依然还是有不错对战能力,相信如果能结合模板,会进一步提升AI水平。
下一步看看是不是有空结合pygame做一套带GUI的对战黑白棋{:5_109:}
源代码:
**** Hidden Message ***** 羡慕 ai升级版,好像很牛B 厉害 这个确实太厉害 我在AI的判断程序里还加了随机选择的机制,当同时出现几个最优解的时候随机选择,这也就意味着你每次用相同的策略来下棋,AI会有不同的策略,避免了用同一策略可以永远赢过AI的情况。 好好学习!! ok
瞅瞅 {:5_108:},厉害{:5_106:} 学习一下 看看 回复看{:10_297:} 什么时候能到你这个水平{:5_91:} 666 学习学习 看看怎么样,太厉害了 厉害厉害{:10_297:} 求解 goog studygoog studygoog studygoog study