俄罗斯方块88行 代码注释版 (一)
来源:互联网 发布:劳拉西泮片 知乎 编辑:程序博客网 时间:2024/05/22 19:26
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;
}
- 俄罗斯方块88行 代码注释版 (一)
- 俄罗斯方块88行 代码注释版 (二)
- 俄罗斯方块88行 代码注释版 (三)
- 俄罗斯方块88行 代码注释版 (四)
- 88行代码的俄罗斯方块
- c语音代码及注释“俄罗斯方块”
- 88行代码实现俄罗斯方块游戏(含讲解)
- 88行代码实现俄罗斯方块游戏(含讲解)
- 【转载】88行代码实现俄罗斯方块游戏(含讲解)
- 学习“俄罗斯方块-60行代码(网页版)“
- 60行代码俄罗斯方块
- 60行代码俄罗斯方块
- 60行代码俄罗斯方块
- 60行代码俄罗斯方块
- JS写俄罗斯方块完美注释版
- java代码注释规范(一)
- Java俄罗斯方块代码(转载)
- 自己动手写俄罗斯方块(一)
- Facebook首次参与亚太网关建设 进一步扩张亚洲市场
- 服务端缓存设置
- S3C6410外部中断裸机学习笔记(VIC模式)
- MFC_CDC
- Hibernate读书笔记---继承映射
- 俄罗斯方块88行 代码注释版 (一)
- try catch finally return 的执行顺序
- 自动发QQ消息脚本
- PKU3518 Prime Gap
- 1703 压力释放器
- android中获取手机分辨率
- Shell脚本修改crontab
- LPVOID
- ubuntu下利用dnw软件烧写OK6410开发板