11-07-2013, 03:53 AM
je vais raisonner que sur un type de match (3x4 OU 2x3) car je ne sais pas si un joueur peut être dans des parties de type différent ou pas, mais le principe reste le même
j ai besoin de plusieurs variables :
en entrée un tableau d'équipes de joueurs (comme tu le fais), un joueur pouvant être dans plusieurs équipes : var source = [{....},{},...]
en intermédiaire un tableau de joueurs, initialement vide
var players = []
en intermédiaire un tableau d'équipes pour un match, initialement vide
var match= []
en final un tableau de matchs, un joueur ne pouvant être que dans un match
var target= [{....},{},...]
1) je mélange aléatoirement (ou autrement) ma source
2) je parcours la source. Pour chaque team de la source
2.1) je parcours les joueurs de la team. Si au moins un joueur de la source est dans le tableau player, je passe à la team suivante (retour au 2)
2.2) aucun des joueurs n'étant déjà inscrits, je les inscris : players[id player] = true / id équipe, ce que tu veux (deuxieme boucle sur les joueurs de la team)
2.3) j ajoute la team dans le tableau match
2.4) si le tableau match contient le nombre d'équipes voulu, j ajoute le tableau match dans target (en copie) puis je vide le tableau match
voilà j ai fini
qu'un joueur puisse jouer ou pas dans des matchs de type différents revient au meme, tout dépend de la gestion du tableau intermédiaire players
j ai besoin de plusieurs variables :
en entrée un tableau d'équipes de joueurs (comme tu le fais), un joueur pouvant être dans plusieurs équipes : var source = [{....},{},...]
en intermédiaire un tableau de joueurs, initialement vide
var players = []
en intermédiaire un tableau d'équipes pour un match, initialement vide
var match= []
en final un tableau de matchs, un joueur ne pouvant être que dans un match
var target= [{....},{},...]
1) je mélange aléatoirement (ou autrement) ma source
2) je parcours la source. Pour chaque team de la source
2.1) je parcours les joueurs de la team. Si au moins un joueur de la source est dans le tableau player, je passe à la team suivante (retour au 2)
2.2) aucun des joueurs n'étant déjà inscrits, je les inscris : players[id player] = true / id équipe, ce que tu veux (deuxieme boucle sur les joueurs de la team)
2.3) j ajoute la team dans le tableau match
2.4) si le tableau match contient le nombre d'équipes voulu, j ajoute le tableau match dans target (en copie) puis je vide le tableau match
voilà j ai fini
qu'un joueur puisse jouer ou pas dans des matchs de type différents revient au meme, tout dépend de la gestion du tableau intermédiaire players