qq_慕斯卡7441008
代码呢
果冻儿可爱
可能你没有给number-cell加width和gheight
weixin_慕容2210335
感谢你的分享!我也是和你一样的问题,愣了我好久?
weixin_慕虎2267539
因为该函数判断的是中间路径上有没有障碍物。
比如你从A地到B地,这个函数只是看有没有去的路,而不关心B地能不能去。
拉丁方哥哥
这种情况按下canMoveLeft = false,所以按左是没用的,也不会产生随机数
慕娘4317301
得需要你提供下关键逻辑的代码。。。这么说不太好看问题啊
如果调试没错的话,那就是数组下标的处理有问题,只是程序不报错,但逻辑有缺陷 建议用笔画一下逻辑
别揪我小马尾
下了第四章第一节的代码看 有一个错误
support里最后那个函数命名应该是 function noBlockVertical(){ }
小小传奇
可能是调用方法的时候没传参
qq_无悔_25
删除什么了,错过了啥
慕村2307750
你好 请问你最后是怎么解决的呢
大朵阿妹
在updateBoardView()函数中,添加这句
theNumberCell.text(board[i][j]);
扌用扌包
代码呢,你看下可能是方法不同,或者数据有错误,我刚开始也是,后面就好了
爱学习的蔡瘦瘦
检查页面代码有没有报错
William666
webstorm。收费的 ,要破解
WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。
崔权
写错了一个变量,嗨
wddzc
就是判断jk之间的是否有数所以从col1+1开始
安歌公子
theNumberCell.css('left', getPosLeft(i,j)+50 ); 不需要+50
NullMoneyException
我知道问题了 判断错了 竖直方向移动 我却判断了它 能不能水平移动
侠客岛的含笑
在添加新元素的代码前面加上setTimeout(代码,200);
慕粉1006301048
同学,你的代码可以pull出来吗
蓝蜗牛7788
老师可能想表示的是:代码的上下文中,都是通过board的值来判定是否可以向上下左右移动或者判定路线上有没有障碍物的,你可以尝试着把函数里面没有用到的board参数删除,例如canMoveLeft(board),canMoveUp(board)里面的board参数,再运行代码,可以发现并不影响项目的运行。
野生前端菜鸟
for循环内部吧
for( var i = 0 ; i < 4 ; i ++ ){
for( var j = 1; j < 4 ; j ++ ){
if( board[i][j] != 0 ){
if( board[i][j-1] == 0 || board[i][j-1] == board[i][j] ){
return true;
}
}
}
}
return false;
慕沐6092693
源代码是只要有一个board[row][i]不等于0,函数就返回false,只有所有的board[row][i]都为0,函数才返回true。
而你写的代码意思完全不同,只要有一个board[row][i]等于0,函数就返回true,只有所有的board[row][i]都不等于0,才会返回false。
610661
你可以下载源代码对照一下,看自己到底哪一步写错了。
xuxianxiu
建议您去下载源码,对照一下
慕雪3673991
如这样
if (moveLeft()) {
setTimeout(generateOneNumber, 210);
setTimeout(isGameOver, 300);
}
慕雪3673991
function moveLeft(){
if( !canMoveLeft( board ) )
return false;
//moveLeft
for( var i = 0 ; i < 4 ; i ++ )
for( var j = 1 ; j < 4 ; j ++ ){
if( board[i][j] != 0 ){
for( var k = 0 ; k < j ; k ++ ){
if( board[i][k] == 0 && noBlockHorizontal( i , k , j , board ) ){
//move
showMoveAnimation( i , j , i , k );
board[i][k] = board[i][j];
board[i][j] = 0;
continue;
}
else if( board[i][k] == board[i][j] && noBlockHorizontal( i , k , j , board ) && !hasConflicted[i][k] ){
//move
showMoveAnimation( i , j , i , k );
//add
board[i][k] += board[i][j];
board[i][j] = 0;
//add score
score += board[i][k];
updateScore( score );
hasConflicted[i][k] = true;
continue;
}
}
}
}
setTimeout("updateBoardView()",200);
return true;
}
Forget_淡忘
我也遇到你这个情况,我看了下代码一样。请问你解决了这个问题了吗
浩浩学渣
我也觉得应该用break,因为如果k满足条件就是应该跳出循环呢,不需要再比较后边的k了,否则数字会来回移动
折风断尘
加油,这个课程对逻辑讲解的特别棒。