form1.cs

来自「解压包里的是用C#写的100个例子」· CS 代码 · 共 639 行 · 第 1/2 页

CS
639
字号

        }
#endregion

        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.Run(new Form1());

        }


        private void key_press(object sender, System.Windows.Forms.KeyEventArgs e)
        {
            if (flag ==0)
            {
                string keyId = e.KeyCode.ToString();
                switch (keyId)
                {
                    case "Right":LeftPress();
                        break;
                    case "Left":RightPress();
                        break;
                    case "Down":UpPress();
                        break;
                    case "Up":DownPress();
                        break;
                }
            }
        }
        private void assign()
        {
            if(numbers[0] != -1)
                b1.Text = numbers[0].ToString();
            else
            {
                b1.Text = "*";
                b1.Visible = false;
            }
            if(numbers[1] != -1)
                b2.Text = numbers[1].ToString();
            else
            {
                b2.Text = "*";
                b2.Visible = false;
            }
            if(numbers[2] != -1)
                b3.Text = numbers[2].ToString();
            else
            {
                b3.Text = "*";
                b3.Visible = false;
            }
            if(numbers[3] != -1)
                b4.Text = numbers[3].ToString();
            else
            {
                b4.Text = "*";
                b4.Visible = false;
            }
            if(numbers[4] != -1)
                b5.Text = numbers[4].ToString();
            else
            {
                b5.Text = "*";
                b5.Visible = false;
            }
            if(numbers[5] != -1)
                b6.Text = numbers[5].ToString();
            else
            {
                b6.Text = "*";
                b6.Visible = false;
            }
            if(numbers[6] != -1)
                b7.Text = numbers[6].ToString();
            else
            {
                b7.Text = "*";
                b7.Visible = false;
            }
            if(numbers[7] != -1)
                b8.Text = numbers[7].ToString();
            else
            {
                b8.Text = "*";
                b8.Visible = false;
            }
            if(numbers[8] != -1)
                b9.Text = numbers[8].ToString();
            else
            {
                b9.Text = "*";
                b9.Visible = false;
            }
            if(numbers[9] != -1)
                b10.Text = numbers[9].ToString();
            else
            {
                b10.Text = "*";
                b10.Visible = false;
            }
            if(numbers[10] != -1)
                b11.Text = numbers[10].ToString();
            else
            {
                b11.Text = "*";
                b11.Visible = false;
            }
            if(numbers[11] != -1)
                b12.Text = numbers[11].ToString();
            else
            {
                b12.Text = "*";
                b12.Visible = false;
            }
            if(numbers[12] != -1)
                b13.Text = numbers[12].ToString();
            else
            {
                b13.Text = "*";
                b13.Visible = false;
            }
            if(numbers[13] != -1)
                b14.Text = numbers[13].ToString();
            else
            {
                b14.Text = "*";
                b14.Visible = false;
            }
            if(numbers[14] != -1)
                b15.Text = numbers[14].ToString();
            else
            {
                b15.Text = "*";
                b15.Visible = false;
            }
            if(numbers[15] != -1)
                b16.Text = numbers[15].ToString();
            else
            {
                b16.Text = "*";
                b16.Visible = false;
            }


        }
        public void RightPress()
        {
            int chk;
            int loc;
            int swap;
            loc = locator();
            if (((loc+1)%4) == 0)
                return;
            swap = numbers[loc+1];
            numbers[loc+1] = -1;
            numbers[loc] = swap;
            MakeVisible();
            assign();
            chk = CheckForCompletion();
            lbl3.Text = count.ToString();
            if (chk == 0)
            {
                count++;
                lbl3.Text = count.ToString();
            }
            if (chk == 1)
            {
                flag = 1;
                lbl1.Visible = true;
            }
        }
        public void LeftPress()
        {
            int chk;
            int loc;
            int swap;
            loc = locator();
            if ((loc%4) == 0)
                return;
            swap = numbers[loc-1];
            numbers[loc-1] = -1;
            numbers[loc] = swap;
            MakeVisible();
            assign();
            chk = CheckForCompletion();
            lbl3.Text = count.ToString();
            if (chk == 0)
            {
                count++;
                lbl3.Text = count.ToString();
            }
            if (chk == 1)
            {
                flag = 1;
                lbl1.Visible = true;
            }

        }
        public void UpPress()
        {
            int chk;
            int loc;
            int swap;
            loc = locator();
            if (loc<=3)
                return;
            swap = numbers[loc-4];
            numbers[loc-4] = -1;
            numbers[loc] = swap;
            MakeVisible();
            assign();
            chk = CheckForCompletion();
            lbl3.Text = count.ToString();
            if (chk == 0)
            {
                count++;
                lbl3.Text = count.ToString();
            }
            if (chk == 1)
            {
                flag = 1;
                lbl1.Visible = true;
            }

        }
        public void DownPress()
        {
            int chk;
            int loc;
            int swap;
            loc = locator();
            if (loc>11)
                return;
            swap = numbers[loc+4];
            numbers[loc+4] = -1;
            numbers[loc] = swap;
            MakeVisible();
            assign();
            chk = CheckForCompletion();
            lbl3.Text = count.ToString();
            if (chk == 0)
            {
                count++;
                lbl3.Text = count.ToString();
            }
            if (chk == 1)
            {
                flag = 1;
                lbl1.Visible = true;
            }

        }
        private int locator()
        {
            int i;
            for (i=0; i<=15; i++)
            {
                if (numbers[i] == -1)
                    break;
                else continue;
            }
            return i;
        }
        private int CheckForCompletion()
        {
            int j;

            for (int i=0; i<=15; i++)
            {
                if (numbers[i] == -1)
                    numbers[i] = 16;
            }
            for (j=0; j<=14; j++)
            {
                if (numbers[j]>numbers[j+1])
                    break;
            }
            if (j == 15)
                return 1;
            else
            {
                for (int i=0; i<=15; i++)
                {
                    if (numbers[i] == 16)
                        numbers[i] = -1;
                }
                return 0;
            }

        }

        private void MakeVisible()
        {
            b1.Visible = true;
            b2.Visible = true;
            b3.Visible = true;
            b4.Visible = true;
            b5.Visible = true;
            b6.Visible = true;
            b7.Visible = true;
            b8.Visible = true;
            b9.Visible = true;
            b10.Visible = true;
            b11.Visible = true;
            b12.Visible = true;
            b13.Visible = true;
            b14.Visible = true;
            b15.Visible = true;
            b16.Visible = true;
        }
    }

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?