俄罗斯方块88行 代码注释版 (一)
2012-07-06 11:06
204 查看
void trsInit() {
int sp[8][4] = {{15,4369},{23,785,116,547},{71,275,113,802},
{39,305,114,562},{54,561},{99,306},{51,51},{-1}};
int *p, i, j, b;
for (p = sp[0]; *p >= 0; ++p) if ( *p == 0 ) *p = p[-2]; //1,2,3,4四个形状中如果有3,4为空说明只有两个不重复的,如S形,这时3拷贝1的,4拷贝2的就行了
gt.pool = >._pool[4];
for (j = 0; j < 7; ++j)
for (i = 0; i < 4; ++i)
for (b = 0; b < 16; ++b)
gt.tmap[j+1][i][b] = (sp[j][i] & 1) * (j + 1),
sp[j][i] >>= 1;
memset(gt._pool, -1, sizeof(gt._pool));
for (i = 0; i < 10; ++i)
memset(>.pool[i], 0, sizeof(int[21]));
return ;
}
int trsCopy(int sp[], int x, int y, int c) {
//c为0就单纯的碰撞检测,c为1是复制,c为2就是反复制
int i, cx, cy;
for (i = 0; i < 16; ++i) if (sp[i]) {
cx = x + (i & 3), cy = y + (i >> 2); //i&3可以取到i所对应的列号,i>>2可以取到i所对应的行号
if (gt.pool[cx][cy])
if (c == 2) gt.pool[cx][cy] = 0; else return 0;
if (c==1) gt.pool[cx][cy] = sp[i]; //16个格子一起copy所以不会有残影什么的
}
return 1;
}
int sp[8][4] = {{15,4369},{23,785,116,547},{71,275,113,802},
{39,305,114,562},{54,561},{99,306},{51,51},{-1}};
int *p, i, j, b;
for (p = sp[0]; *p >= 0; ++p) if ( *p == 0 ) *p = p[-2]; //1,2,3,4四个形状中如果有3,4为空说明只有两个不重复的,如S形,这时3拷贝1的,4拷贝2的就行了
gt.pool = >._pool[4];
for (j = 0; j < 7; ++j)
for (i = 0; i < 4; ++i)
for (b = 0; b < 16; ++b)
gt.tmap[j+1][i][b] = (sp[j][i] & 1) * (j + 1),
sp[j][i] >>= 1;
memset(gt._pool, -1, sizeof(gt._pool));
for (i = 0; i < 10; ++i)
memset(>.pool[i], 0, sizeof(int[21]));
return ;
}
int trsCopy(int sp[], int x, int y, int c) {
//c为0就单纯的碰撞检测,c为1是复制,c为2就是反复制
int i, cx, cy;
for (i = 0; i < 16; ++i) if (sp[i]) {
cx = x + (i & 3), cy = y + (i >> 2); //i&3可以取到i所对应的列号,i>>2可以取到i所对应的行号
if (gt.pool[cx][cy])
if (c == 2) gt.pool[cx][cy] = 0; else return 0;
if (c==1) gt.pool[cx][cy] = sp[i]; //16个格子一起copy所以不会有残影什么的
}
return 1;
}
相关文章推荐
- 俄罗斯方块88行 代码注释版 (二)
- 俄罗斯方块88行 代码注释版 (四)
- 俄罗斯方块88行 代码注释版 (三)
- 88行代码实现俄罗斯方块游戏(含讲解)
- 88行代码的俄罗斯方块
- 【转载】88行代码实现俄罗斯方块游戏(含讲解)
- 88行代码实现俄罗斯方块游戏(含讲解)
- 史上最短小精悍的javascript编写的俄罗斯方块游戏,仅仅60行代码
- 逐步讲解用C#实现俄罗斯方块之核心代码[上]
- shell脚本编写的俄罗斯方块游戏代码
- 俄罗斯方块游戏JavaScript代码
- 史上最短小精悍的javascript编写的俄罗斯方块游戏,仅仅60行代码
- Python使用pygame模块编写俄罗斯方块游戏的代码实例
- 史上最短小精悍的javascript编写的俄罗斯方块游戏,仅仅60行代码
- 史上最短小精悍的javascript编写的俄罗斯方块游戏,仅仅60行代码
- 逐步讲解用C#实现俄罗斯方块之核心代码[中]
- 当年写的俄罗斯方块(现在更喜欢研究别人的代码)
- 60行代码:Javascript 写的俄罗斯方块游戏
- [转] 不错的俄罗斯方块程序代码(VC++版)
- 史上最牛逼的javascript俄罗斯方块,63行代码搞定啊