我罗斯方块第一次汇报

这个作业属于哪个课程 2020面向对象程序设计
这个作业要求在哪里 <我罗斯方块汇报1>
这个作业的目标 汇报完成进度
项目地址 github 地址
其他参考文献 基于win32控制台应用程序的双人俄罗斯方块小游戏
俄罗斯方块-C语言(从0开始到有色界面)
小组成员 朱智成 031902632 杨家聪 031902627

方块类

class Blocks
{
	public:
    int space[4][4];
}blocks[7][4];
void Blocks::space   //初始化方块信息
{
	int i;
	///////////////////////////////////基础七个形状
	//倒置土字形
	for (i = 0; i < 3; i++)
		blocks[0][0].space[1][i]=1;
	blocks[0][0].space[2][1] = 1;
	//L形-1
	for(i=1;i<4;i++)
		blocks[1][0].space[i][1] = 1;
	blocks[1][0].space[1][2] = 1;
	//L形-2
	for(i=1;i<4;i++)
		blocks[2][0].space[i][2] = 1;
	blocks[2][0].space[1][1] = 1;
	for (i = 0; i < 2; i++)
	{
		//Z形-1
		blocks[3][0].space[1][i] = 1;
		blocks[3][0].space[2][i + 1] = 1;
		//Z形状-2
		blocks[4][0].space[1][i + 1] = 1;
		blocks[4][0].space[2][i] = 1;
		//田字形
		blocks[5][0].space[1][i + 1] = 1;
		blocks[5][0].space[2][i + 1] = 1;
	}
	//1字形
	for (i = 0; i < 4; i++)
	{
		blocks[6][0].space[i][2] = 1;
	}
	///////////////////////////////////7个基础形状的旋转状态space_z,旋转状态共计7*3+7=21+7种
	int base, space_z, j, tem[4][4];
	for (base = 0; base < 7; base++)
	{
		for (space_z = 0; space_z < 3; space_z++)
		{
			for (i = 0; i < 4; i++)
			{
				for (j = 0; j < 4; j++)
				{
					tem[i][j] = blocks[base][space_z].space[i][j];
				}
			}
			for (i = 0; i < 4; i++)
			{
				for (j = 0; j < 4; j++)
				{
					blocks[base][space_z + 1].space[i][j] = tem[4 - j - 1][i];	//控制一边坐标不变,另一边为4 - i - 1,然后再行列互换,这样可以保证四次旋转不同,如果仅仅行列互换,将会导致只有两种旋转状态
				}
			}
		}
	}
}
posted @ 2020-05-22 22:05  zzc0  阅读(162)  评论(0编辑  收藏  举报