示例#1
0
 private void SomeScheduleWorks(ScheduleList tsl, string[] rlist, int rindex, List<ScheduleList> validSchedules)
 {
     int currentClass = Int32.Parse(rlist[rindex]);
     foreach (ClassSection cs in classList[currentClass].Sections)
     {
         if (tsl.DoesClassConflict(cs).Count == 0)
         {
             tsl.classes.Add(cs);
             if (rlist.Length - 1 == rindex)
             {
                 validSchedules.Add(CopyScheduleList(tsl));
             }
             else
             {
                 SomeScheduleWorks(tsl, rlist, rindex + 1, validSchedules);
             }
             tsl.classes.RemoveAt(tsl.classes.Count - 1);
         }
     }
 }
示例#2
0
 private bool ScheduleWorks(ScheduleList tsl, string[] rlist, int rindex)
 {
     int currentClass = Int32.Parse(rlist[rindex]);
     foreach (ClassSection cs in classList[currentClass].Sections)
     {
         if (tsl.DoesClassConflict(cs).Count == 0)
         {
             tsl.classes.Add(cs);
             if (rlist.Length - 1 == rindex)
             {
                 return true;
             }
             else
             {
                 if (ScheduleWorks(tsl, rlist, rindex + 1))
                 {
                     return true;
                 }
                 else
                 {
                     tsl.classes.RemoveAt(tsl.classes.Count - 1);
                 }
             }
         }
     }
     return false;
 }