我罗斯方块汇报1
| 作业属于哪个课程 | 2020福大面向对象程序设计 |
|---|---|
| 作业要求 | 我罗斯方块汇报(1) |
| 作业地址 | 我罗斯方块汇报1 |
| 代码位置 | 项目地址 |
| 小组成员 | 031902602 陈志良、031902601 陈帅、031902629 杨寓荃 |
| 参考资料 |
考虑了一些需要解决的问题:
- 方块的旋转以什么为中心,如果直接以定义时的4*4区域旋转会出现方块反而向上移动的情况。最终决定,当使用旋转键时,直接在区域内代入旋转后图形对应的数值。如旋转前对应的方块形状编号为1,旋转后对应编号为2,则直接将当前方块区域内的赋值情况用编号为2的替代。
- 当方块靠近墙壁时,需要限制旋转的情况,由于方块在区域内占据的长宽不同,需要对每种方块的旋转限制单独进行考虑。
初始完成部分:
- 不同方块种类的初定义
int block00[4][4] = { { 10,0,0,0 },{ 0,0,0,0 },{ 1,1,1,1 },{ 0,0,0,0 } };
int block01[4][4] = { { 10,0,1,0 },{ 0,0,1,0 },{ 0,0,1,0 },{ 0,0,1,0 } };//长条形方块
int block02[4][4] = { { 11,0,0,0 },{ 0,0,0,0 },{ 1,1,1,0 },{ 0,1,0,0 } };
int block03[4][4] = { { 11,0,0,0 },{ 0,1,0,0 },{ 1,1,0,0 },{ 0,1,0,0 } };
int block04[4][4] = { { 11,0,0,0 },{ 0,0,0,0 },{ 0,1,0,0 },{ 1,1,1,0 } };
int block05[4][4] = { { 11,0,0,0 },{ 0,1,0,0 },{ 0,1,1,0 },{ 0,1,0,0 } };//凸形方块
int block06[4][4] = { { 12,0,0,0 },{ 0,0,0,0 },{ 1,1,1,0 },{ 1,0,0,0 } };
int block07[4][4] = { { 12,0,0,0 },{ 1,1,0,0 },{ 0,1,0,0 },{ 0,1,0,0 } };
int block08[4][4] = { { 12,0,0,0 },{ 0,0,0,0 },{ 0,0,1,0 },{ 1,1,1,0 } };
int block09[4][4] = { { 12,0,0,0 },{ 0,1,0,0 },{ 0,1,0,0 },{ 0,1,1,0 } };//拐杖形方块
int block10[4][4] = { { 13,0,0,0 },{ 0,0,0,0 },{ 1,1,0,0 },{ 0,1,1,0 } };
int block11[4][4] = { { 13,0,0,0 },{ 0,0,1,0 },{ 0,1,1,0 },{ 0,1,0,0 } };//折形方块
int block12[4][4] = { { 14,0,0,0 },{ 0,0,0,0 },{ 1,1,0,0 },{ 1,1,0,0 } };//正方形方块
每个区域左上角的数字用于区别五种方块的种类,以便后续进行上色以及旋转时改变区域所对应的值。
- 随机生成方块
int* roundBlock(){
int num;
num=rand()%13;
switch(num){
case 0:return block00;
case 1:return block01;
case 2:return block02;
case 3:return block03;
case 4:return block04;
case 5:return block05;
case 6:return block06;
case 7:return block07;
case 8:return block08;
case 9:return block09;
case 10:return block10;
case 11:return block11;
case 12:return block12;
}
}

浙公网安备 33010602011771号