私はテトリスを構築していて、ピースを回転させる方法を考えようとしています。
それらは単一のブロックで回転していますか? それとも、モーフィングする必要がありますか...別名スワップポジションですか?
私が考えている方法は、一種のハードコードです...(疑似コード)のように:
if (rotateRight()) {
if (Piece == "T") {
if (Piece.getCurrRotation() == down (aka.. 180 degrees))
move each Tile in Piece from the down rotation to the left rotation... each coordinate would be pre-specified for a given condition... aka lot's of hardcoding
}
if (Piece == "L") { etc...
}
}
if (rotateLeft()) {
perform same checks for the Left...
}
しかし、これを理解するだけでも膨大な量のコードになるようです
最初に) 現在のピースがどの回転にあるか (各ピースには 4 つの可能な回転があります)
第二に)そこから...そのピースに基づいて新しいハードコードされた座標に設定します
ピースごとにそれをしなければならない... それは間違った考え方のように思えます。
他の考えはありますか?