俄罗斯方块经典版是一款由俄罗斯人休闲游戏。它于阿列克谢·帕基特诺夫于1984年6月发明的,游戏规则简单,但想玩高分确实很有挑战,也许在现在看来,这款游戏算不得什么,但在当时俄罗斯方块真的是世界闻名!这款经典版也继承了经典的内涵!
先说思路,游戏主要有这么几个功能:
游戏主界面是10*20的格子,每轮随机创建一个形状的方块,总共有6种形状,方块每秒下降1格,遇到障碍无法下降时进入下一轮。方块可以旋转、移动、加速下落,格子界面有一行放满时可消除。游戏的主体是格子界面和6种不同形状方块的交互。编程就是用逻辑处理数据,要先有数据才能处理,因此我们先用数据把格子界面和方块描述出来。
格子界面很简单,是一个10 * 20的整型二维数组,空格子用0表示,否则用1表示。
#define BG_WIDTH 10
#define BG_HEIGHT 20
int backGround[BG_HEIGHT][BG_WIDTH] = { 0 };
每个方块的数据也是一个二维数组,根据方块的形状可知,用4*4的数组即可放下所有形状的所有方向数据。同样空格用0表示,否则用1表示。例如:
主要内容:
程序中有一个board数组,其中有要显示的部分,也有不显示的部分,不显示的部分都存储1。
如下图:
shape采用4*4数组(shape)保存。如:
0 0 0 0
0 1 0 0
1 1 1 0
0 0 0 0
另外用变量row和column保存shape数组左上角在board中的位置。
每次下落或左右移动,先对row和column做出改变,然后检测当前row和column下,shape是否重合了为1的格子,如果有重合,就说明shape出界了或者到达下落最低点,则要恢复row和column值。另外,如果是下落,还要将shape放在board上,并产生新的shape。
旋转时,先对shape数组进行旋转操作,然后检测重合,如果有重合,则反向旋转回来。
当然想学习C/C++的同学小编这里有一份C/C++得学习资料,加群:1022527323即可获取啦!
声明:本文内容来源于网络,如有侵权请联系删除