jerryxjr1220 发表于 2017-3-9 15:00:43

python小练习(079):带AI的黑白棋小游戏(升级版)

这次是对上一版本的AI做了点升级,用了DFS递归5层搜索最优解,由于是机器和人对战,所以轮到机器下的时候,第一次为全局搜索可行解,第二次是玩家下,运用棋类博弈的MinMax算法(玩家的最优解即是机器的最差解)求得最差解,第三次轮到机器下,继续全局搜索所有可行解,第四次同样求得机器的最差解,第五次返回所有可行解。在所有的可行解中取得当前局面下的最优解,就是要下的位置。基本上每步都依次循环,除非遇到无解的情况,那么只能找可以下的位置,作为唯一输出。

基本上程序方面的优化就到此为止了,如果还需要提高AI,则要从下棋的策略上再去研究了。

当前市面上流行的黑白棋AI大多采用模板控制,即把局面归纳为数量固定的若干个模板,然后按照模板对策进行下棋。

模板的好处是运行速度非常快(因为根本就不需要递归求所有可行解),而且模板化的对策都是比较成熟的对策了,出错的可能性很小。

本套程序完全是自己弄着玩的,所以没有引入任何一套模块,不过依然还是有不错对战能力,相信如果能结合模板,会进一步提升AI水平。

下一步看看是不是有空结合pygame做一套带GUI的对战黑白棋{:5_109:}

源代码:
**** Hidden Message *****

CalvinD 发表于 2017-3-9 15:37:49

羡慕

do827261756 发表于 2017-3-9 15:58:22

ai升级版,好像很牛B

怒扶老大爷 发表于 2017-3-9 16:51:49

厉害

赛大爷 发表于 2017-3-9 17:18:16

这个确实太厉害

jerryxjr1220 发表于 2017-3-9 18:01:44

我在AI的判断程序里还加了随机选择的机制,当同时出现几个最优解的时候随机选择,这也就意味着你每次用相同的策略来下棋,AI会有不同的策略,避免了用同一策略可以永远赢过AI的情况。

husis 发表于 2017-3-13 10:52:53

好好学习!!

kashgars 发表于 2017-3-13 13:16:22

ok

546397641 发表于 2017-3-13 13:33:25

瞅瞅

deadofpeople 发表于 2017-3-13 16:56:34

{:5_108:},厉害{:5_106:}

madao0505 发表于 2017-3-14 15:13:23

学习一下

zcr林枫 发表于 2017-3-16 09:35:04

看看

天气晴朗 发表于 2017-3-16 13:28:46

回复看{:10_297:}

赛大爷 发表于 2017-3-16 13:33:41

什么时候能到你这个水平{:5_91:}

新手·ing 发表于 2017-3-17 16:50:02

666

核桃 发表于 2017-3-18 10:02:48

学习学习

WylLy 发表于 2017-3-19 21:08:23

看看怎么样,太厉害了

sherry123 发表于 2017-3-19 21:53:32

厉害厉害{:10_297:}

你妹啊00 发表于 2017-3-20 22:59:00

求解

hellomasm2016 发表于 2017-3-22 13:25:52

goog studygoog studygoog studygoog study
页: [1] 2 3 4 5 6 7 8 9
查看完整版本: python小练习(079):带AI的黑白棋小游戏(升级版)