private void placeTheoryLecture(Lecture lecture, ArrayList<ClassRoom> rooms2) { // TODO Auto-generated method stub int size = lecture.getStudentGroup().getSize(); String dept = lecture.getStudentGroup().getDepartment(); boolean invalid = true; ClassRoom room = null; Collections.shuffle(rooms2); while (invalid) { room = getBestRoom(size, rooms2); if (room.getDepartment().equalsIgnoreCase(dept)) { invalid = false; Collections.shuffle(rooms2); } else { Collections.shuffle(rooms2); } } ArrayList<Day> weekdays = room.getWeek().getWeekDays(); Iterator<Day> daysIterator = weekdays.iterator(); while (daysIterator.hasNext()) { Day day = daysIterator.next(); ArrayList<TimeSlot> timeslots = day.getTimeSlot(); Iterator<TimeSlot> timeslotIterator = timeslots.iterator(); while (timeslotIterator.hasNext()) { TimeSlot lecture2 = timeslotIterator.next(); if (lecture2.getLecture() == null) { lecture2.setLecture(lecture); return; } } } }
public void generateIndiv() { for (int i = 0; i < slots.length; i++) { for (int j = 0; j < slots[i].length; j++) { int room = r.nextInt(30); int subject = r.nextInt(Const.lessons.length); String subj = Const.lessons[subject]; String teach = ""; int teacher = 0; try { teacher = r.nextInt(Const.teachersAndLessons.get(subj).length); teach = Const.teachersAndLessons.get(subj)[teacher]; } catch (Exception e) { teach = "Your major's teacher"; } if (Math.random() < 0.02 && free < 2) { slots[i][j] = TimeSlot.freePeriod(i, j); free++; } else { if (subj != "Math" && subj != "English") slots[i][j] = new TimeSlot(i, j, room, Const.lessons[subject], teach); else { slots[i][j] = new TimeSlot(i, j, room, Const.lessons[subject], "Your teacher"); } } } } }
private boolean checkOccupiedRoom(ClassRoom tempRoom, ArrayList<ClassRoom> rooms2) { // TODO Auto-generated method stub for (Iterator<ClassRoom> roomsIterator = rooms2.iterator(); roomsIterator.hasNext(); ) { ClassRoom room = roomsIterator.next(); if (room.equals(tempRoom)) { ArrayList<Day> weekdays = room.getWeek().getWeekDays(); Iterator<Day> daysIterator = weekdays.iterator(); while (daysIterator.hasNext()) { Day day = daysIterator.next(); ArrayList<TimeSlot> timeslots = day.getTimeSlot(); Iterator<TimeSlot> timeslotIterator = timeslots.iterator(); while (timeslotIterator.hasNext()) { TimeSlot lecture = timeslotIterator.next(); if (lecture.getLecture() == null) { return false; } } } return true; } } return false; }