注册 登录
编程论坛 C++教室

win32做个俄罗斯方块程序,关于七种方块组合图型数组定义是怎么理解的???求指导

li_danwang 发布于 2010-12-07 11:07, 2049 次点击
typedef struct tagPOINT
{
    LONG  x;
    LONG  y;
} POINT;//点结构

struct Block{ POINT a; POINT b; POINT c; POINT d; };//方块模型数据结构

static Block Tetris[7][4] =
{
    ¡õ¡õ
    ¡õ¡õ(1)
    {
        {{0,0},{0,1},{1,0},{1,1}}, {{0,0},{0,1},{1,0},{1,1}},
        {{0,0},{0,1},{1,0},{1,1}}, {{0,0},{0,1},{1,0},{1,1}}
    },
    ¡õ¡õ
      ¡õ¡õ(2)
    {
        {{0,0},{1,0},{1,1},{2,1}}, {{1,0},{1,1},{0,1},{0,2}},
        {{0,0},{1,0},{1,1},{2,1}}, {{1,0},{1,1},{0,1},{0,2}}
    },
     ¡õ¡õ
   ¡õ¡õ  (3)
    {
        {{1,0},{2,0},{0,1},{1,1}}, {{0,0},{0,1},{1,1},{1,2}},
        {{1,0},{2,0},{0,1},{1,1}}, {{0,0},{0,1},{1,1},{1,2}}
    },
    ¡õ¡õ¡õ¡õ(4)
    {
        {{0,0},{1,0},{2,0},{3,0}}, {{1,0},{1,1},{1,2},{1,3}},
        {{0,0},{1,0},{2,0},{3,0}}, {{1,0},{1,1},{1,2},{1,3}}
    },
     ¡õ
   ¡õ¡õ¡õ(5)
    {
        {{1,0},{0,1},{1,1},{2,1}}, {{0,0},{0,1},{1,1},{0,2}},
        {{0,0},{1,0},{2,0},{1,1}}, {{1,0},{0,1},{1,1},{1,2}}
    },
    ¡õ
    ¡õ¡õ¡õ(6)
    {
        {{0,0},{0,1},{1,1},{2,1}}, {{0,0},{1,0},{0,1},{0,2}},
        {{0,0},{1,0},{2,0},{2,1}}, {{1,0},{1,1},{0,2},{1,2}}
    },
        ¡õ
    ¡õ¡õ¡õ(7)
    {
        {{2,0},{0,1},{1,1},{2,1}}, {{0,0},{0,1},{0,2},{1,2}},
        {{0,0},{1,0},{2,0},{0,1}}, {{0,0},{1,0},{1,1},{1,2}}
    }
3 回复
#2
li_danwang2010-12-07 11:11
回复 楼主 li_danwang
¡õ¡õ
    ¡õ¡õ(1)
另外,像上面的这些乱码只是原来的注释,本来是七种方块组合图形,复制过来就变样子了...
#3
御坂美琴2010-12-08 09:01
比如第一组的{0,0},{0,1},{1,0},{1,1}
表示有方块的格子坐标集,这里就是表示一个2*2方形的方块

{0,0},{1,0},{2,0},{3,0}
这个就是长条,把这些看成坐标点你就很清晰了
#4
ljt2010-12-08 12:16
我以前是这样做的,写一个形状的结构体,里面存储了八个数字,也就是4个点的坐标了,比如一根条子有四个方格,我只要知道每个方格一个点的坐标,我就能够得到他对角点的坐标了(每个方格的大小有自己设定罗),next表示变形之后的方格
struct Shape  
{
    int xy[8];
    int next;   
};
下面这个就是19种形状,注意写出这个数组能你可以选定一种方法,你可以用顺时针推出来也可以逆时针
Shape shapes1[19]=
        {
            
            {0,0,0,-1,0,-2,0,-3,1},
            {0,0,1,0,2,0,3,0,0},  
            
            {0,0,1,0,0,-1,1,-1,2},

            
            {0,-1,0,-2,1,0,1,-1,4},
            
            {0,0,1,0,1,-1,2,-1,3},
            
            
            {0,0,0,-1,1,-1,1,-2,6},
            
            {0,-1,1,0,1,-1,2,0,5},
            
            
        
            {0,-2,1,0,1,-1,1,-2,8},
            
            {0,0,1,0,2,0,2,-1,9},
            
            {0,0,0,-1,1,-1,2,-1,10},
            
            {0,0,0,-1,0,-2,1,0,7},
            
            
            
            {0,0,0,-1,0,-2,1,-2,12},
            {0,0,1,0,1,-1,1,-2,13},
            
            {0,-1,1,-1,2,-1,2,0,14},
            
            {0,0,0,-1,1,0,2,0,11},
            


            
            {0,0,0,-1,0,-2,1,-1,16},
            
            {0,-1,1,0,1,-1,2,-1,17},
            
            {0,-1,1,0,1,-1,1,-2,18},
            
            {0,0,1,0,2,0,1,-1,15} };

[ 本帖最后由 ljt 于 2010-12-8 17:29 编辑 ]
1