public void AddChord()
    {
        if (CurrentChoosingChord == null)
        {
            SetMessage("There's no chosen chord!");
            return;
        }

        MazeButtonScript ButtonScript = (MazeButtonScript)CurrentChoosingChord.GetComponent <MazeButtonScript> ();
        UIButton         MyButton     = (UIButton)CurrentChoosingChord.GetComponent <UIButton> ();

        if ((ButtonScript.x == pX + 1 && ButtonScript.y == pY) || (ButtonScript.y == pY + 1 && ButtonScript.x == pX))
        {
            SetMessage("Add Chord Successfully!");
            MyChordsList.Add(ButtonScript.MyChord);
            pX = ButtonScript.x;
            pY = ButtonScript.y;
            CurrentChoosingChord  = null;
            MyButton.defaultColor = MyButton.pressed;
        }
        else
        {
            SetMessage("Cannot Forge a Path!");
            CurrentChoosingChord  = null;
            MyButton.defaultColor = DefalutColor;
            return;
        }
    }
    void CreateButton(string myChord, Vector3 position, int x, int y)
    {
        GameObject Clone = (GameObject)Instantiate(MazeButton, transform.position, transform.rotation);

        Clone.transform.parent        = GameObject.FindGameObjectWithTag("MazeUI").transform;
        Clone.transform.localScale    = new Vector3(1, 1, 1);
        Clone.transform.localPosition = position;
        MazeButtonScript CloneScript = (MazeButtonScript)Clone.GetComponent <MazeButtonScript> ();

        CloneScript.MyChord = myChord;
        CloneScript.x       = x;
        CloneScript.y       = y;
        CloneScript.GetLabel();
        CloneScript.SideLen = SidelenOfButton;
        CloneScript.SetSize();
    }
    public void ShowPath()
    {
        GameObject MazeUI = GameObject.FindGameObjectWithTag("MazeUI");

        ResetMazeButtonColor();
        if (IsShowPath == false)
        {
            foreach (Transform child in MazeUI.transform)
            {
                if (child.tag == "MazeButton")
                {
                    MazeButtonScript MyButton = (MazeButtonScript)child.GetComponent <MazeButtonScript> ();
                    if (VisitMatrix [MyButton.x, MyButton.y] == true)
                    {
                        child.GetComponent <UIButton> ().defaultColor = child.GetComponent <UIButton> ().pressed;
                        MyChordsList.Clear();
                        pX = -1;
                        pY = 0;
                    }
                }
            }
            IsShowPath = true;
        }
        else
        {
            foreach (Transform child in MazeUI.transform)
            {
                if (child.tag == "MazeButton")
                {
                    MazeButtonScript MyButton = (MazeButtonScript)child.GetComponent <MazeButtonScript> ();
                    if (VisitMatrix [MyButton.x, MyButton.y] == true)
                    {
                        child.GetComponent <UIButton> ().defaultColor = DefalutColor;
                    }
                }
            }
            IsShowPath = false;
        }
    }