public MainForm() { mClassList = new Dictionary<string, Student>(); mGroupList = new Dictionary<int, Group>(); mListWildCard = new List<Student>(); mListProgrammers = new List<Student>(); mListArtists = new List<Student>(); mListDesigners = new List<Student>(); mNumberOfStudents = 0; mNumberOfGroups = 0; mExtraStudents = 0; mGroupSize = 0; mGroupSizeSet = false; mVoteServer = new Server(); mMrRandom = new Random(); mDelegateFillGroup = FillSecondary; InitializeComponent(); }
public MainForm() { mClassList = new Dictionary <string, Student>(); mGroupList = new Dictionary <int, Group>(); mListWildCard = new List <Student>(); mListProgrammers = new List <Student>(); mListArtists = new List <Student>(); mListDesigners = new List <Student>(); mNumberOfStudents = 0; mNumberOfGroups = 0; mExtraStudents = 0; mGroupSize = 0; mGroupSizeSet = false; mVoteServer = new Server(); mMrRandom = new Random(); mDelegateFillGroup = FillSecondary; InitializeComponent(); }
/// <summary> /// Creates random groups based on skill pools /// </summary> public void CreateGroups() { Dictionary<string, Student> CopyClassList = new Dictionary<string, Student>(); CopyClassList = mClassList; // adds the students to the lists based on preference foreach (Student i in mClassList.Values) { if (i.FirstChoice == Job.WildCard) { mListWildCard.Add(i); } else if (i.FirstChoice == Job.Programming) { mListProgrammers.Add(i); } else if (i.FirstChoice == Job.Art) { mListArtists.Add(i); } else if (i.FirstChoice == Job.Design) { mListDesigners.Add(i); } } #region Fill The Groups int JobCounter = 3; // used to point at the necessary fill function mDelegateFillGroup = FillSecondary; // fill groups based on primary choice, then fill secondary, then tertiary for (int i = 0; i < JobCounter; i++) { if (FillGroups(mListProgrammers, NUMBER_PROGRAMMERS) == GroupFillResult.NotEmpty) { mDelegateFillGroup(mListProgrammers); } if (FillGroups(mListArtists, NUMBER_ARTISTS) == GroupFillResult.NotEmpty) { mDelegateFillGroup(mListArtists); } if (FillGroups(mListDesigners, NUMBER_DESIGNERS) == GroupFillResult.NotEmpty) { mDelegateFillGroup(mListDesigners); } switch (i) { case 0: mDelegateFillGroup = FillTertiary; break; case 1: mDelegateFillGroup = FillWildCard; break; } } // distribute wildcards if (mListWildCard.Count > 0) { FillGroups(mListWildCard, mListWildCard.Count); } #endregion }
/// <summary> /// Creates random groups based on skill pools /// </summary> public void CreateGroups() { Dictionary <string, Student> CopyClassList = new Dictionary <string, Student>(); CopyClassList = mClassList; // adds the students to the lists based on preference foreach (Student i in mClassList.Values) { if (i.FirstChoice == Job.WildCard) { mListWildCard.Add(i); } else if (i.FirstChoice == Job.Programming) { mListProgrammers.Add(i); } else if (i.FirstChoice == Job.Art) { mListArtists.Add(i); } else if (i.FirstChoice == Job.Design) { mListDesigners.Add(i); } } #region Fill The Groups int JobCounter = 3; // used to point at the necessary fill function mDelegateFillGroup = FillSecondary; // fill groups based on primary choice, then fill secondary, then tertiary for (int i = 0; i < JobCounter; i++) { if (FillGroups(mListProgrammers, NUMBER_PROGRAMMERS) == GroupFillResult.NotEmpty) { mDelegateFillGroup(mListProgrammers); } if (FillGroups(mListArtists, NUMBER_ARTISTS) == GroupFillResult.NotEmpty) { mDelegateFillGroup(mListArtists); } if (FillGroups(mListDesigners, NUMBER_DESIGNERS) == GroupFillResult.NotEmpty) { mDelegateFillGroup(mListDesigners); } switch (i) { case 0: mDelegateFillGroup = FillTertiary; break; case 1: mDelegateFillGroup = FillWildCard; break; } } // distribute wildcards if (mListWildCard.Count > 0) { FillGroups(mListWildCard, mListWildCard.Count); } #endregion }