écriture algo théorique
This commit is contained in:
52
algo
Normal file
52
algo
Normal file
@@ -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";
|
||||
}
|
||||
Reference in New Issue
Block a user