1

我必须为俄罗斯方块游戏编写旋转功能。我在 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形?或者我怎样才能做出这样的输出?谢谢。

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

4

1 回答 1

0

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

于 2013-05-19T15:35:45.937 回答