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° 回転させます。簡単にするために、2 種類のブリックのみがアルゴリズムによって回転されます。それらは「L」文字と「L」の逆です。入力ファイルから、この 2 つのレンガの 4 つの異なる組み合わせを取得できます。アルゴリズムはブリックを時計回りに回転させ、実行可能ファイルと同じ場所にある出力ファイルに結果行列を書き込む必要があります。入力ファイル名は「input.txt」、出力ファイル名は「output.txt」です。入力として与えられた場合、プログラムは以前に作成した出力ファイルでブリックを回転させることができます。サンプルの入力ファイルと出力ファイルは添付ファイルにあります。

4

1 に答える 1

0

アルゴリズムを探している場合。それなら、まずピボット要素を見たほうがいいと思います。回転が行われる場所。入力の (4,4) 要素がピボットのようです。もちろん形状にもよりますが。時計回りに 90 度回転するには、ピボットを中心に形状を再生成するだけです。そして、出力が得られます。

于 2013-05-19T15:35:45.937 に答える