public PanelSlot(PanelSlot cloningParent,int categ) : this(cloningParent.internalEvaluators, categ, cloningParent.remainigVacancies) { for (int i = 0; i < cloningParent.externaEvaluators.Count; i++) { AddExternalEvaluator(cloningParent.externaEvaluators[i]); remainigVacancies++; //to make it neutral again } }
private void BuildGeneration0(int category, List<PanelSlot> panelGeneration0) { for (int i = 0; i < panelMotiffs.Count; i++) { PanelSlot panel = new PanelSlot(panelMotiffs[i]); AddExternalEvaluatorToPanel(category, panel); panelGeneration0.Add(panel); } }
private void AddExternalEvaluatorToPanel(int category, PanelSlot panel) { while(panel.RemainigVacancies>0) { String eval; do { eval = externalevaluatorVector[r.Next(0, externalevaluatorVector.Count)]; } while (!tsmm.GetExternalEvaluaterPossibility(category, eval)); externalevaluatorVector.Remove(eval); panel.AddExternalEvaluator(eval); } }
public static int CompareSlotbySlotNumber(PanelSlot s1, PanelSlot s2) { if (s1.SlotNumber < s2.SlotNumber ) return -1; else if (s1.SlotNumber == s2.SlotNumber) return 0; else return 1; }
public PanelSlot(PanelSlot cloningParent) : this(cloningParent,cloningParent.category) { }
private PanelSlot TransferExternalEvaluators(PanelSlot externalEvalDorner, PanelSlot externalEvalreceiver, int category) { PanelSlot resultantPanel = new PanelSlot(externalEvalreceiver, category); List<String> externallEvaluators = externalEvalDorner.ExternaEvaluators; for (int i = 0; i < externallEvaluators.Count; i++) { resultantPanel.AddExternalEvaluator(externallEvaluators[i]); } return (resultantPanel); }
private List<PanelSlot> CreateSplitPanels(PanelSlot internalEvalDorner, PanelSlot externalEvalDorner,int category) { List<PanelSlot> newPanels = new List<PanelSlot>(); PanelSlot seniorPanel = new PanelSlot(externalEvalDorner,category); PanelSlot juniorPanel = new PanelSlot(internalEvalDorner, category); String externalEvaluator = seniorPanel.RemoveExternalEvaluator(true); newPanels.Add(seniorPanel); String internalEvaluator = juniorPanel.RemoveInternalEvaluator(); newPanels.Add(juniorPanel); PanelSlot splitPanel = new PanelSlot(category, 0); splitPanel.AddInternalEvaluator(internalEvaluator); splitPanel.AddExternalEvaluator(externalEvaluator); newPanels.Add(splitPanel); return (newPanels); }
private void CreatePanelMotiff(string[] names, int categ, int remainigVac) { PanelSlot panelMotiff = new PanelSlot(categ,remainigVac); for (int i = 0; i < names.Length; i++) { panelMotiff.AddInternalEvaluator(names[i]); } panelMotiffs.Add(panelMotiff); }
private void buildPanelSlots(List<PanelSlot> panelList, int categoryLength,Boolean firstGen) { for (int i = 0; i < panelList.Count; i++) { int limit = categoryLength; if (firstGen) { limit -= 2; if (i > 2) { limit++; } } for (int j = 0; j < limit; j++) { PanelSlot panelInstance = new PanelSlot(panelList[i]); panelInstance.SlotNumber = j; panelInstance.TemplateNumber = i; panels.Add(panelInstance); } } }