示例#1
0
        public double BayProduct(int quantity)
        {
            this.quantity -= quantity;

            if (firmCreator != null)
            {
                double firmMony = GetCost();// Какое кол во денег ушло фирме с покупки
                firmCreator.AddMony(firmMony);
            }

            return(quantity * GetCost());
        }
示例#2
0
        private void UpdateState()
        {
            // Принимаем на работу =)
            int countCitizen = citizens.Count;
            int maxWorkers   = Convert.ToInt32(citizens.Count * 0.3);

            int WorkInState = 0;

            // подсчет госработников
            foreach (Сitizen citizen in citizens)
            {
                if (citizen.GetWork() == state)
                {
                    WorkInState++;
                }
            }

            // Принимаем на работу =)
            if (maxWorkers > WorkInState)
            {
                int maxNormWorkers = maxWorkers - WorkInState;// Кол во человек, которое необходимо принять на работу =)

                // Рекрутируем =)
                foreach (Сitizen citizen in citizens)
                {
                    // безработных совершеннолетних
                    if ((maxNormWorkers > 0) & (citizen.GetWork() == null) & (citizen.GetAge() >= 864))
                    {
                        citizen.SetWork(state);
                        maxNormWorkers--;
                    }
                }
            }
            // ^ Принимаем на работу =)

            // Раздаем пособие по безработице
            foreach (Сitizen citizen in citizens)
            {
                if (citizen.GetWork() == null)
                {
                    double posobie = 10.0;
                    citizen.SetMony(state.GetMony(posobie) + citizen.GetMony());
                }
            }
            // ^ Раздаем пособие по безработице

            // Раздаем зарплату работникам
            foreach (Сitizen citizen in citizens)
            {
                if (citizen.GetWork() == state)
                {
                    double salary  = state.GetSizeSalary();
                    double getMony = state.GetMony(salary);
                    citizen.SetMony(getMony + citizen.GetMony());
                }
            }
            // ^ Раздаем зарплату работникам

            // Собираем налоги
            double tax = 2.0;// TODO: Заменить статичное число динамичным расчетом налога

            foreach (Сitizen citizen in citizens)
            {
                citizen.SetMony(citizen.GetMony() - tax);
                state.AddMony(tax);
            }

            for (int i = 0; i < firms.Count; i++)
            {
                state.AddMony(((Firm)firms[i]).GetMony(tax));
            }
            // ^ Собираем налоги
        }
示例#3
0
 private void InitState()
 {
     state = new Firm(rnd);
     state.AddMony(1000000.0);// Стартовый капитал государства =)
 }