예제 #1
0
        public void Rotate(Model.Turn turn)
        {
            if (FallingBlockSet == null)
            {
                return;
            }

            if (!CheckCrash(turn))
            {
                FallingBlockSet.Rotate(turn);
            }
            else if (!CheckCrash(turn, Direction.Left))
            {
                FallingBlockSet.Move(Direction.Left);
                FallingBlockSet.Rotate(turn);
            }
            else if (!CheckCrash(turn, Direction.Right))
            {
                FallingBlockSet.Move(Direction.Right);
                FallingBlockSet.Rotate(turn);
            }
            else if (FallingBlockSet is BlocksI)
            {
                if (!CheckCrash(1, 2, 0))
                {
                    FallingBlockSet.Move(Direction.Right);
                    FallingBlockSet.Move(Direction.Right);
                    FallingBlockSet.Rotate(turn);
                }
            }

            Show();
        }