C++ 俄罗斯方块 关于每种方块的定义是怎么办到的,求详解(就是说这些数字究竟代表什么)

////////////////////////////////////////////七种基本型/////////////////////////////////////////////////////////////////////////
void frame::init()
{
initb(2, 1, 0, 0, 2, 0, 0, 1, bloary[0][0]); /////
initb(2, 1, 0, 0, 2, 0, 0, 1, bloary[0][1]); /////
initb(2, 1, 0, 0, 2, 0, 0, 1, bloary[0][2]); /////■■
initb(2, 1, 0, 0, 2, 0, 0, 1, bloary[0][3]); /////■■

initb(2, 1, 0, 1, 4, 1, 6, 1, bloary[1][0]); /////■
initb(2, 1, 2, 0, 2, 2, 2, 3, bloary[1][1]); /////■
initb(2, 1, 0, 1, 4, 1, 6, 1, bloary[1][2]); /////■
initb(2, 1, 2, 0, 2, 2, 2, 3, bloary[1][3]); /////■

initb(2, 1, 0, 0, 0, 1, 4, 1, bloary[2][0]); /////
initb(2, 1, 2, 0, 4, 0, 2, 2, bloary[2][1]); /////
initb(2, 1, 0, 1, 4, 1, 4, 2, bloary[2][2]); /////■
initb(2, 1, 2, 0, 0, 2, 2, 2, bloary[2][3]); /////■■■

initb(2, 1, 4, 0, 0, 1, 4, 1, bloary[3][0]); /////
initb(2, 1, 2, 0, 2, 2, 4, 2, bloary[3][1]); /////
initb(2, 1, 0, 1, 4, 1, 0, 2, bloary[3][2]); ///// ■
initb(2, 1, 0, 0, 2, 0, 2, 2, bloary[3][3]); /////■■■

initb(2, 1, 2, 0, 0, 1, 4, 1, bloary[4][0]); /////
initb(2, 1, 2, 0, 4, 1, 2, 2, bloary[4][1]); /////
initb(2, 1, 0, 1, 4, 1, 2, 2, bloary[4][2]); /////■
initb(2, 1, 2, 0, 0, 1, 2, 2, bloary[4][3]); /////■■■

initb(2, 1, 2, 0, 4, 0, 0, 1, bloary[5][0]); /////
initb(2, 1, 2, 0, 4, 1, 4, 2, bloary[5][1]); /////
initb(2, 1, 2, 0, 4, 0, 0, 1, bloary[5][2]); ///// ■■
initb(2, 1, 2, 0, 4, 1, 4, 2, bloary[5][3]); /////■■

initb(2, 1, 2, 0, 4, 1, 0, 0, bloary[6][0]); /////
initb(2, 1, 2, 0, 0, 1, 0, 2, bloary[6][1]); /////
initb(2, 1, 2, 0, 4, 1, 0, 0, bloary[6][2]); /////■■
initb(2, 1, 2, 0, 0, 1, 0, 2, bloary[6][3]); ///// ■■
}
全部源代码在这 http://blog.sina.com.cn/s/blog_60e828560100nsrw.html

你只贴这个没用,这样贴上来是给人猜谜吗?
如果你对这个有疑问,请你翻倒initb()函数,或者最起码,你把它给贴上来吧?

再说句题外话,看过这么多俄罗斯方块的定义,这种应该是属于比较差的

==========
你都不知道追问吗?直接贴在问题补充要不是我正好点回来看谁看得见?
这个他的定义是这样的, bloary[a][b]是一个能存储4个坐标的结构体,比如第一行
initb(2, 1, 0, 0, 2, 0, 0, 1, bloary[0][0]);
这就存储了一个坐标分别的2,1 0,0 2,0 0,1 的方块形状。这里可以看到方块是离散的,也就是每行中间还夹了一个空白的坐标,作者用这个空白坐标来显示了方块中间的间距
至于一种形状为什么要initb四次,这个是因为他要做旋转,每旋转一次就调用下一行定义的坐标。

说实话 ,这俄罗斯方块写得真的是相当的差。可读性低不说,程序逻辑也不清不楚,代码效率也很低。如果你想学习写俄罗斯,不建议看这个。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-25
看起来就是一个点阵,相当于一个二维的数组,每一位是0或1,通过里边数字来确定形状的