コード例 #1
0
    private void InitializeProgrammers()
    {
        Programmers.Clear();
        HashSet <Vector3> programmerPositions = new HashSet <Vector3>();

        foreach (var programmerSpec in CurrentStage.ProgrammerSpecs)
        {
            programmerSpec.Status.DisposeRegisteredEvents();

            var newProgrammer = Instantiate(programmerTemplate);
            var randomVector  = StageField.GetRandomVector();

            while (programmerPositions.Contains(randomVector))
            {
                randomVector = StageField.GetRandomVector();
            }

            newProgrammer.transform.position = randomVector;
            newProgrammer.Ability            = programmerSpec.Ability;

            foreach (var activeSkill in newProgrammer.Ability.AcquiredActiveSkills)
            {
                activeSkill.ResetStageParameters();
            }

            newProgrammer.Status = programmerSpec.Status;

            newProgrammer.Status.ResetStageParameters();

            programmerPositions.Add(randomVector);
            Programmers.Add(newProgrammer);
        }
    }
コード例 #2
0
 /// <summary>
 /// Najme tolik programatoru kolik cini kapacita firmy.
 /// IMPLEMENTUJTE TUDO METODU
 ///     Z parametru programmers vyberte prvnich Capacity programatoru
 ///     v poradi podle nejvyhodnejsiho pomeru jejich rychlosti k jejich cene.
 ///     V tomto poradi je vlozte do kolekce Programmers.
 ///
 ///     Poznamka k trideni: toto je mozne implementovat vice zpusoby. Vyberte si libovolny, s tim
 ///         ze je povoleno kvuli tomuto trideni napr. vytvorit novou tridu nebo modifikovat nejakou stavajici.
 /// </summary>
 public void AllocateProgrammers(List <Programmer> programmers)
 {
     programmers.Sort((prg1, prg2) => prg1.Ratio.CompareTo(prg2.Ratio));
     for (int x = 0; x < Capacity; x++)
     {
         Programmers.Add(programmers[(programmers.Count - x - 1)]);
     }
 }
コード例 #3
0
 public void AddEmployee(Employee employee)
 {
     if (employee is Programmer)
     {
         Programmers.Add((Programmer)employee);
     }
     else if (employee is Tester)
     {
         Testers.Add((Tester)employee);
     }
 }
コード例 #4
0
    private void InitializeProgrammers()
    {
        Programmers.Clear();

        var newProgrammers = MakeProgrammers(LobbyManager.Instance.SelectedStage.ProgrammerSpecs);

        foreach (var newProgrammer in newProgrammers)
        {
            Programmers.Add(newProgrammer);
        }
    }
コード例 #5
0
        /// <summary>
        /// Najme tolik programatoru kolik cini kapacita firmy.
        /// IMPLEMENTUJTE TUDO METODU
        ///     Z parametru programmers vyberte prvnich Capacity programatoru
        ///     v poradi podle nejvyhodnejsiho pomeru jejich rychlosti k jejich cene.
        ///     V tomto poradi je vlozte do kolekce Programmers.
        ///
        ///     Poznamka k trideni: toto je mozne implementovat vice zpusoby. Vyberte si libovolny, s tim
        ///         ze je povoleno kvuli tomuto trideni napr. vytvorit novou tridu nebo modifikovat nejakou stavajici.
        /// </summary>
        public void AllocateProgrammers(List <Programmer> programmers)
        {
            foreach (var programmer in programmers)
            {
                SortedProgrammersByEffectivity.Add(programmer);
            }
            SortedProgrammersByEffectivity = SortedProgrammersByEffectivity.OrderBy(p => p.Effectivity).ToList();

            for (int i = 0; i < Capacity; i++)
            {
                Programmers.Add(SortedProgrammersByEffectivity[i]);
            }
        }
コード例 #6
0
ファイル: Company.cs プロジェクト: nolikob/Csharp
        /// <summary>
        /// Najme tolik programatoru kolik cini kapacita firmy.
        /// IMPLEMENTUJTE TUDO METODU
        ///     Z parametru programmers vyberte prvnich Capacity programatoru
        ///     v poradi podle nejvyhodnejsiho pomeru jejich rychlosti k jejich cene.
        ///     V tomto poradi je vlozte do kolekce Programmers.
        ///
        ///     Poznamka k trideni: toto je mozne implementovat vice zpusoby. Vyberte si libovolny, s tim
        ///         ze je povoleno kvuli tomuto trideni napr. vytvorit novou tridu nebo modifikovat nejakou stavajici.
        /// </summary>
        public void AllocateProgrammers(List <Programmer> programmers)
        {
            IEnumerable <Programmer> sortedProgrammers = from programmer in programmers
                                                         orderby programmer.Speed
                                                         //orderby programmer.Project.Price
                                                         select programmer;
            List <Programmer> sortedOnes = sortedProgrammers.ToList();

            for (int i = 0; i < Capacity; i++)
            {
                Programmers.Add(sortedOnes[i]);
            }
            sortedOnes.RemoveRange(0, Capacity);
        }
コード例 #7
0
        /// <summary>
        /// Открывает диалог выбора файлов программ
        /// </summary>
        private void ProgramSelect_Click(object sender, RoutedEventArgs e)
        {
            OpenFile("All files (*.*)|*.*|Text documents (.txt)|*.txt", (name) =>
            {
                var id = ((ComboBoxItem)LanguageSelect.SelectedItem).Tag.ToString();
                if (id == "AUTO")
                {
                    id = System.IO.Path.GetExtension(name);
                }
                Programmer coder;
                if (id != ".exe")
                {
                    try
                    {
                        coder = new Programmer(
                            Languages[id],
                            name,
                            System.IO.Path.GetFileName(name)
                            );
                    }
                    catch (KeyNotFoundException)
                    {
                        MessageBox.Show($"{System.IO.Path.GetFileName(name)}: " +
                                        "не удалось автоматически определить язык программирования",
                                        "Ошибка определения языка",
                                        MessageBoxButton.OK, MessageBoxImage.Error);
                        coder = new Programmer(name, System.IO.Path.GetFileName(name));
                    }
                }
                else
                {
                    coder = new Programmer(name, System.IO.Path.GetFileName(name));
                }

                Programmers.Add(coder);
                ProgrammerSelectAdd(coder);
                ProgrammerSelect.SelectedIndex = Programmers.Count - 1;
            });
        }