private void LoadFileButton_Click(object sender, EventArgs e) { var openFileDialog = new OpenFileDialog(); openFileDialog.DefaultExt = ".txt"; openFileDialog.Filter = "Text Files (*.txt)|*.txt"; openFileDialog.Multiselect = true; var result = openFileDialog.ShowDialog(); if (result == DialogResult.OK) { var filePaths = openFileDialog.FileNames; var isAnyDataLoaded = false; try { switch (currentFileType) { case FileTypeEnum.CityList: { if (filePaths.Length != 2) { ShowErrorForFileLoading("Please supply: \n1. City List, \n2. City Connections List"); return; } loadedData = FileLoader.LoadCitiesFromCityFiles(filePaths[0], filePaths[1]); loadedDataWithoutFill = FileLoader.CreateCopy(loadedData); ShortestPathHelper.FillRealDistances(loadedData); } break; case FileTypeEnum.GeneratedPoints: { var filePathToLoad = filePaths[0]; loadedData = FileLoader.LoadCitiesFromTestFile(filePathToLoad); ShortestPathHelper.FillEuclideanDistances(loadedData); } break; default: break; } isAnyDataLoaded = loadedData.Any(); } catch (Exception exception) { ShowErrorForFileLoading(exception.Message); return; } CalculateRouteButton.Enabled = isAnyDataLoaded; MaxPossiblePathsButton.Enabled = isAnyDataLoaded || currentFileType == FileTypeEnum.CityList; } }
private static void Execute(Bot bot, StringBuilder failsLog, StringBuilder stepCountLog, bool logAverage = false) { var failedCount = 0; var performanceSum = 0.0; var successfulEpisodes = 0; for (var episode = 0; episode < 200000; episode++) { if (episode % 10 == 0 && episode != 0) { if (logAverage) { stepCountLog.AppendFormat("{0}\n", performanceSum / successfulEpisodes); successfulEpisodes = 0; performanceSum = 0; } failsLog.AppendFormat("{0}\t{1}\n", episode, failedCount); failedCount = 0; } BotPosHelper.PlaceBot(bot); var shortestPath = ShortestPathHelper.GetMinStepCount(bot); var botSteps = bot.FindPrincess(); if (botSteps > -1 && !logAverage) { stepCountLog.AppendFormat("{0:0.00}\n", GetPerformance(botSteps, shortestPath)); } else if (botSteps == -1) { failedCount++; } if (botSteps > -1 && logAverage) { performanceSum += GetPerformance(botSteps, shortestPath); successfulEpisodes++; } } }