`
卿雯candy
  • 浏览: 16621 次
  • 性别: Icon_minigender_2
  • 来自: 永州
文章分类
社区版块
存档分类
最新评论

五子棋人机算法的思想

 
阅读更多
     五子棋人机博弈————顾名思义,就是玩家与计算机下棋,首先要考虑一下几个方面:

1,棋盘与棋子的实现
2,玩家下完棋后,计算机要根据当前玩家所下的棋子找出最佳下棋点
3,输赢的判断


棋盘与棋子的实现和输赢的判断问题在五子棋人人博弈中已经解决了,接下来主要是解决计算机在玩家下完棋以后如何找到最佳下棋点。
1,首先需要定义权值,以便电脑根据棋盘上某一点在四个方向上的权值之和来判断最佳下棋点。然后,给出权值算法,用于计算棋盘上某一点的利于电脑而不利于玩家的权值之和,最后,用一个循环来遍历整个棋盘以检测最佳权值点。


a,定义权值(玩家代表黑子)
例如:黑白白空   50
其意义为,黑代表黑子,白代表白子,空代表没有下棋,这一种形式的权值为50,根据所有的情况,定义如下权值赋值
空白空   10
黑白空   20
黑白白空  50
空白白空  100
黑白白白空  500
空白白白空  1000
黑白白白白空  5000
空白白白白空  100000
白白白白白  1000000
b,计算权值
权值定义好以后,就计算棋盘上各个点的权值了,棋盘上某个点权值由四部分构成,即横向,竖向,左斜方和右斜方。求出这四个方向上的权值,然后相加就得到这个点的权值。

c,计算机下棋
在最大权值点下棋



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics