资源描述
俄罗斯方块程序设计思想总结
----汪细河 03071013 化机31班 环化学院
游戏区:
0 1 2 3 4 5 6 7 8 9 10
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
X,Y
声明一个二维数组:m_tu[31][11];
当 m_tu[x][y]=1; (x从0到29;y从1到9)。
画出绿框黑底的方框:
(200+10*(y-1),10+10*x,210+10*(y-1),20+10*x);
当 m_tu[x][y]=0; (x 从0到29;y从1到9)。
画出灰框灰底的方框:
(200+10*(y-1),10+10*x,210+10*(y-1),20+10*x);
下面以下图为例:
X,Y
定义此图:
可定义为:
m_tu[x][y]=1;
m_tu[x+1][y-1]=1; m_tu[x+1][y]=1; tu[x+1][y+1]=1;
此时就可以画出一个上述图形;
向左移动:
如果 m_tu[x][y-1]=1而且m_tu[x+1][y-2]=1时;
此时把y减小1;
由于当y减小1后 以前的m_tu[x][y-1]=1;
m_tu[x+1][y-2]=1; m_tu[x+1][y-1]=1; tu[x+1][y]=1;
如果不加修改会出现下面情况:
X,Y
应该在y减小前把原来方块对应的数组m_tu[][]=0;
然后y减小1;
向右、向下移采取同样的思想。
为了使方块不至于移到游戏区外面,我们可以把
m_tu[0][0]=m_tu[1][0]=…………. =m_tu[30][0]=1;
m_tu[0][10]=m_tu[1][10]=…………. =m_tu[30][10]=1;
m_tu[30][0]=m_tu[30][1]=…………. =m_tu[30][10]=1;
相当于在游戏区两侧和底面筑三堵墙使方块不能移出。
方块的变形:
当n=0时:
X,Y
当n=1时:
X,Y
当n=2时:
X,Y
当n=3时:
用VK_UP键为变形键:
当n=0时 如果m_tu[x+2][y]=0;
才使n增加1;
其他方块变形采取同样方法。
当n=3时,要变形的话,使n=0。
给出不同的方块:
申明变量m。
当m=0时 方块为“I”形状。
当m=1时 方块为“田”形状。
当m=2时 方块为“T”形状。
当m=3时 方块为“L”形状。
当m=4时 方块为倒“L”形状。
当m=5时 方块为倒“Z”形状。
当m=6时 方块为“Z”形状。
给m随机取从0到6之间的整数;
则会出现不同的方块。
消行:
当一行方格已经满了把这行变为空行(m_tu[][]=0)。
如果一行为空行,则在上面有m_tu[X][Y]=1
则m_tu[X][Y]=0,m_tu[X-1][Y]=1。
由于一次FOR循环只能移一行,而一次最多可消4行
用4次FOR循环就可以达到小行的效果!
展开阅读全文