public static IUCICommander Create (UCIAnalysisType type, IEngineInternals engine) { switch (type) { case UCIAnalysisType.TimeBased: return new TimeBasedCommander (engine); case UCIAnalysisType.ResultBased: return new ResultBasedCommander (engine); default: throw new InvalidProgramException (); } }
private IUCICommander GetCommander(UCIAnalysisType analysisMode) { var commander = UCICommander.Create (analysisMode, this as IEngineInternals); commander.Depth = this.Depth; commander.ThinkingDuration = this.ThinkingDuration; return commander; }