嗯,你给的代码有限,但我还是知道了燃雹仿个大概,应该是正确的,下面做简要说明:首先,俄罗斯方块里所有的方块都能在4x4的矩阵中用四个点坐标来表示先来看shape这个结构体变量,它有一个成员变量box,是个数组注意这两句for(ii=0;ii<2;ii++)if((shapes[box_num].box[ii])&mask)这说明了box是个长度为2的变量,如果box为unsigned char类型,那box长度就正好为2字节,16位,也就等于4x4,这就说明了box[2]是用来记录方块的。mask = 128,它的二进制就为 10000000mask/=2,等价于mask>>=2(自己可以证皮纤明的,呵呵)这里以一个正方形的方块为例肆岁每四位表示一行,行序储存■■00■■0000000000它的box变量的值就为box[0]11001100box[1]00000000第一次循环:ii =0i=0if((shapes[box_num].box[ii])&mask)//即为11001100&1000000为真,就画上一个方块之后mask/=2,那么mask就变成了01000000进入第二次循环ii=0i=1if((shapes[box_num].box[ii])&mask)//即为11001100&0100000仍为真,再画上一个方块mask再除等于2,变成00100000进入第三次循环ii=0i=2if((shapes[box_num].box[ii])&mask)//即为11001100&00010000这时就为假了,就不画它,进入下一次循环,后面就不再重复了,呵呵有问题加个qq吧,交个朋友,1504837063
相关文章
-
c语言问题,对于void f(x) 这是一个不返回值而且只有一个int类型的参数的函数原型吗?为什
2023-07-27 19:15 阅读(559) -
C语言里面有一行真看不懂了,求教各位srand((unsigned)time(NULL))拜托明白些
2023-07-27 07:07 阅读(576) -
c语言 sqrt()函数
2023-07-27 06:18 阅读(609)
1 C语言数组定义
640 阅读
2 C语言冒泡排序法
597 阅读
3 C语言qsort函数的用法,要详细的调用过程!
610 阅读
4 C语言的return 1和return 0
587 阅读
5 c语言中的getchar()和getch()有区别吗
624 阅读