/// <summary> /// 全合法手をダンプ。 /// </summary> /// <returns></returns> public string DumpToAllGohosyu(SkyConst src_Sky) { StringBuilder sb = new StringBuilder(); //sb.AppendLine("--------------------"); //sb.AppendLine("カレントノード内部データ"); //sb.AppendLine("--------------------"); src_Sky.Foreach_Starlights((Finger finger, IMoveHalf light, ref bool toBreak) => { // 番号 sb.Append("Fig."); sb.Append(finger); sb.Append(" "); RO_Star koma = Util_Starlightable.AsKoma(light.Now); // P1,P2 sb.Append(koma.Pside); sb.Append(" "); // 升00 sb.Append(Conv_Sy.Query_Word(koma.Masu.Bitfield)); sb.Append(" "); // 歩、香… sb.Append(Util_Komasyurui14.ToIchimoji(koma.Komasyurui)); sb.AppendLine(); }); return(sb.ToString()); }
/// <summary> /// インポート /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnImport_Click(object sender, EventArgs e) { ulong bitfield = 0;//FIXME: 暫定 string input = this.txtImport.Text; string[] definitions = input.Split(';'); foreach (string definition in definitions) { if (-1 != definition.IndexOf('∈')) { string[] operands = definition.Split('∈'); string[] elementWords; if (-1 != operands[0].IndexOf(',')) { elementWords = operands[0].Split(','); } else { elementWords = new string[] { operands[0] }; } SySet <SyElement> sySet = this.syDictionary.GetWord(operands[1]); if (null == sySet) { sySet = new SySet_Default <SyElement>(operands[1]); } foreach (string elementWord in elementWords) { sySet.AddElement(new SyElement_Default(bitfield)); Conv_Sy.Put_BitfieldWord(bitfield, elementWord); bitfield++; } this.syDictionary.AddWord(operands[1], sySet); } else if (-1 != definition.IndexOf('⊂')) { string[] operands = definition.Split('⊂'); string[] subsets; if (-1 != operands[0].IndexOf(',')) { subsets = operands[0].Split(','); } else { subsets = new string[] { operands[0] }; } SySet <SyElement> sySet_super = this.syDictionary.GetWord(operands[1]); if (null == sySet_super) { sySet_super = new SySet_Default <SyElement>(operands[1]); this.syDictionary.AddWord(operands[1], sySet_super); } foreach (string subset in subsets) { SySet <SyElement> sySet_subset = this.syDictionary.GetWord(subset); if (null == sySet_subset) { sySet_subset = new SySet_Default <SyElement>(subset); this.syDictionary.AddWord(subset, sySet_subset); } sySet_subset.AddSupersets(sySet_super); } this.syDictionary.AddWord(operands[1], sySet_super); } else { } } //this.txtImport.Text = ""; }
/// <summary> /// [検索]ボタン /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnFind_Click(object sender, EventArgs e) { this.txtElements.Text = ""; this.txtElements2.Text = ""; this.txtElements3.Text = ""; string wordStr = this.txtWord.Text.Trim(); SySet <SyElement> word = this.syDictionary.GetWord(wordStr); this.lblElementsComment.Text = $"一般的に{wordStr}は"; this.lblElementsComment2.Text = $"話題の{wordStr}は"; this.lblElementsComment3.Text = $"話題の{wordStr}は"; this.lblSupersetComment.Text = $"{wordStr}は"; if (null == word) { this.txtElements.Text = "φ"; this.txtSupersets.Text = "φ"; } else { //要素 { bool first = true; StringBuilder sb = new StringBuilder(); foreach (SyElement syElm in word.Elements) { if (first) { first = false; } else { sb.Append(","); } sb.Append(Conv_Sy.Query_Word(syElm.Bitfield)); } this.txtElements.Text = sb.ToString(); } //スーパーセット { bool first = true; StringBuilder sb = new StringBuilder(); foreach (SySet <SyElement> sySet in word.Supersets) { if (first) { first = false; } else { sb.Append(","); } sb.Append(sySet.Word); } this.txtSupersets.Text = sb.ToString(); } } }