1、棋盘生成
运用一个二维数组,初始值均为0,CSS修改好样式直接append到容器中。
2、点击下棋
为每个落棋点添加点击监听事件,先判断此处是否已有棋(获取点击处是第几个落棋点,计算其位于二维数组的坐标——第几行第几列,若为0,则无棋,可下),利用一个参数计算是奇数次点击还是偶数次点击,若奇为黑棋,若偶为白棋,动态在落棋点生成对应棋子。(可先设置好样式,点击直接添加class即可)同时进行胜利判断(见3)。
3、胜利判断
五子棋的胜利条件可分为4种,4种条件均需要判断是否满足其一,满足则胜利,详细介绍如下:
- 横向成五:
board[x][y+i]===w&&board[x][y+i+1]===w&&board[x][y+i+2]===w&&board[x][y+i+3]===w&&board[x][y+i+4]===w
- 纵向成五:
board[x+i][y]===w&&board[x+i+1][y]===w&&board[x+i+2][y]===w&&board[x+i+3][y]===w&&board[x+i+4][y]===w
- 左斜成五:
board[x+i][y+i]===w&&board[x+i+1][y+i+1]===w&&board[x+i+2][y+i+2]===w&&board[x+i+3][y+i+3]===w&&board[x+i+4][y+i+4]===w
- 右斜成五:
board[x+i][y-i]===w&&board[x+i+1][y-i-1]===w&&board[x+i+2][y-i-2]===w&&board[x+i+3][y-i-3]===w&&board[x+i+4][y-i-4]===w
双重循环,外层循环w从1到2,若满足条件之一,判断w为1或者2,1为白赢,2为黑赢。内层循环i从-4到0,逐一判断是否符合条件。
4、结束处理
若有一方胜利则进行结束处理,需要将数组重新赋0,棋子均remove()掉,下棋点击次数赋0.
获取代码链接:https://pan.baidu.com/s/1wXvfXlBfDv2ahYK8p9r4EQ
提取码:qow3