Пример #1
0
 public static void RightRotate(MyPoint[,] background, Boxes box)
 {
     box.clockwise();
     if (!Tools.Compare(background, box))
     {
         box.anticlockwise();
     }
 }
Пример #2
0
 private void 开始ToolStripMenuItem_Click(object sender, EventArgs e)
 {
     time   = 60;
     box    = new Boxes();
     newbox = new Boxes();
     DrawpictureBox1();
     DrawpictureBox2();
     timer1.Enabled = true;
     timer2.Enabled = true;
     timer3.Enabled = true;
 }
Пример #3
0
 public static void MoveDown(MyPoint[,] background, Boxes box)
 {
     box.NewY++;
     if (Tools.Compare(background, box))
     {
         box.Y = box.NewY;
     }
     else
     {
         box.NewY--;
     }
 }
Пример #4
0
 public static void MoveRight(MyPoint[,] background, Boxes box)
 {
     box.NewX++;
     if (Tools.Compare(background, box))
     {
         box.X = box.NewX;
     }
     else
     {
         box.NewX--;
     }
 }
Пример #5
0
 public static void MergeBackground(ref MyPoint[,] background, Boxes box)
 {
     for (int i = -2; i < 2; i++)
     {
         for (int j = 1; j >= -2; j--)
         {
             if (box.points[i + 2, j + 2] == 1)
             {
                 background[i + box.Y + 2, j + box.X + 2].number = box.points[i + 2, j + 2];
                 background[i + box.Y + 2, j + box.X + 2].color  = box.color;
             }
         }
     }
 }
Пример #6
0
        public static bool Compare(MyPoint[,] background, Boxes box)
        {
            for (int i = -2; i < 2; i++)
            {
                for (int j = 1; j >= -2; j--)
                {
                    if ((background[i + box.NewY + 2, j + box.NewX + 2].number & box.points[i + 2, j + 2]) == 1)
                    {
                        return(false);
                    }
                }
            }

            return(true);
        }
Пример #7
0
        public static void DrawNewBoxes(Graphics g, Boxes box)
        {
            g.Clear(Color.White);
            Pen   p = new Pen(box.color, 1);
            Brush b = p.Brush;

            int[,] points = box.points;
            for (int i = 0; i < 4; i++)
            {
                for (int j = 0; j < 4; j++)
                {
                    if (points[i, j] == 1)
                    {
                        g.DrawRectangle(p, j * Boxes.R, i * Boxes.R, Boxes.R, Boxes.R);
                        g.FillRectangle(b, j * Boxes.R + 1, i * Boxes.R + 1, Boxes.R - 2, Boxes.R - 2);
                    }
                }
            }
        }
Пример #8
0
 private void timer2_Tick(object sender, EventArgs e)
 {
     if (box != null)
     {
         box.NewY++;
         if (Tools.Compare(background, box))
         {
             box.Y = box.NewY;
         }
         else
         {
             box.NewY--;
             Tools.MergeBackground(ref background, box);
             box    = newbox;
             newbox = new Boxes();
             DrawpictureBox2();
             Tools.RemoveBox(ref background);
         }
     }
 }
Пример #9
0
        public static void DrawBoxes(Graphics g, Boxes box)
        {
            Pen   p = new Pen(box.color, 1);
            Brush b = p.Brush;

            int[,] points = box.points;
            int x = box.X;
            int y = box.Y;

            for (int i = -2; i < 2; i++)
            {
                for (int j = -2; j < 2; j++)
                {
                    if (points[i + 2, j + 2] == 1)
                    {
                        g.DrawRectangle(p, (x + j) * Boxes.R, (y + i) * Boxes.R, Boxes.R, Boxes.R);
                        g.FillRectangle(b, (x + j) * Boxes.R + 1, (y + i) * Boxes.R + 1, Boxes.R - 2, Boxes.R - 2);
                    }
                }
            }

            g.Dispose();
        }