遊戲介面所有的小方塊物件都在二維陣列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...