/* * Colloscope - A program that generates a colloscope for French 'classes prépas' * Copyright (C) 2024 Alexandre Aboujaib * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef ALGORITHM_H_INCLUDED #define ALGORITHM_H_INCLUDED #include "structure.h" bool is_equal_date(date d1, date d2); int get_date_index(creneau* edt, int len_creneau, date d); array get_all_date_index(creneau* edt, int len_edt, date d); int get_next_friday(creneau* edt, int len_creneau, date d); int get_fst_offset(creneau* edt, date d); //bool is_allowed_MP2I(creneau* edt, int len_edt, int grp, date end); //int heuristique_MP2I(creneau* edt, int len_edt, int grp, date end); colleur *get_colleurs(colleur *cl, int len_cl, date d, int *how_many); void add_colle(creneau *edt, colleur *chads, int grp, int id_edt, int id_chad); void remove_colle(creneau *edt, int id_edt); void move_colle(creneau* edt, int len_edt, int id_src, int id_dest); void swap_colle(creneau* edt, int len_edt, int id_src, int id_dest); int mem_id(creneau* edt, int len_edt, int grp, char* colleur); bool is_overlap(creneau *edt, int len_edt, int id); bool is_overlap_creneau(creneau* edt, int len_edt, int id, int grp); int free_math_space(creneau *edt, int len_edt, int id); void add_colles_for_group_MP2I(int *weeks_len, creneau *edt, int len_edt, colleur *chads, int len_chads, int n_weeks, int grp, topic start_rotation, int mth, int inf, int *skip_count); void write_to_file(char *filename, creneau *edt, int len_edt); int score(creneau *edt, int len_edt, int grp, int n_weeks); int get_colleur_id(colleur* dudes, int n_dudes, char* target); char* get_name_from_id(colleur* dudes, int n_dudes, int id); topic get_mat_from_id(colleur* dudes, int n_dudes, int id); void aux_2(creneau *edt, int len_edt, colleur *chads, int len_chads, int n_groups, int n_weeks, int n_sim, char *outname); #endif