public void TaskChanged() { var settings = LoadEvolutionSettings(); settings.task = EvolutionTaskUtil.TaskFromString(taskDropdown.captionText.text); SaveEvolutionSettings(settings); }
/// <summary> /// Loads the simulation from save file of format version 1. /// </summary> /// <param name="filename">The Filename has to end on .txt .</param> /// <param name="content">The Content of the save file.</param> private static void LoadSimulationFromSaveFileV1(string filename, string content, SplitOptions splitOptions, CreatureBuilder creatureBuilder, Evolution evolution) { var creatureName = filename.Split('-')[0].Replace(" ", ""); var components = content.Split(splitOptions.SPLIT_ARRAY, System.StringSplitOptions.None); // extract the save data from the file contents. var taskType = EvolutionTaskUtil.TaskForNumber(int.Parse(components[0].Replace(Environment.NewLine, ""))); var timePerGen = int.Parse(components[1].Replace(Environment.NewLine, "")); var creatureData = components[2]; CreatureSaver.LoadCreatureFromContents(creatureData, creatureBuilder); var bestChromosomesData = new List <string>(components[3].Split(splitOptions.NEWLINE_SPLIT, StringSplitOptions.None)); var bestChromosomes = new List <ChromosomeStats>(); foreach (var chromosomeData in bestChromosomesData) { if (chromosomeData != "") { var chromosomeInfo = ChromosomeInfo.FromString(chromosomeData); var chromosomeStats = new ChromosomeStats(chromosomeInfo.chromosome, new CreatureStats()); chromosomeStats.stats.fitness = chromosomeInfo.fitness; bestChromosomes.Add(chromosomeStats); } } var chromosomeComponents = components[4].Split(splitOptions.NEWLINE_SPLIT, StringSplitOptions.None); var currentChromosomes = new List <string>(); foreach (var chromosome in chromosomeComponents) { if (chromosome != "") { currentChromosomes.Add(chromosome); } } var currentGeneration = bestChromosomes.Count + 1; var settings = new EvolutionSettings(); settings.task = taskType; settings.simulationTime = timePerGen; settings.populationSize = currentChromosomes.Count; var networkSettings = new NeuralNetworkSettings(); evolution.Settings = settings; creatureBuilder.ContinueEvolution(evolution, () => { CreatureSaver.SaveCurrentCreatureName(creatureName); evolution.ContinueEvolution(currentGeneration, settings, networkSettings, bestChromosomes, currentChromosomes); }); }
/// <summary> /// Returns the chosen task based on the value of the taskDropDown; /// </summary> public EvolutionTask GetTask() { var taskString = taskDropdown.captionText.text.ToUpper(); var task = EvolutionTaskUtil.TaskFromString(taskString); var settings = LoadEvolutionSettings(); settings.task = task; SaveEvolutionSettings(settings); return(task); }
public static EvolutionSettings Decode(string encoded) { var parts = encoded.Split('#'); var settings = new EvolutionSettings(); settings.keepBestCreatures = bool.Parse(parts[1]); settings.simulationTime = int.Parse(parts[2]); settings.populationSize = int.Parse(parts[3]); settings.simulateInBatches = bool.Parse(parts[4]); settings.batchSize = int.Parse(parts[5]); settings.task = EvolutionTaskUtil.TaskFromString(parts[6]); settings.mutationRate = int.Parse(parts[7]); return(settings); }