181-183 行 是否为 无意义代码

来源:2-7 方块固定、消行、游戏结束判定

创心

2017-12-29 23:55


10:09秒处 181-183 行  代码做什么用的,  代码逻辑  消除第0行(最高一层 ) 为空。 意义何在?



写回答 关注

6回答

  • 风之承
    2018-01-15 20:25:00
    已采纳

    你有其他联系方式吗?老师的代码没有错,这一部分的逻辑我整理很久,算是很通了,可以给你说一下。

    你上面的人的答案逻辑是对的,如果你理解不来,把你发的截图中的每一个if语句/for循环语句的功能完全明白,最好能够结合游戏矩阵画图表示前后变化,你明白了

    创心

    谢谢你 ,我自己能理解的方式写出来了。

    2018-01-17 22:28:27

    共 1 条回复 >

  • 啊五
    2019-02-10 17:27:24
    // 消行
    const checkClear = () => {
        for(let i=gameData.length-1; i>=0; i--){
            if(gameData[i].every(item => item === 1)){
            // 从底部开始,遍历是否有一行全为1,是则满足消行条件,将这一行抛出,并在gameData最顶端加一个空行
            gameData = [
                [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
                ...gameData.slice(0, i),
                ...gameData.slice(i + 1)
                ]
            }
        }
    }

    忍不住这么写。。。

  • 慕UI6159568
    2018-08-05 10:35:55

    16-19层 有放块, 19层消行, 16层跌落到17层,此时15层为空,同样会跌落到16层,即16层变为空(数据清除)

    因为最顶层(gameData[0])没有上一层了,需要手动将其设置为0,gameData[0][n] = 0

    注意循环遍历的是所有行,从最底层到最顶层,并不是到有方块的那层就停止

  • 那月真美
    2018-04-08 22:54:37

    为什么我的固定方法不起作用??!

  • 创心
    2018-01-01 12:35:48

    gameData[0][n] 永远代表清除第0行的数据  ,我16-19层 有放块, 19层消行, 16层跌落到17层, 原来16层数据并没有清除, 而是清除的0层数据, 老师把这里写死了,明显是录视频多次忘了改掉,实际运行会是个变量。

    风之承

    你有其他联系方式吗?老师的代码没有错,这一部分的逻辑我整理很久,算是很通了,可以给你说一下。 你上面的人的答案逻辑是对的,如果你理解不来,把你发的截图中的每一个if语句/for循环语句的功能完全明白,最好能够结合游戏矩阵画图表示前后变化,你明白了

    2018-01-15 20:24:35

    共 1 条回复 >

  • 晨曦之后继续晴
    2017-12-31 21:04:23

    我给你讲一下消行的整个逻辑,就是先一个大循环,遍历所有行,如果有一行是全1,就把所有方块往下移一行,对应的是gameData[m][n] = gameData[m-1][n]这段代码,然后最高层的就要变为空,也就是置0,也就是你问的。

基于websocket的火拼俄罗斯(单机版)

前端大牛带你实现单机版俄罗斯方块!

31668 学习 · 111 问题

查看课程

相似问题