1,先定义一个struct shape{
int xy[];
int color;
int next;
}shapes[]={};
该形状的下一个序号:shapes[i].next
那么下一个形状就应该是:struct shape shapeId = shapes[shapes[index].next];
shapeId.xy[i] = 1;
这样写是可以的,但是如果直接写成shapes[shapes[index].next].xy[i] = 1;
这样却是不可以的。是什么原因呢?问了下师兄,被告知可能是结构shape里构造函数的原因,如果shape里有一个默认的拷贝构造函数,那这样写应该是可以的,找个时间实验一下。
2,enum bool rowFull(int y){
int i;
for (i = 1; i < 11; i++)
if (!board[i][y])
return NO;
/* else */ return YES;
}
判断数组中的一行或一列全为真时,上处有无else可以说影响很大,无else则可以正确判断,有else则结果完全不一样。
总结,当然还有很多问题,上面两个问题是自己认为比较重要的总结出来,希望自己以后写程序能少走弯路。
俄罗斯方块总结
最新推荐文章于 2024-05-14 06:12:33 发布