質問: temp[shape.length -x -1]y]; } } } ``` しかし、オブジェクト指向的な設計を目指すなら、ブロックを4つ持っていると言う方が良いですよね。 ブロックが保持する内容は以下の二通りが考えられますが、いずれも問題点があり、私には良い解決方法が見当たりません。 1.フィールドの中のどこに位置しているかを表す座標 この場合、回転させるという処理を書くのがすごく大変です。 2.回転軸からの相対座標(この場合、テトリミノが回転軸の座標を保持) この場合、回転させる処理は簡潔に書けそうですが、回転軸がブロックの中心にあるものと、交差点にあるものにより、保持する内容が異なってしまいます。 いずれかの良い問題解決の方法、それがないならこの二つ以外に良い方法があれば教えてください。
回答: これはクラス設計というよりデータ構造設計と表現することが多い分野になると思いますが、答えはわりと簡単です。 回転軸という概念は設計者の頭の中にだけおいておいて、プログラムに回転処理はさせないのが最もシンプルです。最初から各テトリミノが4種類のビットパターンを持っていてそれを切り換えるだけとすれば十分ですから。