Exemple #1
0
        public static Simulation Load(string fileName)
        {
            Simulation simulation = null;

            if (Path.GetExtension(fileName) == ".evo")
            {
                fileName = Path.GetFileNameWithoutExtension(fileName);
            }

            using (FileStream fs = new FileStream(fileName + ".evo.str", FileMode.Open))
            {
                BinaryReader r = new BinaryReader(fs);
                BinarySerializable.LoadIntoBuffer(r);
            }

            using (FileStream fs = new FileStream(fileName + ".evo", FileMode.Open))
            {
                BinaryReader r = new BinaryReader(fs);
                simulation = BinarySerializable.GetObject <Simulation>(r);
            }

            BinarySerializable.ClearLoadBuffer();

            simulation.World.ReloadRegions();

            return(simulation);
        }
Exemple #2
0
        public override void Load(System.IO.BinaryReader r, uint id)
        {
            base.Load(r, id);

            TemplateName = r.ReadString();
            ANN          = BinarySerializable.GetObject <INeuralNetChromosome>(r);
        }
Exemple #3
0
        public override void Load(System.IO.BinaryReader r, uint id)
        {
            base.Load(r, id);

            TemplateName = r.ReadString();
            Genome       = BinarySerializable.GetObject <Genome>(r);
        }
Exemple #4
0
        public override void Load(BinaryReader r, uint id)
        {
            base.Load(r, id);

            InhibitoryConnectionChance = r.ReadDouble();
            ConnectionChance           = r.ReadDouble();

            NewConnectionsCanForm = r.ReadBoolean();
            ConnectionsCanDie     = r.ReadBoolean();
            NewNeuronsCanForm     = r.ReadBoolean();
            NeuronsCanDie         = r.ReadBoolean();

            LoadListInfo(EyeRNeuronGenes, r);
            LoadListInfo(EyeGNeuronGenes, r);
            LoadListInfo(EyeBNeuronGenes, r);
            LoadListInfo(DistanceNeuronGenes, r);

            LoadListInfo(HiddenNeuronGenes, r);
            LoadListInfo(InputNeuronGenes, r);
            LoadListInfo(OutputNeuronGenes, r);

            LoadListInfo(MutationGenes, r);

            GlobalSigmoidFunction       = BinarySerializable.GetObject <SigmoidFunction>(r);
            GlobalOutputSigmoidFunction = BinarySerializable.GetObject <SigmoidFunction>(r);
        }
Exemple #5
0
        public override void Load(BinaryReader r, uint id)
        {
            base.Load(r, id);

            Source = BinarySerializable.GetObject <RMP_Neuron>(r);
            Target = BinarySerializable.GetObject <RMP_Neuron>(r);

            Weight = r.ReadDouble();
        }
Exemple #6
0
        public override void Load(BinaryReader r, uint id)
        {
            base.Load(r, id);

            Bias = DoubleMinMax.Read(r);
            LoadListInfo(Connections, r);

            SigmoidFunction = BinarySerializable.GetObject <SigmoidFunction>(r);
        }
Exemple #7
0
        public override void Load(BinaryReader r, uint id)
        {
            base.Load(r, id);

            FileName = r.ReadString();

            World = BinarySerializable.GetObject <IWorld>(r);

            LoadListInfo(EntityPainters, r);

            foreach (var p in EntityPainters)
            {
                p.Initialize(DrawBox.DefaultSkinFile);
            }
        }
Exemple #8
0
        public override void Load(BinaryReader r, uint id)
        {
            base.Load(r, id);

            Net    = BinarySerializable.GetObject <RMP_Net>(r);
            GeneID = r.ReadUInt32();

            Bias = r.ReadDouble();

            SigmoidFunction = BinarySerializable.GetObject <SigmoidFunction>(r);

            Activation = r.ReadDouble();
            Output     = r.ReadDouble();

            LoadListInfo(Connections, r);
        }
Exemple #9
0
        public override void Load(BinaryReader r, uint id)
        {
            base.Load(r, id);

            Min = r.ReadInt32();
            Max = r.ReadInt32();
            StandardDeviation = r.ReadDouble();
            Mean = r.ReadDouble();
            _maxToGenerateForProbability = r.ReadDouble();
            _rGen = BinarySerializable.GetObject <UniformRandomGenerator>(r);

            int length = r.ReadInt32();

            for (int i = 0; i < length; i++)
            {
                int    key   = r.ReadInt32();
                double value = r.ReadDouble();
                probabilities.Add(key, value);
            }
        }
Exemple #10
0
        public override void Load(BinaryReader r, uint id)
        {
            base.Load(r, id);

            Random         = BinarySerializable.GetObject <UniformRandomGenerator>(r);
            GaussianRandom = BinarySerializable.GetObject <NormalRandomGenerator>(r);

            Width         = r.ReadInt32();
            Height        = r.ReadInt32();
            WorldHasEdges = r.ReadBoolean();
            RegionSize    = r.ReadInt32();

            LoadListInfo(entityList, r);

            foreach (var entity in entityList)
            {
                if (entity.GetType().IsSubclassOf(typeof(ICreature)) || entity.GetType().IsEquivalentTo(typeof(ICreature)))
                {
                    creatureList.Add((ICreature)entity);
                }
            }

            Initialize(RegionSize, Random, GaussianRandom, true);
        }
Exemple #11
0
        public override void Load(BinaryReader r, uint id)
        {
            base.Load(r, id);

            Brain          = ReadNullableObject <INeuralNet>(r);
            CreatureGenome = ReadNullableObject <Genome>(r);

            EyeNeuronsAmount = r.ReadInt32();
            EyeSpan          = r.ReadDouble();
            ViewDistance     = r.ReadInt32();
            Speed            = r.ReadDouble();
            RotationSpeed    = r.ReadDouble();
            Energy           = DoubleMinMax.Read(r);

            CanSeeCreatures = r.ReadBoolean();

            EnergyLossByTick     = r.ReadDouble();
            EnergyLossByRotation = r.ReadDouble();
            EnergyLossByMove     = r.ReadDouble();
            EnergyLossByEating   = r.ReadDouble();
            EnergyLossByMating   = r.ReadDouble();
            EatingBiteSize       = r.ReadDouble();

            MatingCandidate       = BinarySerializable.GetObject <Creature>(r);
            CyclesInMating        = r.ReadInt32();
            CyclesNeededForMating = r.ReadInt32();

            MatingCooldownCyclesLeft    = r.ReadInt32();
            MatingCooldown              = r.ReadInt32();
            AttackingCooldownCyclesLeft = r.ReadInt32();
            AttackingCooldown           = r.ReadInt32();
            AttackMultiplier            = r.ReadDouble();

            MaxAge = r.ReadInt32();

            PixelsRotatedLeft    = r.ReadDouble();
            PixelsRotatedRight   = r.ReadDouble();
            PixelsMovedForwards  = r.ReadDouble();
            PixelsMovedBackwards = r.ReadDouble();
            TimesHaveEaten       = r.ReadInt32();
            TimesMated           = r.ReadInt32();

            LoseEnergy       = r.ReadBoolean();
            IsThinking       = r.ReadBoolean();
            DisableMating    = r.ReadBoolean();
            DisableAttacking = r.ReadBoolean();

            AlwaysMate = r.ReadBoolean();
            AlwaysEat  = r.ReadBoolean();

            if (Brain != null)
            {
                EyeR_I        = LoadArrayInfo <IInputNeuron>(r);
                EyeG_I        = LoadArrayInfo <IInputNeuron>(r);
                EyeB_I        = LoadArrayInfo <IInputNeuron>(r);
                EyeDistance_I = LoadArrayInfo <IInputNeuron>(r);

                random_I = BinarySerializable.GetObject <IInputNeuron>(r);
                clock_I  = BinarySerializable.GetObject <IInputNeuron>(r);
                energy_I = BinarySerializable.GetObject <IInputNeuron>(r);

                rotate_O = BinarySerializable.GetObject <IOutputNeuron>(r);
                move_O   = BinarySerializable.GetObject <IOutputNeuron>(r);
                eat_O    = BinarySerializable.GetObject <IOutputNeuron>(r);
                mate_O   = BinarySerializable.GetObject <IOutputNeuron>(r);
                attack_O = BinarySerializable.GetObject <IOutputNeuron>(r);
            }
        }
Exemple #12
0
        public override void Load(BinaryReader r, uint id)
        {
            base.Load(r, id);

            _rGen = BinarySerializable.GetObject <MersenneTwister>(r);
        }