コード例 #1
0
        public void MakeStep()
        {
            if (Ended)
            {
                return;
            }
            foreach (int i in System.Linq.Enumerable.Range(0, Settings.Instance.StepMinutes))
            {
                NextClientSpawn -= 1;
                if (NextClientSpawn <= 0)
                {
                    Client NewClient = new Client(
                        ClientNum,
                        Rnd.Next(0, Settings.Instance.TimeToProcessEnd - Settings.Instance.TimeToProcessBegin) + Settings.Instance.TimeToProcessBegin,
                        Rnd.Next(Settings.Instance.ProfitStart, Settings.Instance.ProfitEnd)
                        );
                    ClientNum += 1;
                    Trace.WriteLine("Spawned Client with " + NewClient.TimeToSolve.ToString());
                    Department.NewClient(NewClient);

                    NextClientSpawn = Rnd.Next(0, 15 - ((Settings.Instance.CustomerFlow - 50) / 10));
                }
                Department.Tick(1);
                CurrentTime = CurrentTime.Add(new TimeSpan(0, 1, 0));
                Trace.WriteLine("Minute passed, CurrentTime = " + CurrentTime.ToString());

                if (CurrentTime.CompareTo(Settings.GetDayEndTime(Day)) >= 0)
                {
                    NextDay();
                    break;
                }
            }
        }