public WorkForm() { InitializeComponent(); aiFactories = WorkManager.GetAIs(); foreach (var ai in aiFactories) { AiList.Items.Add(ai.Name, ai.Name, 0); } }
private async void SimulateButton_Click(object sender, EventArgs e) { if (!running) { running = true; } else { return; } if (!Int32.TryParse(RunCount.Text, out Int32 runCount)) { return; } WorkManager manager = new WorkManager(); List <IAiFactory> selectedAis = aiFactories.Where(t => AiList.SelectedItems.ContainsKey(t.Name)).ToList(); TimeUsed.Text = "Working..."; var stopwatch = Stopwatch.StartNew(); (var results, var worstSim, var worstAi) = await manager.Simulate(selectedAis, runCount); stopwatch.Stop(); TimeUsed.Text = stopwatch.Elapsed.TotalSeconds.ToString(); _renderSim = worstSim; _renderAiFactory = worstAi; if (_renderSim != null && _renderSim.HasError) { MessageBox.Show("ERROR"); } foreach (var aiFactory in results.Keys) { var stat = results[aiFactory]; if (Results.Rows.Count == 0) { DataGridViewRow row = new DataGridViewRow(); Results.Rows.Add(row); } (var meanMoves, var meanPower, var meanSamples, var sampleStdDev) = stat; Results.Rows[0].SetValues(aiFactory.Name, meanMoves.ToString("F2"), meanPower.ToString("F2"), meanSamples.ToString("F2"), sampleStdDev.ToString("F2")); } running = false; }