乙個簡單的俄羅斯方塊實現

2021-06-15 10:25:21 字數 1707 閱讀 1857

最近在看《.net遊戲程式設計入門經典 c#篇》 第一章介紹了如何製作俄羅斯方塊,自己試了試按照書上的步驟,可算是完成了。

於是寫下這篇文章留作紀念。

1.類的設計

在充分分析遊戲的特點後,遊戲大概可以分為3個類:square小正方形,block由4個小正方形組合成的乙個圖形,gamefield遊戲的驅動引擎

2.**的編寫

按照從小到大,從簡單到複雜的順序,先完成square類,square很簡單,只需要提供show,hide方法以及size,location屬性。

接下來是block,block相對比較複雜,分為以下幾種:

它應該有4個square 編號可以按照個人習慣,當然之後計算座標的時候也要根據個人的編號來進行。

block應該有hide,show,left,right,rotate一些方法,屬性的話為了計算座標 應該有square的大小,還有color

要注意的是rotate方法將block順時針旋轉90°,圖上已經標出旋轉的中心。

最後剩下的就是gamefield了,他應該有乙個陣列,儲存背景中所有的square,以及哪些位置有square的 位標誌陣列,對每一行的檢查(是否消去得分)以及消去所有方塊下移操作。

這些類完成後就可以簡單的寫遊戲邏輯了,因為太簡單就不說了,簡單的貼一下**

private block currentblock;

private block nextblock;

private int score;

private bool blockfalling;

private void button1_click(object sender, eventargs e)

private void form1_load(object sender, eventargs e)

private void form1_keydown(object sender, keyeventargs e)

switch (e.keycode)

}private void timer1_tick(object sender, eventargs e)

}else

if (!blockfalling)

picturebox2.invalidate();

currentblock = new block(new point(gamefield.width / 2 * gamefield.squaresize, 0), nextblock.blocktype);

currentblock.show(gamefield.winhandle);

nextblock = new block(new point(15, 15), block.blocktypes.undefined);

nextblock.show(picturebox2.handle);

blockfalling = true;}}

private void form1_activated(object sender, eventargs e)

3.總結

這個簡單的遊戲,可謂是剛好適合新手。可以學到衝突檢測(checklines),遊戲中基本元素與遊戲驅動的理解。

俄羅斯方塊的簡單實現

也是很早很早的東西了 p 這是我幾年以前寫的 seven puzzles 該遊戲為dos版,可在鄙人主頁http sss ic.yeah.內找到 裡的俄羅斯方塊的實現方法,當時接觸程式設計僅半年而已,希望可以給初學者一點幫助。幾乎沒有寫什麼 而且後階段方塊旋轉 消去方面更是只大致介紹了一點方法,不過...

C 實現俄羅斯方塊

c 實現俄羅斯方塊 一 實驗介紹 1.1 實驗內容 本節實驗我們進行設計俄羅斯方塊前的思路分析,以及介紹ncurses 庫的使用方法。1.2 實驗知識點 c 程式設計基礎 ncurses 庫的使用 俄羅斯方塊邏輯設計 1.3 實驗環境 xfce 終端 g 編譯器 ncurses 庫 1.4 適合人群...

用C 實現俄羅斯方塊

include using namespace std 構造完成標誌 bool sign false 建立數獨矩陣 int num 9 9 函式宣告 void input void output bool check int n,int key int dfs int n 主函式 int main ...