Esempio n. 1
0
        /// <summary>
        /// ConsiderationEngineSettingから、UsiThinkLimitオブジェクトを構築して返すbuilder。
        /// </summary>
        /// <param name="setting"></param>
        /// <returns></returns>
        public static UsiThinkLimit FromConsiderationEngineSetting(ConsiderationEngineSetting setting)
        {
            UsiThinkLimit limit;

            if (setting.Limitless)
            {
                limit = TimeLimitLess;
            }
            else if (setting.TimeLimitEnable)
            {
                limit = FromSecond(setting.Second);
            }
            else if (setting.NodesLimitEnable)
            {
                limit = FromNodes(setting.Nodes);
            }
            else if (setting.DepthLimitEnable)
            {
                limit = FromDepth(setting.Depth);
            }
            else
            {
                limit = null;
            }

            return(limit);
        }
Esempio n. 2
0
        /// <summary>
        /// このControlにbindする。
        /// </summary>
        /// <param name="setting"></param>
        public void Bind(ConsiderationEngineSetting setting)
        {
            Setting = setting;

            // radio buttonなので、片側が必ず選択されていなければならない。
            if (!(setting.Limitless ^ setting.TimeLimitEnable))
            {
                setting.Limitless       = true;
                setting.TimeLimitEnable = false;
            }

            binder.Bind(setting, "PlayerName", textBox1);

            binder.Bind(setting, "Limitless", radioButton1);

            binder.Bind(setting, "TimeLimitEnable", radioButton2);
            binder.Bind(setting, "Second", numericUpDown1);

            binder.Bind(setting, "NodesLimitEnable", radioButton3);
            binder.Bind64(setting, "Nodes", numericUpDown2);

            binder.Bind(setting, "DepthLimitEnable", radioButton4);
            binder.Bind(setting, "Depth", numericUpDown3);

            ViewModel.EngineDefineFolderPath = setting.EngineDefineFolderPath;
        }