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); } }
/// <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)]); } }
public void AddEmployee(Employee employee) { if (employee is Programmer) { Programmers.Add((Programmer)employee); } else if (employee is Tester) { Testers.Add((Tester)employee); } }
private void InitializeProgrammers() { Programmers.Clear(); var newProgrammers = MakeProgrammers(LobbyManager.Instance.SelectedStage.ProgrammerSpecs); foreach (var newProgrammer in newProgrammers) { Programmers.Add(newProgrammer); } }
/// <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]); } }
/// <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); }
/// <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; }); }