Exemplo n.º 1
0
        // Добавляет нового копа с указанным именем и рангом в список
        public void HireCop(string name, int rank)
        {
            var cop = new Cop(name, rank);

            cops.Add(cop);
            SortCops();
        }
Exemplo n.º 2
0
        // Дает копам разрешить дело
        // Повышает ранг и перераспределяет их, если они справились
        // Выводит сообщение о неудаче, если они не справились
        public void SolveCase()
        {
            // Берем случайного с низшем рангом, если участок не пуст
            Cop cop = GetCopWithAtLeast(0);

            if (cop != null)
            {
                // Даем ему или его боссам решить дело
                cop = cop.SolveCase();
                if (cop != null)
                {
                    // Если один из них справился, повышаем ему ранг...
                    if (cop.rank < 11)
                    {
                        cop.rank++;
                    }

                    // считаем дело решенным...
                    solvedCases++;

                    // и перераспределяем всех
                    SortCops(cop);
                    Console.WriteLine("");
                    return;
                }
                ;
            }
            ;
            // Иначе считаем дело нерешенным
            unsolvedCases++;
            Console.WriteLine("Case remains unsolved...\n");
        }
Exemplo n.º 3
0
 // Сортирует копов по рангу и перераспределяет боссов
 // Если передать повышенного копа, перераспределяться будут только его подчененные и он сам
 private void SortCops(Cop promoted = null)
 {
     cops.Sort((cop1, cop2) => {
         return(cop1.rank > cop2.rank ? 1 : (cop1.rank < cop2.rank ? -1 : 0));
     });
     for (int i = 0; i < cops.Count; i++)
     {
         Cop cop = cops[i];
         if (promoted == null || cop == promoted || cop.boss == promoted)
         {
             cop.boss = GetCopWithAtLeast(cop.rank + 1);
         }
         if (cop.boss == null)
         {
             break;
         }
     }
 }