博弈算法的高手请进,区区小分不成敬意(求得分函数)
大家好,偶在编写五子棋软件的过程中遇到了一些问题,请高手指点。
算法采用,a.b裁剪,min,max搜索,递归树。
算法框枷无任何问题,验证过。
但那个讨厌的得分函数,使小弟煞费苦心。
得分函数的好坏,决定了智能的高低。如果,没有一个好的得分函数,即使能进行
搜索100层,也是没用的。
我起初编的得分函数 long GetScore(int node[EQ_MAXY][EQ_MAXX],int x,int y)
对某一点进行给分。对计算机有利,分高。对人有利,分低。
可是,后来偶发现,进行多层搜索后,计算机将选择对人不利的走法。
但这个并不能说明对计算机自己就有利。后来的debug,偶证实了这个问题的存在。
如果,能给一个整个棋盘的得分函数,问题就完全不一样了。
所以,请教各位高手,给出一个实在的得分函数。
请不要推荐什么站点:如csdn,smiling,随吊听竹声,等站点,我常去。
更不要叫我搜索什么csdn上的五子棋软件,我基本全看过。个人认为,棋力不强,算法简单。
希望,高手能实在的给小弟一个得分函数,其他什么也不要。
函数long GetScore(int node[EQ_MAXY][EQ_MAXX])。
对整个棋盘给分,注意一定要整个棋盘。
本来想多给分的,可惜只能给30分,麻烦各位大侠了。
希望,能联系小弟seelyw@yeah.net