您的位置:首页 > Web前端 > JavaScript

呼呼(js围棋基本功能达成~)

2018-03-12 23:34 239 查看
到今天为止闷头肝了3天,用js达成了围棋界面,实现了一定的基本逻辑(提子之类的2333)
棋盘的画法参考了这篇文章和代码,感觉还是很容易理解的(呃……:before和:after伪元素的使用还是很不熟练啊……)
http://blog.csdn.net/sinat_38077266/article/details/72730203

在逻辑上难点主要在于提子和落子是否合法(禁入点)的操作,这就跟棋子的气相关了(用个二维数组吧233)。我这里是在每次落子时进行判断。先判断这个落子是否能触发提子,如果能提子的话就不需要判断这个落子是否合法了,否则就要判断这个落子是否合法。虽说判断顺序是先提子后合法,然而写代码函数的时候先写的是是否合法。这里通过递归得到与落子相连的棋子,同时判断相连的棋子是否有气(因为递归所以可能会发生重复判定导致死循环,所以需要另一个二维数组来判定是否判定过该棋子),只要有一个棋子有气就说明这块棋是不会被提子的,即落子是不会导致这个棋子所在的这块棋没气,即落子是合法的。
回过头来说为什么要先写这个合法函数,因为这个函数能判定棋的死活,那样在提子的函数里调用这个函数就会方便许多了。
(代码不敢贴上来,因为感觉写得行数有点多了,还要再优化、再优化……)
刚刚修正了一大堆bug,最后终于成功地摆了一盘棋,过程没有出bug,这真的是让我太兴奋了:)))))))
(其实打劫的部分还没做 囧)
接下来工作就是完善其他功能和界面吧,目标是幽灵围棋的实现……这大概还有许多路要走吧……

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Javascript 围棋 心路