diff --git a/algo b/algo new file mode 100644 index 0000000..cf9319d --- /dev/null +++ b/algo @@ -0,0 +1,52 @@ +algo un certains nombre N de joueurs + +a chaque session, une table joue à un jeu avec T joueurs +le but : +_ faire le moins de sessions possibles +_ chaque joueurs à joué une fois à chaque jeu +_ maximiser la diversité des oppositions +_ minimiser le nombre de table avec le meme jeu + +pour chaque session + un joueur à : + _ une liste de jeu possible + _ une liste des opposants déjà rencontrés (pondéré au nombre de rencontres) + +le but : former Math.floor(N/T) tables + Js = la liste des joueurs non affectés + TANT QUE Nb_Tables < Math.floor(N/T) et jeux pas vide faire + jeux = map jeu/liste joueurpossible (le joueur n'a pas joué et est présent dans Js) + si moins de T joueurs dispo , jeu pas dans map + pour le jeu dans jeux avec le moins de joueurs (en cas d'égalité celui le moins joué a cette session) + faire table avec T de choisir_joueur( liste_joueur ) + retirer les T joueurs de Js + pour chaque joueur de la table retirer le jeu et ajouter la table en oposant + fin tant que + + +function choisir_joueur (listejoueur) { o(n2) + //probleme des colocataire à T-tuple + + //construction de la préférence + pour chaque joueur de listejoueur : + preference[joueur] = { forte:[], faible:[], nulle : [], score:0} //pas rencontré , rencontré 1x rencontré plusieurs fois + pour chaque joueur' de liste joueur: + si joueur= joueur' continuer + si Nb rencontr joueur'<--> joueur ==0 + preference[joueur].forte.push(joueur') + si Nb rencontr joueur'<--> joueur ==1 + preference[joueur].faible.push(joueur') + sinon + preference[joueur].nulle.push(joueur') + fin pour + Si preference[joueur].forte a T-1 element + trouvé + preference[joueur].score = forte *liste_joueur **2 + faible *liste_joueur + null; + fin pour + + //réduction + prendre preference forte et preference faible du joueur au meilleur score + dans faible, prendre par score décroissant. + pour former un T_tuple; + retourner "pas possible"; +} \ No newline at end of file