public MainWindow() { InitializeComponent(); Configuration.Instance.ParseFile(""); //Schedule schedule = new Schedule(2, 2, 80, 3); Algorithm algorithm = new Algorithm(100, 8, 5); algorithm.Start(); var bestSchedule = algorithm.GetBestChromosome(); Save(algorithm, bestSchedule); }
private void Save(Algorithm alg, Schedule schedule) { foreach (var entry in schedule.Classes) { var courseClass = entry.Key; var pos = entry.Value; var rooms = Configuration.Instance.GetNumberOfRooms(); var day = pos/(Consts.DayHours*rooms); var hour = pos%(Consts.DayHours*rooms); var room = hour/Consts.DayHours; var roomHour = hour%Consts.DayHours; var row = roomHour + 2; var column = day*rooms + room + 1; var sb = new StringBuilder(); var count = 0; foreach (var studentGroup in courseClass.StudentGroups) { sb.Append(studentGroup.Name + ", "); count += studentGroup.StudentCount; } var textblock = new TextBlock { Text = string.Format("Kurs: {0}\nGrupa: {1}\nProfesor: {2}\nLab: {3}\nIlosc: {4}", courseClass.Course.Name, sb, courseClass.Professor.Name, courseClass.IsLabRequired, count), }; var gen = new TextBlock { Text = "Generation: " + alg.CurrentGeneration, }; Grid.SetRow(textblock, row); Grid.SetColumn(textblock, column); Grid.SetRowSpan(textblock, courseClass.LessonDuration); MainGrid.Children.Add(textblock); Grid.SetRow(gen, 0); Grid.SetColumn(gen, 0); MainGrid.Children.Add(gen); } }