俄羅斯方塊之五 完善Game類

2021-05-25 22:31:19 字數 1584 閱讀 5457

遊戲介面所有的小方塊物件都在二維陣列squarearray裡面,判斷陣列裡面的從低層到最頂層,每層裡面的所有列都有物件則這行消除。

5.1在game類裡寫個判斷是否為滿行的方法isfullline(int row),傳入當前行數。

code:

/// 

/// 判斷滿行

/// 

/// 

/// 

public

static

bool isfullline(int row)    

else

return

false;   

}  

5.2如過這次行全為空的話,就沒必要繼續判斷上面的行了,這裡還需要判斷是否為空行的方法public static bool isemptyline(int row),和判斷滿行同理。

5.3如果都有小方塊的物件的話,就將上面所有行往下移。

code:

/// 

/// 方塊下移

/// 

/// 

public

static

void movedown(int row)    

for (int j = 0; j < cols; j++) squarearray[0, j] = null;//清空最頂行

}   

}  

5.4 消除行數result++,再繼續判斷落下行的所有列,直到遍歷完所有行。如果有消層出現則將最上面的一行物件清除,即第0行。

code:

/// 

/// 檢測行

/// 

/// 

public

static

int checklines()    

else i--;        //檢測上一行

}   

return result;   

}  

5.5方塊行消除完後得到消除行數的積分,count通過 checklines()方法得到

5.6最後,需要將二維陣列裡面的物件重繪下,在這裡有需要注意下重繪的方塊是有很多小方塊組成的,五顏六色。我們要求顏色統一。那麼重繪方法,顏色不一樣,所以我們可以在square類中過載方法showsquare(),把周圍顏色和中心顏色傳參。

code:

/// 

/// 重繪介面中已有的方塊

/// 

public

static

void redarw()   

);   

}  

5.7遊戲總有失敗的時候,判斷遊戲結束checkgameover(block block),通過傳入當前初始化的方塊,通過其能不能落下判斷是否結束。

code:

/// 

/// 檢測遊戲是否失敗(用新出來的方塊能不能落下判斷)

/// 

/// 

/// 

public

static

bool checkgameover(block block)   

return

false;   

}  

俄羅斯方塊高階 AI俄羅斯方塊

前文回顧 致青春 python實現俄羅斯方塊 人工智慧大火的今天,如果還是自己玩俄羅斯方塊未免顯得太low,為什麼不對遊戲公升級,讓機器自己去玩俄羅斯方塊呢?有了這個想法之後利用週六週日兩天的時間去蒐集了大量的資料,在電腦宕機好多次之後終於將ai俄羅斯方塊實現了。所謂讓機器自己去玩俄羅斯方塊,就是讓...

俄羅斯方塊

俄羅斯方塊 tetris,俄文 是一款風靡全球的電視遊戲機 和掌上遊戲機遊戲,它由俄羅斯人阿列克謝 帕基特諾夫 發明,故得此名。俄羅斯方塊的基本規則是移動 旋轉和擺放遊戲自動輸出的各種方塊,使之排列成完整的一行或多行並且消除得分。由於上手簡單 老少皆宜,從而家喻戶曉,風靡世界。俄羅斯方塊的開發者是阿...

俄羅斯方塊

include include include include includeusing namespace std include include define mem a,b memset a,b,sizeof a const int sudu 40 const int dir 4 2 cons...