72 lines
2.4 KiB
C
72 lines
2.4 KiB
C
/*
|
|
* 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 <https://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
|
|
#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
|