Beispiel #1
0
 /// <summary>
 /// Gets the hash code
 /// </summary>
 /// <returns>Hash code</returns>
 public override int GetHashCode()
 {
     unchecked // Overflow is fine, just wrap
     {
         int hashCode = 41;
         hashCode = hashCode * 59 + LineStartX.GetHashCode();
         hashCode = hashCode * 59 + LineStartY.GetHashCode();
         hashCode = hashCode * 59 + LineEndX.GetHashCode();
         hashCode = hashCode * 59 + LineEndY.GetHashCode();
         if (Title != null)
         {
             hashCode = hashCode * 59 + Title.GetHashCode();
         }
         if (Content != null)
         {
             hashCode = hashCode * 59 + Content.GetHashCode();
         }
         hashCode = hashCode * 59 + LineStartStyle.GetHashCode();
         hashCode = hashCode * 59 + LineEndStyle.GetHashCode();
         hashCode = hashCode * 59 + ShowContent.GetHashCode();
         hashCode = hashCode * 59 + LineWidth.GetHashCode();
         hashCode = hashCode * 59 + AbsoluteAnnotationLineWidth.GetHashCode();
         if (Color != null)
         {
             hashCode = hashCode * 59 + Color.GetHashCode();
         }
         return(hashCode);
     }
 }
Beispiel #2
0
        /// <summary>
        /// Returns true if LineAnnotationParameters instances are equal
        /// </summary>
        /// <param name="input">Instance of LineAnnotationParameters to be compared</param>
        /// <returns>Boolean</returns>
        public bool Equals(LineAnnotationParameters input)
        {
            if (input == null)
            {
                return(false);
            }

            return
                ((
                     LineStartX == input.LineStartX ||
                     LineStartX.Equals(input.LineStartX)
                     ) &&
                 (
                     LineStartY == input.LineStartY ||
                     LineStartY.Equals(input.LineStartY)
                 ) &&
                 (
                     LineEndX == input.LineEndX ||
                     LineEndX.Equals(input.LineEndX)
                 ) &&
                 (
                     LineEndY == input.LineEndY ||
                     LineEndY.Equals(input.LineEndY)
                 ) &&
                 (
                     Title == input.Title ||
                     (Title != null &&
                      Title.Equals(input.Title))
                 ) &&
                 (
                     Content == input.Content ||
                     (Content != null &&
                      Content.Equals(input.Content))
                 ) &&
                 (
                     LineStartStyle == input.LineStartStyle ||
                     LineStartStyle.Equals(input.LineStartStyle)
                 ) &&
                 (
                     LineEndStyle == input.LineEndStyle ||
                     LineEndStyle.Equals(input.LineEndStyle)
                 ) &&
                 (
                     ShowContent == input.ShowContent ||
                     ShowContent.Equals(input.ShowContent)
                 ) &&
                 (
                     LineWidth == input.LineWidth ||
                     LineWidth.Equals(input.LineWidth)
                 ) &&
                 (
                     AbsoluteAnnotationLineWidth == input.AbsoluteAnnotationLineWidth ||
                     AbsoluteAnnotationLineWidth.Equals(input.AbsoluteAnnotationLineWidth)
                 ) &&
                 (
                     Color == input.Color ||
                     (Color != null &&
                      Color.Equals(input.Color))
                 ));
        }
Beispiel #3
0
        internal static void ShowContent(Form form, String content, bool helpMode = false)
        {
            ShowContent contentWindow = new ShowContent {
                Owner = form
            };

            contentWindow.InitializeForm(content, helpMode);
            contentWindow.Show(form);
        }
Beispiel #4
0
        public override int GetHashCode()
        {
            var hashCode = 82135963;

            hashCode = hashCode * -1521134295 + EqualityComparer <IMutableSystemObjectDescription> .Default.GetHashCode(Description);

            hashCode = hashCode * -1521134295 + IsMarked.GetHashCode();
            hashCode = hashCode * -1521134295 + ShowContent.GetHashCode();
            return(hashCode);
        }
Beispiel #5
0
    /// <summary>
    /// 根据按键显示值
    /// </summary>
    /// <param name="plane"></param>
    private static void KeyShowValue(GameObject plane, int value)
    {
        if (main.inputNum < 0)
        {
            main.inputNum = 15;
        }
        int index = main.inputNum--;

        ShowContent.ChangValue(index, value, plane);
        main.listMajiangAuto[index] = value;
    }
Beispiel #6
0
    /// <summary>
    /// 跳出
    /// </summary>
    /// <returns></returns>
    private List <Hashtable> JumpOut(GameObject plane)
    {
        List <Hashtable> list  = new List <Hashtable>();
        Color            color = Color.magenta;

        for (int i = 16; i > 10; i = i - 4)
        {
            if (i < 16)
            {
                color = Color.green;
            }
            Hashtable ht = new Hashtable();
            ht.Add("First", listMajiangAuto[i - 1]);
            ht.Add("Second", listMajiangAuto[i - 3]);

            ShowContent.changeColor(i - 1, color, plane);
            ShowContent.changeColor(i - 3, color, plane);
            list.Add(ht);
        }

        color = Color.yellow;
        for (int i = 8; i > 2; i = i - 4)
        {
            if (i < 8)
            {
                color = Color.cyan;
            }
            Hashtable ht = new Hashtable();
            ht.Add("First", listMajiangAuto[i - 1]);
            ht.Add("Second", listMajiangAuto[i - 3]);

            ShowContent.changeColor(i - 1, color, plane);
            ShowContent.changeColor(i - 3, color, plane);
            list.Add(ht);
        }

        foreach (var item in list)
        {
            Debug.Log(Environment.NewLine + item["First"] + ":" + item["Second"]);
        }
        return(list);
    }
Beispiel #7
0
    /// <summary>
    /// 蹲出
    /// </summary>
    private List <Hashtable> SquatOut(GameObject plane)
    {
        List <Hashtable> listSquat = new List <Hashtable>();
        int count = 0;

        if (chkInput.isOn)
        {
            count = listMajiangAuto.Count;
        }
        else
        {
            count = listMajiangAuto.Count - 2;
        }

        Color color = Color.yellow;

        //第一行
        for (int i = 1; i <= 4; i++)
        {
            if (i % 2 == 0)
            {
                color = Color.green;
            }
            else
            {
                color = Color.yellow;
            }
            Hashtable ht = new Hashtable();
            ht.Add("First", listMajiangAuto[(count) / 2 - i]);
            ht.Add("Second", listMajiangAuto[(count) - i]);

            ShowContent.changeColor((count) / 2 - i, color, plane);
            ShowContent.changeColor((count) - i, color, plane);
            listSquat.Add(ht);
        }

        return(listSquat);
    }
 public void Show()
 {
     ShowContent.Begin();
 }
Beispiel #9
0
    /// <summary>
    /// 点击事件
    /// </summary>
    /// <param name="sender"></param>
    private void OnClick(GameObject sender)
    {
        string btnName = sender.name;

        if (btnName == "btnReset")
        {
            txtResult.text   = "结果:";
            txtOriginal.text = "原始大小:";
            EventHandler.Reset();
            LoadMaJing(majiangPlane);
        }
        else if (btnName == "btnChange")
        {
            sbData.Length = 0;
            showComputerResult("", "");
            ShowContent.showOriginal("", txtOriginal);
            //变换牌面
            //清除面上的所有子元素
            for (int i = 0; i < majiangPlane.transform.childCount; i++)
            {
                Destroy(majiangPlane.transform.GetChild(i).gameObject);
            }
            //重新加载
            GenerateMaJiang();
            for (int i = 0; i < movePlane.transform.childCount; i++)
            {
                Destroy(movePlane.transform.GetChild(i).gameObject);
            }
            LoadMaJing(movePlane);
        }
        else
        {
            //判断麻将值是否有效果
            foreach (var item in listMajiangAuto)
            {
                if (item == 0)
                {
                    txtResult.text = "请确认麻将值是否有效!";
                    return;
                }
            }
        }
        //恢复颜色
        RestoreColor();
        switch (btnName)
        {
        case "btnQuit":
            //退出应用程
            Application.Quit();
            break;

        case "btnSquat":
            sbData.Length = 0;
            showComputerResult("", "");
            ShowContent.showOriginal("", txtOriginal);
            //蹲出
            if (chkAuto.isOn)
            {
                SquatOutComputer();
            }
            else
            {
                ShowContent.ShowSort(SquatOut(majiangPlane), txtOriginal);
            }
            break;

        case "btnFlat":
            sbData.Length = 0;
            showComputerResult("", "");
            ShowContent.showOriginal("", txtOriginal);
            if (chkAuto.isOn)
            {
                FlatOutComputer();
            }
            else
            {
                //平出
                ShowContent.ShowSort(FlatOut(majiangPlane), txtOriginal);
            }

            break;

        case "btnJump":
            sbData.Length = 0;
            showComputerResult("", "");
            ShowContent.showOriginal("", txtOriginal);
            if (chkAuto.isOn)
            {
                JumpOutComputer();
            }
            else
            {
                //跳出
                ShowContent.ShowSort(JumpOut(majiangPlane), txtOriginal);
            }
            break;

        case "btnLeftMove":
            sbData.Length = 0;
            showComputerResult("", "");
            ShowContent.showOriginal("", txtOriginal);
            //左称一位
            LeftMoveMaJing();
            break;

        case "btnRightMove":
            sbData.Length = 0;
            showComputerResult("", "");
            ShowContent.showOriginal("", txtOriginal);
            //右移一位
            RightMoveMaJing();
            break;

        default:
            break;
        }
    }
Beispiel #10
0
    /// <summary>
    /// 左移算法
    /// </summary>
    private string MoveComputer(string type, int dir)
    {
        List <Hashtable>         oldList = null;
        List <Hashtable>         result;
        List <List <Hashtable> > finalList = new List <List <Hashtable> >();

        for (int num = 0; num < 1; num++)
        {
            switch (dir)
            {
            case 0:
                //右移
                LoopComputer.ClockwiseeMove(listMajiangAuto);
                break;

            case 1:
                //左移
                LoopComputer.InverseMove(listMajiangAuto);
                break;

            default:
                break;
            }

            switch (type)
            {
            case "SquatOut":
                //蹲出
                oldList = SquatOut(majiangPlane);
                break;

            case "FlatOut":
                //蹲出
                oldList = FlatOut(majiangPlane);
                break;

            case "JumpOut":
                //蹲出
                oldList = JumpOut(majiangPlane);
                break;

            default:
                break;
            }
            result = MaJiang.Comparison(oldList);
#if UNITY_EDITOR
            for (int i = 0; i < listMajiangAuto.Count - 2; i++)
            {
                //显示指定的牌
                ShowContent.ChangValue(i, listMajiangAuto[i], majiangPlane);
            }
#endif
            // ShowSort(oldList);
            List <Hashtable> resultList = AutoComputer(oldList, result, num, 1);
            finalList.Add(resultList);
        }
        Debug.Log(finalList.Count);
        string showValue = "";
        int    count     = 0;
        foreach (var item in finalList)
        {
            string valueSort = "";
            foreach (var table in item)
            {
                valueSort += table["Sorting"];
            }
            string[] outDoor = dicResult["outDoor"];
            foreach (var itemOutDoor in outDoor)
            {
                if (valueSort == itemOutDoor)
                {
                    Debug.Log("出门" + valueSort);
                    count++;
                    showValue += MoveNum(valueSort + "->", count, "出门", dir);
                }
            }
            string[] endDoor = dicResult["endDoor"];
            foreach (var itemEndDoor in endDoor)
            {
                if (valueSort == itemEndDoor)
                {
                    Debug.Log("末门" + valueSort);
                    count++;
                    showValue += MoveNum(valueSort + "->", count, "末门", dir);
                }
            }
            string[] banker = dicResult["banker"];
            foreach (var itemBanker in banker)
            {
                if (valueSort == itemBanker)
                {
                    Debug.Log("庄家" + valueSort);
                    count++;
                    showValue += MoveNum(valueSort + "->", count, "庄家", dir);
                }
            }
            Debug.Log(valueSort);
        }
        return(showValue);
    }
Beispiel #11
0
        /// <summary>
        /// 列表显示内容
        /// </summary>
        private void ShowBegin()
        {
            try
            {
                //获取设置的显示顺序
                StringBuilder selectOrder = new StringBuilder(255);
                PublicClass.GetPrivateProfileString("SelectOrder", "SelectOrderValue", " ", selectOrder, 255,
                                                    _configPath);
                //获取显示信息
                DataTable dtShow = BllShowInfo.GetShowStateInfo(selectOrder.ToString());
                showContents = new List <ShowContent>();
                for (int i = 0; i < dtShow.Rows.Count; i++)
                {
                    //判断开始结束时间进行显示
                    if (Convert.ToDateTime(dtShow.Rows[i]["BeginTime"]) <= DateTime.Now && Convert.ToDateTime(dtShow.Rows[i]["EndTime"]) >= DateTime.Now)
                    {
                        if (showInfo.ContainsKey(dtShow.Rows[i]["Id"].ToString()))
                        {
                            continue;
                        }
                        string content   = string.Empty;//一个编组序好
                        int    configNum = Convert.ToInt32(dtShow.Rows[i]["ConfigNum"]);

                        //列表
                        Panel panel = new Panel()
                        {
                            Dock = DockStyle.Top, Height = 70
                        };
                        if (Convert.ToInt32(dtShow.Rows[i]["ByOrder"]) == 0)//顺序
                        {
                            for (int j = 0; j < configNum; j++)
                            {
                                content += (j + 1) + ",";
                            }
                            panel.BackColor = Color.FromArgb(224 + i * 3, 224, 224);
                        }
                        else
                        {
                            for (int j = configNum; 0 < j; j--)//倒序
                            {
                                content += j + ",";
                            }
                            panel.BackColor = Color.FromArgb(224, 224 + i * 3, 224 + i * 3);
                        }
                        string order = Convert.ToInt32(dtShow.Rows[i]["ByOrder"]) == 0 ? "正序" : "倒序";
                        Label  label = new Label()
                        {
                            Dock = DockStyle.Bottom, Font = new Font("微软雅黑", 13), Height = 70
                        };
                        label.Text = "区域:" + dtShow.Rows[i]["AreaName"].ToString() + "     配置编号 " + dtShow.Rows[i]["ConfigName"].ToString()
                                     + "    时间段:" + dtShow.Rows[i]["BeginTime"].ToString() + "-" + dtShow.Rows[i]["EndTime"].ToString() + "   编组:"
                                     + configNum + "     开始屏幕:" + dtShow.Rows[i]["ScreenID"].ToString() + "     顺序:" + order + "     序号:" + content.Remove(content.LastIndexOf(","), 1);
                        showInfo.Add(dtShow.Rows[i]["Id"].ToString(), Convert.ToDateTime(dtShow.Rows[i]["BeginTime"]));

                        //已显示的内容临时保存
                        ShowContent showContent = new ShowContent()
                        {
                            ConfigName  = dtShow.Rows[i]["ConfigName"].ToString(),
                            GroupNum    = configNum,
                            BeginTime   = Convert.ToDateTime(dtShow.Rows[i]["BeginTime"]),
                            EndTime     = Convert.ToDateTime(dtShow.Rows[i]["EndTime"]),
                            AllContents = content.Remove(content.LastIndexOf(","), 1),
                            SingleTxt   = dtShow.Rows[i]["SingleTxt"].ToString(),
                            ScreenID    = Convert.ToInt32(dtShow.Rows[i]["ScreenID"]),
                            ByOrder     = Convert.ToInt32(dtShow.Rows[i]["ByOrder"]),
                            AddressNum  = Convert.ToInt32(dtShow.Rows[i]["AddressNum"]),
                        };
                        if (!showContents.Contains(showContent))
                        {
                            showContents.Add(showContent);
                        }
                        panel.Controls.Add(label);
                        panel.Tag = dtShow.Rows[i]["Id"].ToString();
                        pnlContent.Controls.Add(panel);

                        BllShowInfo.UpdateShowState(dtShow.Rows[i]["ID"].ToString(), 1);//已显示更新状态
                    }
                }

                //到结束时间,不显示
                for (int i = 0; i < dtShow.Rows.Count; i++)
                {
                    if (Convert.ToDateTime(dtShow.Rows[i]["EndTime"]) <= DateTime.Now)
                    {
                        foreach (Panel item in pnlContent.Controls)
                        {
                            if (item.Tag.Equals(dtShow.Rows[i]["ID"].ToString()))
                            {
                                pnlContent.Controls.Remove(item);
                                showInfo.Remove(dtShow.Rows[i]["ID"].ToString());
                                BllShowInfo.UpdateShowState(dtShow.Rows[i]["ID"].ToString(), 2);//显示结束更新状态
                            }
                        }
                    }
                    else
                    {
                        continue;
                    }
                }
                dtShow.Dispose();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }