Skip to content

LiHang941/piece

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 

Repository files navigation

js五子棋实现(包括AI)

五子棋开发流程

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

说明

目前AI的棋力还是很弱的,稍微认真一点还是很好赢。个人技术有限,无法写出较好的AI。。