public async Task <NuspecReader> DownloadNuGetPackage(ScoreSettings settings, NuGetVersion version) { var logger = NullLogger.Instance; var cancellationToken = CancellationToken.None; var cache = new SourceCacheContext(); var repository = Repository.Factory.GetCoreV3("https://api.nuget.org/v3/index.json"); var resource = await repository.GetResourceAsync <FindPackageByIdResource>(); var packageId = settings.PackageName; var packageVersion = version; using var packageStream = new MemoryStream(); await resource.CopyNupkgToStreamAsync( packageId, packageVersion, packageStream, cache, logger, cancellationToken); using var packageReader = new PackageArchiveReader(packageStream); var nuspecReader = await packageReader.GetNuspecReaderAsync(cancellationToken); Console.WriteLine($"Tags: {nuspecReader.GetTags()}"); Console.WriteLine($"Description: {nuspecReader.GetDescription()}"); Console.WriteLine("Dependencies:"); foreach (var dependencyGroup in nuspecReader.GetDependencyGroups()) { Console.WriteLine($" - {dependencyGroup.TargetFramework.GetShortFolderName()}"); foreach (var dependency in dependencyGroup.Packages) { Console.WriteLine($" > {dependency.Id} {dependency.VersionRange}"); } } Console.WriteLine("Files:"); foreach (var file in packageReader.GetFiles()) { Console.WriteLine($" - {file}"); } Console.WriteLine("Libs:"); foreach (var lib in packageReader.GetLibItems()) { Console.WriteLine($" - {lib.TargetFramework.GetShortFolderName()}"); } return(nuspecReader); }
/// <summary> /// Set to default settings /// </summary> private void MetroButtonSetDefault_Click(object sender, EventArgs e) { // Set the default settings metroTextBoxCutOffScore.Text = 50.ToString(); metroToggleInclCutoff.Checked = false; metroTextBoxAscore.Text = 5.ToString(); metroTextBoxBscore.Text = 10.ToString(); metroTextBoxYscore.Text = 10.ToString(); metroTextBoxScoreDividerLoss.Text = 2.ToString(); metroTextBoxAIsoScore.Text = 5.ToString(); metroTextBoxBIsoScore.Text = 10.ToString(); metroTextBoxYIsoScore.Text = 10.ToString(); metroTextBoxLossDividerIsoScore.Text = 2.ToString(); // Save the settings ScoreSettings.Save(); }
/// <summary> /// 获取用户实例以及积分。 /// </summary> /// <param name="id">用户Id。</param> /// <returns>返回当前视图。</returns> public async Task <IActionResult> OnGetAsync(int id) { CurrentUser = await _userManager.FindByIdAsync(id); if (CurrentUser == null) { return(NotFound()); } CurrentScore = await _scoreManager.GetScoreAsync(id); ScoreSettings = await GetSettingsAsync <ScoreSettings>(); Input = new InputModel { UserId = id, Score = 1000 }; return(Page()); }
public GeneticSimulator(PopulationSettings populationSettings, ScoreSettings scoreSettings, GameSettings gameSettings) { var gameFactory = CreateGameFactory(gameSettings, scoreSettings, UpdateGameBoardAsync); var offspringGameFactory = CreateGameFactory(gameSettings, scoreSettings, null); _populationFitnessFunction = new SnakeGameFitnessFunction(gameFactory); _offspringFitnessFunction = new SnakeGameFitnessFunction(offspringGameFactory); _population = new Population ( populationSettings, new PointBasedCrossoverOperator(), new SoftmaxSelectionOperator(), new MutationOperator(), () => (Individual)gameFactory.CreatePlayer() ); _population.GenerationCompleted += OnGenerationFinished; _tokenSource = new CancellationTokenSource(); }
private IGameFactory CreateGameFactory(GameSettings gameSettings, ScoreSettings scoreSettings, Func <IPlayer, GameState, Task> onGameStateUpdated) { Func <List <IScoreCounter> > scoreCounters = () => new List <IScoreCounter> { new EatingScoreCounter(scoreSettings.ScoreForEating), new DistanceToFoodScoreCounter(scoreSettings.ScoreForCorrectWay, scoreSettings.ScoreForWrongWay) }; Func <List <IDataCollector> > dataCollectors = () => new List <IDataCollector> { new FoodLocationDataCollector(), new NearestCollisionsDataCollector(gameSettings.BoardSize) }; Func <List <IGameOverCondition> > gameOverConditionsFunc = () => new List <IGameOverCondition> { new MovesWithoutEatingCondition(100) }; return(new GeneticGameFactory(scoreCounters, dataCollectors, gameOverConditionsFunc, gameSettings, onGameStateUpdated)); }
/// <summary> /// 获取积分配置。 /// </summary> public async Task OnGetAsync() { Input = await GetSettingsAsync <ScoreSettings>(); }
/// <summary> /// Save the settings. /// </summary> private void MetroButtonSave_Click(object sender, EventArgs e) { ScoreSettings.Save(); }