Пример #1
0
        public OrganismManager(Behaviors behaviors, World world, Random ranGen)
        {
            this.world = world;

            this.ranGen = ranGen;

            readConfig();

            maxSpeed = 1.5;

            defaultGenSize = 30;

            extinctionCarryOver = 15;

            this.behaviors = behaviors;

            genDirectory = "Organisms";

            organismTerminate = "[/Organism]";
            behaviorsInitiate = "[Behaviors]";
            constantsInitiate = "[Constants]";

            if(!System.IO.Directory.Exists(genDirectory))
            {
                Directory.CreateDirectory(genDirectory);
            }

            if(!File.Exists(genDirectory + "//" + "Organisms.txt"))
            {
                List<Organism> defaultOrganisms = new List<Organism>();

                //Add 10 random organisms
                for(int i = 0; i<defaultGenSize;i++)
                {
                    defaultOrganisms.Add(newRandomOrganism());
                }

                writeOrganismsToFile(defaultOrganisms);
            }

            activeOrganisms = new List<Organism>();

            deadOrganisms = new List<Organism>();

            genOriginals = new List<Organism>();

            OnExtinction += OrganismManager_OnExtinction;
        }
Пример #2
0
        public World()
        {
            ranGen = new Random();

            worldWidth = 750;
            worldHeight = 750;

            worldLiveTime = 0;

            worldClock = new Timer();

            worldClock.Interval = 1;

            worldClock.Elapsed += worldClock_Elapsed;

            behaviors = new Behaviors(this);

            organismManager = new OrganismManager(behaviors, this, ranGen);

            foodManager = new FoodManager(this, ranGen);

            worldClock.Start();
        }