Ejemplo n.º 1
0
        /// <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());
        }
Ejemplo n.º 2
0
        /// <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 = "";
        }
Ejemplo n.º 3
0
        /// <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();
                }
            }
        }