public void GenerateAllInstances() { Console.WriteLine("extreme difficulty start"); RealInstanceToProblemConverter conv = new RealInstanceToProblemConverter() { InstanceDescription = @"Extreme difficulty.", }; GenerateInstancesForDifficulty("extreme", conv); Console.WriteLine("hard difficulty start"); conv.InstanceDescription = @"Hard difficulty."; conv.MinBeginingsMultiplier = 0.7; conv.MinEndsMultiplier = 0.7; conv.MinViewsMultiplier = 0.7; conv.MinTimesAiredMultiplier = 0.7; conv.MinTimesAiredOffset = -1; conv.MaxAdsPerBreakOffset = 1; conv.DefaultAdsInBetweenSame = 5; GenerateInstancesForDifficulty("hard", conv); Console.WriteLine("medium difficulty start"); conv.InstanceDescription = @"Medium difficulty."; conv.MinBeginingsOffset = -2; conv.MinBeginingsMultiplier = 0.5; conv.MinEndsOffset = -2; conv.MinEndsMultiplier = 0.5; conv.MinViewsMultiplier = 0.5; conv.MinTimesAiredMultiplier = 0.5; GenerateInstancesForDifficulty("medium", conv); Console.WriteLine("easy difficulty start"); conv.InstanceDescription = @"Easy difficulty."; conv.MinBeginingsMultiplier = 0.4; conv.MinEndsMultiplier = 0.4; conv.MinViewsMultiplier = 0.4; conv.MinTimesAiredMultiplier = 0.4; GenerateInstancesForDifficulty("easy", conv); Console.WriteLine("very easy difficulty start"); conv.InstanceDescription = @"Very easy difficulty."; conv.MinBeginingsMultiplier = 0.3; conv.MinEndsMultiplier = 0.3; conv.MinViewsMultiplier = 0.3; conv.MinTimesAiredMultiplier = 0.3; GenerateInstancesForDifficulty("very_easy", conv); Console.WriteLine("trivial difficulty start"); conv.InstanceDescription = @"Trivial difficulty."; conv.MinBeginingsMultiplier = 0.2; conv.MinEndsMultiplier = 0.2; conv.MinViewsMultiplier = 0.2; conv.MinTimesAiredMultiplier = 0.2; conv.MakeEverythingCompatible = true; GenerateInstancesForDifficulty("trivial", conv); }
private void GenerateInstancesForDifficulty(string difficultyLevel, RealInstanceToProblemConverter converter) { DirectoryInfo initial_dir = new DirectoryInfo(RealDataDirectory); var directories = initial_dir.GetDirectories(); foreach (var dir in directories) { GenerateInstancesFromDirectory(dir, difficultyLevel, converter); } }
private void GenerateInstance(string pathIn, string pathOut, RealInstanceToProblemConverter converter) { Generator instanceGenerator = new Generator { SourcePath = pathIn, OutputFilename = pathOut, InstanceConverter = converter, }; instanceGenerator.GenerateInstance(); }
private void GenerateInstancesFromDirectory(DirectoryInfo directory, string difficultyLevel, RealInstanceToProblemConverter converter) { string descName = Path.Combine(directory.FullName, "desc.txt"); if (File.Exists(descName)) { StreamReader descFile = new StreamReader(descName); string desc = descFile.ReadToEnd(); converter.InstanceDescription = desc; } foreach (var file in directory.GetFiles()) { if (file.Name == "desc.txt") { continue; } string newName = Path.GetFileNameWithoutExtension(file.Name) + ".json"; string newInstanceName = Path.Combine(InstanceDIrectory, difficultyLevel, directory.Name, newName); GenerateInstance(file.FullName, newInstanceName, converter); string newSolutionName = Path.Combine(ExampleSolutionDirectory, difficultyLevel, directory.Name, newName); GenerateSolution(file.FullName, newSolutionName); string newGradedSolutionName = Path.Combine(ExampleSolutionScoredDirectory, difficultyLevel, directory.Name, newName); GradeSolution(newInstanceName, newSolutionName, newGradedSolutionName); } }