俄罗斯方块
1.游戏区: ◆游戏区可以划分成20行12列,共20*12个小方块区域。可以使用一个二维数组来表示。如int m_iMap[20][12], 其值为1表示有方块,为0表示 无方块。 ◆每个图形由4个小方块构成,共有7种组合,其ID定义如下: 0 1 2 3 4 5 6 @@@@ @@ @ @@ @@ @ @ @@ @@@ @@ @@ @@@ @@@ ◆当前图形:可以用一个4元素的数组来表示,如CPoint m_ptCurrent[4],其中保存方块的坐标值,如(3,5)表示该方块位于第3行第5列,不要 直接保存像素坐标值。小方块的长度和宽度的像素值(如20)可以保存在一个宏常量GRID_SIZE中。 ◆下一图形的ID:可以用一个数表示,如m_iNextShapeID ◆每种图形可以进行90度翻转,7种图形衍生出19种变化。翻转状态可以用m_iRoateState记录,0表示初始状态,1、2、3分别表示旋转90度、 180度、270度后的状态。 ◆左键:使当前方块向左移动一格。m_ptCurrent [i].x – 1 ◆右键:使当前方块向右移动一格。m_ptCurrent [i].x + 1 ◆下键:使当前方块向下移动一格。m_ptCurrent [i].y + n, n表示难度级别 ◆上键:使当前方块顺时针旋转90度。计算出4个小方块新的坐标位置m_ptCurrent[4]。