單擊俄羅斯方塊,課程2-7 消行函數出現顯示異常
課程鏈接:http://www.xianlaiwan.cn/video/15604
代碼如下:
for(var i=gameData.length-1; i>=0; i--) {
? ?// 創建標志位
? ?var clear = true;
? ?// 檢查該行是否符合條件——存在數據不為1、clear為false
? ?for(var j=0; j<gameData[i].length; j++) {
? ? ? ?if(gameData[i][j] != 1) {
? ? ? ? ? ?clear = false;
? ? ? ? ? ?break; // 結束該內循環,進入下一個內循環或者結束
? ? ? ?}
? ?}
? ?// 經歷上面步驟,需要消除該行:上面每一行下移,第一行置0;i++
? ?if(clear) {
? ? ? ?for(var m=i; m>0;m--) {
? ? ? ? ? ?gameData[m] = gameData[m-1];? ? ?// 引起異常代碼
? ? ? ? ? ?// for(var n=0; n<gameData[m].length; n++) {
? ? ? ? ? ?// ? ? gameData[m][n] = gameData[m-1][n];
? ? ? ? ? ?// }
? ? ? ?}
? ? ? ?// 第一行置0
? ? ? ?for(var n=0; n<gameData[0].length; n++) {
? ? ? ? ? ?gameData[0][n] = 0;
? ? ? ?}
? ? ? ?i++
? ?}
}
(1)中間加粗傾斜代碼引起異常,異常代碼下面的注釋代碼為可替換的正常代碼
(2)只有產生一次消行操作后,才會出現下面截圖的顯示異常:方塊重影、沒有及時消除
(2)
2018-05-13
?for(var j=0; j<gameData[i].length; j++) {
? ?i改為0
2018-02-04
數組深拷貝
2018-01-15
題目是“單機俄羅斯方塊,課程2-7……”