Compare commits

..

2 Commits

Author SHA1 Message Date
42ecde799c [chore:] removed some dirt 2026-03-18 08:36:00 +01:00
ce70d86fd3 [fix:] semester delivery updated to perform better results 2026-03-18 08:35:48 +01:00

View File

@@ -193,25 +193,6 @@ public class CourseCrafter
} while (changed && iteration < maxIterations);
int getSemester()
{
//int sem = 0;
if (GeneratedCourses.Count == 0) return 1; // zunächst im ersten Semester beginnen
int[] semcount = new int[4] {0,0,0,0}; // Anzahl der generierten Kurse im jeweiligen Semester
foreach (var inst in GeneratedCourses)
{
semcount[inst.Semester - 1]++; // ...füllen
}
for (int i = 0; i<semcount.Length; i++) // durchlaufen und prüfen
{
if (semcount[i] < Settings.Instance.NumCoursesPerSemester)
{
return i+1; // Semester zurückgeben, wenn genug da sind
}
}
return 0;
}
bool isStudentFree(int semester, string studentID)
{
@@ -244,7 +225,7 @@ public class CourseCrafter
if (low >= initial_sportlist.Count) return true;
if (globalCount >= 12) return true;
if (globalCount >= 20) return true;
return false;
}
@@ -255,26 +236,27 @@ public class CourseCrafter
int getSemesterForSport(Sport sp)
{
int[] semcount = new int[4] {0,0,0,0};
int[] semcount = new int[4];
foreach (var inst in GeneratedCourses)
{
semcount[inst.Semester - 1]++;
}
int bestSem = 0;
int minCourses = int.MaxValue;
for (int i = 0; i < 4; i++)
{
// 1. Ist der Sport in diesem Semester erlaubt?
if (sp.Semester[i] == 0) continue;
// 2. Ist noch Platz für Kurse?
if (semcount[i] < Settings.Instance.NumCoursesPerSemester)
if (semcount[i] < Settings.Instance.NumCoursesPerSemester &&
semcount[i] < minCourses)
{
return i + 1;
minCourses = semcount[i];
bestSem = i + 1;
}
}
return 0;
return bestSem;
}