为了账号安全,请及时绑定邮箱和手机立即绑定
对于颜色bug直接把me = !me写在判断里就行了呗:
if (chessBoard[i][j] == 0) {
oneStep(i, j, me);
if (me) {
chessBoard[i][j] = 1;
me = !me;
}
else {
chessBoard[i][j] = 2;
me = !me;
}
}
逻辑清楚,代码简洁,很好的学习素材,谢谢老师
老师讲得十分清楚!感谢!!!!
很厉害,建议学完一定要学老师的 俄罗斯方块, 保证让你学到更多东西。
有没有源码
然而按照老师的思路写的判断完全不会出现楼下说的颜色错误的bug→_→每次落子都会把对应数组元素改为1或者2,再点击的时候根本不会执行落子或是变色的操作,怎么会出现bug的。。。。
加个return 就可以解决啦
有一个小bug 比如我执黑先下了第一颗子,然后该执白了,执白时,我不小心点了在黑子上,然后我在点其他位置,那么悲剧发生了,下的是黑子,这个判断还要在加点“料”
其实这个有个bug吧!当你点击已经有了黑子!你在去点一次已经点了一次的黑子!下一次出现的是黑子!并不是白子;

最赞回答 / qq_几分秀_04105739
上面同学的说法不太对,不是因为方面操作吧。var x=e.offsetX;//获取的是相对于整个canvas容器的x坐标值var y=e.offsetY;//获取的是相对于整个canvas容器的y坐标值var i = Math.floor(x/30);var j = Math.floor(y/30);oneStep(i,j,me); //传入i,j值context.arc(15+i*30,15+j*30,13,0,2*Math.PI) ;//oneStep(i,j,me)里的画圆函数以上其实 可以 等同于...
var i = Math.floor(x / 30);,为什么是除以30

已采纳回答 / undarkness
-2是向上和左的偏移,内部阴影加inset。如果你是要说光线不应该是这么样,右下角有了左上角就不该有的话,那是他为了消除棋盘的纸片感偷懒用的方法,要css实现有厚度感的立体效果比较麻烦,还不如直接用图片,而且不是这讲的重点。
if (chessBoard[i][j] == 0) {
oneStep(i, j, me);
if (me) {
chessBoard[i][j] = 1;
}else{
chessBoard[i][j] = 2;
}
me = !me;

}
oneStep(i, j, me);
me != me;(这里原来是me = !me,只修改这里就不用点两次变色了)
老师用的是Sublime~
课程须知
本课程是前端中级课程 1、JS基础知识 2、Canvas基础知识
老师告诉你能学到什么?
1、canvas绘制五子棋棋盘 2、canvas绘制黑白棋子 3、五子棋交互逻辑处理

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消