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

博主花费3天时间用JavaScript实现了围棋界面和基本逻辑,包括棋盘绘制和提子等操作。遇到的难点在于判断提子和落子合法性,通过二维数组处理棋子的气,并递归检查相邻棋子。已解决大部分bug,但打劫功能尚未完成,下一步计划完善更多功能和界面,目标是实现幽灵围棋。
摘要由CSDN通过智能技术生成

到今天为止闷头肝了3天,用js达成了围棋界面,实现了一定的基本逻辑(提子之类的2333)

棋盘的画法参考了这篇文章和代码,感觉还是很容易理解的(呃……:before和:after伪元素的使用还是很不熟练啊……

http://blog.csdn.net/sinat_38077266/article/details/72730203

在逻辑上难点主要在于提子和落子是否合法(禁入点)的操作,这就跟棋子的气相关了(用个二维数组吧233)。我这里是在每次落子时进行判断。先判断这个落子是否能触发提子,如果能提子的话就不需要判断这个落子是否合法了,否则就要判断这个落子是否合法。虽说判断顺序是先提子后合法,然而写代码函数的时候先写的是是否合法。这里通过递归得到与落子相连的棋子,同时判断相连的棋子是否有气(因为递归所以可能会发生重复判定导致死循环,所以需要另一个二维数组来判定是否判定过该棋子),只要有一个棋子有气就说明这块棋是不会被提子的,即落子是不会导致这个棋子所在的这块棋没气,即落子是合法的。

回过头来说为什么要先写这个合法函数,因为这个函数能判定棋的死活,那样在提子的函数里调用这个函数就会方便许多

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值