網上關於 俄羅斯方塊的演算法很所,但是我覺得,他們的演算法不容易理解,但是我的演算法,比較簡單,容易理解,就是計算量大點,但是今天的計算機硬體高速發展,這都已經不是關鍵問題了!!
int shape[7][4][18]=,,,
},,,,
},,,,
},,,,
},,,,
},,,,
},,,,
}};這是俄羅斯方塊的關鍵矩陣。
其中,第一維的18,前 16 個整數表示 4*4 的方塊的形狀,後兩個變數,表示該形狀所佔的寬度和高度,以免方塊出界了。
第二維中的 4 表示方塊的 4 個方向的旋轉。
第三維中的 7 表示方塊的 7 中基本形狀。
所有情況的方塊寫到一陣列裡,作為一常量,以備呼叫。
例如:for(i=0;i<4;i++)
grid[height][i+colum]+=shape[shp][loop][i];
for(i=4;i<8;i++)
grid[height+1][i+colum-4]+=shape[shp][loop][i];
for(i=8;i<12;i++)
grid[height+2][i+colum-8]+=shape[shp][loop][i];
for(i=12;i<16;i++)
grid[height+3][i+colum-12]+=shape[shp][loop][i];
其中,grid,就是整個畫面的情況,用 0 和 1 表示,1表示有格仔,0表示沒有格仔,上述的程式段表示,在第 height 行 colum 列顯示 shape 形狀的方塊。
方塊的變形就是改變第一維的值了,方塊的旋轉就是改變第而維的值了。
至於其他的,什麼消去 ,隨機產生方塊啊,之類的問題,讀者自己琢磨吧!!
俄羅斯方塊高階 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...