public async Task Start(Action <KnbOptions> action) { var options = new KnbOptions(); action.Invoke(options); if (string.IsNullOrWhiteSpace(options.FileName)) { throw new ArgumentException(); } CardSelectorOptions.MlModelFileName = options.MlModelFileName; KnbSimulator = ServiceProvider.GetService <IKnbSimulator>() ?? throw new InvalidOperationException(); KnbSimulator.OnPeriodChange = OnPeriodChange ?? KnbSimulator.OnPeriodChange; KnbSimulator.OnPlayFinished = OnPlayFinished ?? KnbSimulator.OnPlayFinished; KnbSimulator.OnSimulatorStopped = OnSimulatorStopped ?? KnbSimulator.OnSimulatorStopped; await KnbSimulator.Start(op => { op.FileName = options.FileName; op.MlModelFileName = options.MlModelFileName; op.NoOfTimes = options.NoOfTimes; op.NoOfCardPacks = options.NoOfCardPacks; op.NoOfPlayers = options.NoOfPlayers; op.NoOfTimesPerPeriod = options.NoOfTimesPerPeriod; }); }
public void Stop() { KnbSimulator.Stop(); }