如何在C中将矩阵中的形状旋转90度?

时间:2013-05-18 19:04:32

标签: c rotation

我必须为俄罗斯方块游戏编写旋转功能。我在10x10的txt文件中有砖块 尺寸矩阵,我需要抓住砖的位置(L形)并顺时针旋转90ᵒ。

输入:

0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0
0 0 0 1 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0

并且输出必须如下:

0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 1 1 1 0 0 0 0
0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0

我可以将整个矩阵旋转90度,但它不像输出。我怎么才能旋转L形?或者我该如何制作这样的输出?感谢。

EDIT;这是一个问题:在这个作业中你将要写一个俄罗斯方块游戏的旋转功能。你有一个10x10的txt文件中的砖块 尺寸矩阵。您将抓住砖块位置并顺时针旋转90ᵒ。简单来说只有两种 砖将由您的算法旋转。它们是“L”字符和“L”的倒数。从输入文件 你可以采用这两块砖的4种不同组合。你的算法必须顺时针旋转砖块 将结果矩阵写入可执行文件的同一位置的输出文件中。 输入文件名是“input.txt”,输出文件名是“output.txt”。你的程序可以旋转砖块 如果它作为输入给出,它之前生成的输出文件。 示例输入和输出文件位于附件中。

1 个答案:

答案 0 :(得分:0)

如果您正在寻找算法。然后,我认为你应该首先看一下pivot元素。关于旋转发生的地方。似乎输入中的(4,4)元素是枢轴。当然,这取决于形状。对于顺时针旋转90度,只需围绕枢轴重新生成形状。你会得到输出。