示例#1
0
 private Game()
 {
     Statistic   = new Statistic();
     Map         = new CityMap();
     People      = CreatePopulation().ToHashSet();
     _lastUpdate = DateTime.Now;
 }
示例#2
0
        public Game Restart()
        {
            Map         = new CityMap();
            People      = CreatePopulation();
            _lastUpdate = DateTime.Now;

            return(this);
        }
示例#3
0
        public Person(int id, int homeId, CityMap map)
        {
            Id     = id;
            HomeId = homeId;

            var homeCoords = map.Houses[homeId].Coordinates.LeftTopCorner;
            var x          = homeCoords.X + random.Next(HouseCoordinates.Width);
            var y          = homeCoords.Y + random.Next(HouseCoordinates.Height);

            Position = new Vec(x, y);
        }
示例#4
0
        public Person(int id, int homeId, CityMap map)
        {
            Id     = id;
            HomeId = homeId;

            HomeCoords = map.Buildings[homeId].Coordinates.LeftTopCorner;
            var x = HomeCoords.X + random.Next(BuildingCoordinates.Width);
            var y = HomeCoords.Y + random.Next(BuildingCoordinates.Height);

            Position    = new Vec(x, y);
            IsSick      = random.NextDouble() < 0.05;
            stepsInHome = 0;
        }
示例#5
0
        public Person(int id, int homeId, CityMap map, bool isInfected)
        {
            Id         = id;
            HomeId     = homeId;
            IsInfected = isInfected;
            var homeCoords = map.Houses[homeId].Coordinates.LeftTopCorner;

            home = new Rectangle(homeCoords.X, homeCoords.Y, HouseCoordinates.Width, HouseCoordinates.Height);
            var x = homeCoords.X + random.Next(HouseCoordinates.Width);
            var y = homeCoords.Y + random.Next(HouseCoordinates.Height);

            Position = new Vec(x, y);
        }
示例#6
0
        public Person(int id, int homeId, CityMap map, InternalPersonState internalState = InternalPersonState.Healthy,
                      bool isNew = false)

        {
            Id            = id;
            age           = isNew ? 0 : random.Next(MaxStartAge);
            HomeId        = homeId;
            InternalState = internalState;
            cityMap       = map;
            homeCoords    = map.Houses[homeId].Coordinates.LeftTopCorner;
            Position      = GetNewPersonAtHomePosition();
            nextPosition  = GetNewPersonAtHomePosition();
        }
示例#7
0
        public Person(int id, int homeId, CityMap map, PersonHealthStatus healthStatus, int age)
        {
            Id           = id;
            HomeId       = homeId;
            HealthStatus = healthStatus;

            var homeCoords = map.Houses[homeId].Coordinates.LeftTopCorner;

            houseCoordinates = map.Houses[homeId].Coordinates;
            var x = homeCoords.X + random.Next(HouseCoordinates.Width);
            var y = homeCoords.Y + random.Next(HouseCoordinates.Height);

            Position = new Vec(x, y);
            Age      = age;
        }
示例#8
0
        public Person(int id, int homeId, CityMap map, bool isSick)
        {
            Id     = id;
            HomeId = homeId;
            if (isSick)
            {
                PersonHealth = PersonHealth.Sick;
            }


            homeCoords = map.Houses[homeId].Coordinates.LeftTopCorner;
            var x = homeCoords.X + random.Next(HouseCoordinates.Width);
            var y = homeCoords.Y + random.Next(HouseCoordinates.Height);

            Position = new Vec(x, y);
        }
示例#9
0
        public Person(int id, int homeId, CityMap map, bool isSick)
        {
            Id       = id;
            HomeId   = homeId;
            this.map = map;
            IsSick   = isSick;
            if (isSick)
            {
                StepsToRecovery = 35;
            }

            var homeCoords = map.Houses[homeId].Coordinates.LeftTopCorner;
            var x          = homeCoords.X + random.Next(HouseCoordinates.Width);
            var y          = homeCoords.Y + random.Next(HouseCoordinates.Height);

            Position = new Vec(x, y);
        }
示例#10
0
        public Person(int id, int homeId, CityMap map, bool isSick)
        {
            Id         = id;
            HomeId     = homeId;
            IsSick     = isSick;
            IsBored    = false;
            timeAtHome = 0;
            this.map   = map;
            if (isSick)
            {
                ChangeHealth(PersonHealth.Sick);
            }

            var homeCoords = map.Houses[homeId].Coordinates.LeftTopCorner;
            var x          = homeCoords.X + random.Next(HouseCoordinates.Width);
            var y          = homeCoords.Y + random.Next(HouseCoordinates.Height);

            Position = new Vec(x, y);
        }
示例#11
0
 private Game()
 {
     Map         = new CityMap();
     People      = CreatePopulation();
     _lastUpdate = DateTime.Now;
 }
示例#12
0
 public void Restart()
 {
     Map         = new CityMap();
     People      = CreatePopulation();
     _lastUpdate = DateTime.Now;
 }
示例#13
0
 public Doctor(int id, int homeId, CityMap map, PersonHealthStatus healthStatus) : base(id, homeId, map, healthStatus)
 {
     this.PersonType = PersonType;
 }
示例#14
0
 public Doctor(int id, int homeId, CityMap map, PersonHealthStatus healthStatus, int age) : base(id, homeId, map, healthStatus, age)
 {
 }
示例#15
0
 public Person(int id, int homeId, CityMap map, PersonHealthStatus healthStatus) : this(id, homeId, map,
                                                                                        healthStatus, random.Next(minAge, maxAge))
 {
 }