Exemple #1
0
        // true  - clockwise right
        // false - clockwise left
        // simple spin
        public bool Rotate(Part <T> part, bool orientation)
        {
            bool factor;
            int  side;

            part.Rotate(orientation);
            if (!isValid(part, out factor, out side))
            {
                part.Rotate(!orientation);
                if (factor)
                {
                    if (side == 1)
                    {
                        if (MoveLeft(part))
                        {
                            return(Rotate(part, orientation));
                        }
                    }
                    else
                    {
                        if (MoveRight(part))
                        {
                            return(Rotate(part, orientation));
                        }
                    }
                }
                return(false);
            }
            part.Sync();
            return(true);
        }
Exemple #2
0
 public bool MoveRight(Part <T> part)
 {
     part.MoveRight();
     if (!isValid(part))
     {
         part.MoveLeft();
         return(false);
     }
     part.Sync();
     return(true);
 }
Exemple #3
0
 public bool MoveDown(Part <T> part)
 {
     part.MoveDown();
     if (!isValid(part))
     {
         part.MoveUp();
         FillBoard(part);
         part.Delete();
         return(false);
     }
     part.Sync();
     return(true);
 }
Exemple #4
0
 private void SpawnPart(Part <T> part)
 {
     part.SetPos(SpawnPointX, SpawnPointY);
     part.Sync();
 }