人工智能游戏编程

    前几天一直在敲代码。
    作为一个本科生,花了将近一个星期的时间,我终于实现了“人机对弈的五子棋游戏”的初级代码。
    这里面涉及到的人工智能算法搞得我很头疼。博弈树的问题我看了很久,也在网上找了很多的资料,可是直到现在我还是没有把这个问题搞透彻。
    所以,在我的算法里面,仅仅是对双方各进行一次搜索,然后根据每种情况的优先级别的不同,对各种不同的棋局给定不同的权值。再选择权值最大的位置落点。最后把整个算法跟界面结合起来,实现了这个游戏的初步设计。
    具体的做法如下:
    搜索:在15*15的棋盘上,对每一个空格从四个方向进行搜索。找到这四个方向上的具体棋子分布;(实际上,搜索做了两次,分别是从己方和对方的角度来做搜索。)
    估值:根据每种棋局的优先级将各种情况设定一个初始的权值,估值的原则就是使得最终的权值加起来符合优先级的要求;(例如:成5的优先级最高,其次是活4……)
    落子:找到权值最大的点。
    做完测试时,发现这样的棋力只能打败入门级的棋手。所以一直在找博弈树的相关资料,希望能够尽快实现游戏的升级,不说高手,最起码,智能算法要能应付普通的棋手吧。
    但是事与愿违,几天来,几乎是丝毫没有进展。在图书馆里找了一个下午也没有找到博弈树的相关书籍,里面的人工智能算法大多是关于遗传算法的。网上的剪枝算法和博弈树的介绍也看得我很迷茫。哎,相信天道酬勤,但是依然是在郁闷中……

你可能感兴趣的:(游戏,编程,算法)