- 界面实现
- 通过css + div + js 生产界面 首先生产格子
- 单击事件产生格子(注意单击后锁住按钮,防止事件重复)
- 游戏逻辑实现
- 使用二维数组[][]维护落子情况
- 下完棋判断落子棋的水平,右上,右下,垂直的成五情况,以及和棋情况
- AI实现(简单,困难,噩梦)
- 简单AI(防守型AI,眼光短浅)
- 对棋盘局面落子位进行我方和对手打分,如果对手的最大分值大于我方最大分值则防守。
- 困难AI(进攻型AI,眼光短浅)
- 对棋盘局面落子位进行打分,并计算威胁分数,如果我方的威胁比对方威胁大,则进攻。
- 噩梦(进攻型,眼光一般)
- 由于组合爆炸,通过 alphabeta剪枝实现后五步预测。根据威胁打分结果进行落子
- 由于五步预测,对于AI来说眼光还是很短,加上了自己的一些剪枝方式但是感觉有些问题
- 其他
- 落子随机性,有些情况,由于多个位置分数相同,通过随机方式,防止对手发现程序弱点后,走上次输得棋局。
- 关于打分
- 简单AI(防守型AI,眼光短浅)
目前AI的棋力还是很弱的,稍微认真一点还是很好赢。个人技术有限,无法写出较好的AI。。