/// <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); }
/// <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; }