山东大学项目实训——简易微信小游戏(四)

本篇我在这里理清五子棋人机对战的思路。由于本人没有深究五子棋的玩法,因此对于“禁手”等专业词语还不是很清楚,只知道“五子连珠”获得游戏胜利和黑棋(玩家)先手这样的简单规则。以此基础参考“评分表法”(或者称“五元组法”)实现五子棋的人机对战。

一、评分表法

首先,人机对战最重要的是解决机器怎么下棋的问题。下棋不是随便下在任意位置上就可以,而是下在最合适的位置上,就像我们人类思考最佳的下棋位置一样。那么如何选择这个位置是关键,例如当玩家下了连续一条线上的3个黑棋,而机器下的白棋没有3个连在一起,这个时候机器需要想办法堵住玩家的黑棋,不能让玩家有4个连续的黑棋且两头没有堵住,否则机器必输。类似这样的攻防也是需要考虑在内的。因此采用“评分表法”来确定棋盘中哪个位置是最合适的。

首先先了解“五元组”的概念,一般五子棋盘是15*15的,也就是说一行可以下15个棋,一共有15行。那么一个“五元组”指的是连续的5个下棋位置作为一组,不管是水平方向、垂直方向还是斜方向。棋盘中共有572个五元组,但这个信息你可以不用考虑,对这里分析算法没有任何帮助。

 上图所画3个红圈分别是3个“五元组”,分别有水平方向、垂直方向、斜方向

评分表法”就是为棋盘中每一个“五元组”进行评分,并将分值赋给该“五元组”中的5个下棋位置。显然,棋盘中的某个下棋位置不可能只在一个“五元组”中,因此该下棋位置的分数需要它

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值