Skip to content

strategist922/piece

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 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。。

About

五子棋实现(包括AI)

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 80.8%
  • HTML 12.7%
  • CSS 6.5%