/// <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); } }
/// <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)) )); }
internal static void ShowContent(Form form, String content, bool helpMode = false) { ShowContent contentWindow = new ShowContent { Owner = form }; contentWindow.InitializeForm(content, helpMode); contentWindow.Show(form); }
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); }
/// <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; }
/// <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); }
/// <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(); }
/// <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; } }
/// <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); }
/// <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()); } }