新手用C++ 整tetris 有問題解決唔到 麻煩各位高手幫幫手...

void Game::clearLine(){
        for(int i=height+1;i>1;i--){
                int moveDownBy=0;
                if(lineClear(i)){
                        for(int counter=0;counter<4;counter++){
                                if(lineClear(i-counter)){
                                        moveDownBy++;
                                        numOfRowClear++;
                                }
                        }


                        for(int k=i;k>0;k--){       

                                for(int j=1;j<width+1;j++){


                                        if((k-moveDownBy)<1)
                                                break;

                                        gameField[k][j]=gameField[k-moveDownBy][j];
                                        gameField[k-moveDownBy][j]=' ';

                                }
                        }
                }
        }

}

我將2-4層連續消ga時候就無問題
但係一到 中間有夾層就會食左 中間本來唔應該消個行 同埋會有一行無消...

例如:   [十個@ 一行]                  理應消完變:

                                                      
       @@          @@                           
    @@@@@@@@
    @@@@@@@@
    @@@@@@@@                   |       @@        @@
@@@@@@@@@@               |   @@@@@@@@
@@@@@@@@@@               |   @@@@@@@@
    @@        @@@@                  |   @@@@@@@@
@@@@@@@@@@               |    @@       @@@@   


但係就變左做



        @@        @@
    @@@@@@@@
    @@@@@@@@
    @@@@@@@@
@@@@@@@@@@     


求各位指點一下應該點諗... / 點改D code

本帖最後由 hihihi123hk 於 2016-4-13 22:48 編輯

回覆 1# wkg0724


   
唔好邊改個 Arr 邊做 forloop, 咁樣好容易出錯

重新畫一個 Arr, 只要 full line 就忽略唔畫,Logic 會簡單極多

k = 0

for i in height
  if( ! isFullLine(arr(i])) {
        for j in width
            newArr[k][j] = arr(i][j]
         end for

          k ++
   }
end for

return newArr

via HKEPC Ionic Reader v1.2.9 - iPhone

TOP

回覆  wkg0724


   
唔好邊改個 Arr 邊做 forloop

重新畫一個 Arr, 只要 full line 就忽略唔畫,Logic ...
hihihi123hk 發表於 2016-4-13 22:38


唔該晒師兄
我E家消化一下 試下改

TOP