コード例 #1
0
        public bool Verify(SetupScript setup)
        {
            if (!VerifyListEquality(setup.GeneTypes.Select(x => x.Name).ToList(), Genes))
            {
                return(false);
            }
            if (!VerifyListEquality(setup.Initializers.Select(x => x.Name).ToList(), Initializers))
            {
                return(false);
            }
            if (!VerifyListEquality(setup.FitnessFunctions.Select(x => x.Name).ToList(), FitnessFunctions))
            {
                return(false);
            }
            if (!VerifyListEquality(setup.Selectors.Select(x => x.Name).ToList(), Selectors))
            {
                return(false);
            }
            if (!VerifyListEquality(setup.Recombiners.Select(x => x.Name).ToList(), Recombiners))
            {
                return(false);
            }
            if (!VerifyListEquality(setup.Mutators.Select(x => x.Name).ToList(), Mutators))
            {
                return(false);
            }
            if (!VerifyListEquality(setup.Terminators.Select(x => x.Name).ToList(), Terminators))
            {
                return(false);
            }

            Debug.Log("Settings verified");
            return(true);
        }
コード例 #2
0
    public void Launch()
    {
        if (generations != null)
        {
            generations.Reset();
        }
        if (setup == null)
        {
            setup = GetComponent <SetupScript>();
        }
        ui           = GetComponent <UIManager>();
        cars         = setup.Setup();
        carStates    = new Dictionary <GameObject, CarState>();
        carExecutors = new Dictionary <GameObject, GeneExecutor>();
        generations  = GetComponent <GenerationDB>();
        fitness      = (IFitnessFunction)System.Activator.CreateInstance(setup.FitnessFunctions.Where(type => type.Name.Equals(selectedFitnessFunction)).First());
        terminator   = (ITerminator)System.Activator.CreateInstance(setup.Terminators.Where(type => type.Name.Equals(selectedTerminator)).First());
        mutator      = (IMutator)System.Activator.CreateInstance(setup.Mutators.Where(type => type.Name.Equals(selectedMutator)).First());
        foreach (string genetype in selectedGenes)
        {
            mutator.AssignGene(((IGene)System.Activator.CreateInstance(setup.GeneTypes.Where(type => type.Name.Equals(genetype)).First())).ID);
        }
        selector   = (ISelector)System.Activator.CreateInstance(setup.Selectors.Where(type => type.Name.Equals(selectedSelector)).First());
        recombiner = (IRecombiner)System.Activator.CreateInstance(setup.Recombiners.Where(type => type.Name.Equals(selectedRecombiner)).First());
        init       = (IInitializer)System.Activator.CreateInstance(setup.Initializers.Where(type => type.Name.Equals(selectedInitializer)).First());
        foreach (string genetype in selectedGenes)
        {
            init.AssignGene(((IGene)System.Activator.CreateInstance(setup.GeneTypes.Where(type => type.Name.Equals(genetype)).First())).ID);
        }

        SetupCars();
        simulation = StartCoroutine(FullSimulation());
    }
コード例 #3
0
            public void ModifiesFolders()
            {
                // Given
                FileSystem fileSystem = new FileSystem
                {
                    RootPath   = @"C:/A",
                    OutputPath = "C"
                };

                fileSystem.InputPaths.Add("B");
                PackagesCollection packages    = new PackagesCollection(fileSystem);
                AssemblyCollection assemblies  = new AssemblyCollection();
                string             setup       = @"
FileSystem.RootPath = @""C:\X"";
FileSystem.InputPaths.Add(""Y"");
FileSystem.OutputPath = ""Z"";
";
                SetupScript        setupScript = new SetupScript(setup);

                setupScript.Compile();

                // When
                setupScript.Invoke(packages, assemblies, fileSystem);

                // Then
                Assert.AreEqual(@"C:/X", fileSystem.RootPath.FullPath);
                Assert.AreEqual(@"Z", fileSystem.OutputPath.FullPath);
                CollectionAssert.AreEquivalent(new[] { "input", "B", "Y" }, fileSystem.InputPaths.Select(x => x.FullPath));
            }
コード例 #4
0
 public SettingContainer(SetupScript setup)
 {
     Genes                   = setup.GeneTypes.Select(x => x.Name).ToList();
     SelectedGenes           = setup.GeneTypes.Select(x => x.Name).ToList();
     Initializers            = setup.Initializers.Select(x => x.Name).ToList();
     FitnessFunctions        = setup.FitnessFunctions.Select(x => x.Name).ToList();
     Selectors               = setup.Selectors.Select(x => x.Name).ToList();
     Recombiners             = setup.Recombiners.Select(x => x.Name).ToList();
     Mutators                = setup.Mutators.Select(x => x.Name).ToList();
     Terminators             = setup.Terminators.Select(x => x.Name).ToList();
     SelectedInitializer     = Initializers.First();
     SelectedFitnessFunction = FitnessFunctions.First();
     SelectedSelector        = Selectors.First();
     SelectedRecombiner      = Recombiners.First();
     SelectedMutator         = Mutators.First();
     SelectedTerminator      = Terminators.First();
     CarInstances            = 50;
     GenerationSize          = 200;
     SequenceLength          = 10;
     GeneDuration            = 10;
 }
コード例 #5
0
ファイル: SignalTouched.cs プロジェクト: ranguera/Kinect-DAT
 // Use this for initialization
 void Start()
 {
     setupScript = GameObject.Find("SetupControl").GetComponent<SetupScript>();
     Debug.Log(this.gameObject.name);
 }