15-07-2013, 06:54 PM
Un tournoi impliquant 16 joueurs implique un premier tour contenant 8 combats, un second tour contenant 4 combats, un troisième tour contenant 2 combats et un quatrième tour contenant 1 combat.
Le nombre de combat étant fini (8 + 4 + 2 +1 = 15), tu peux les créer en amont lors du début de ton tournoi.
Chaque entrée de la table des combats doit disposer d'un id, de l'id du tournoi auquel ce combat appartient, de l'id du premier joueur, et de l'id du second joueur. Il te faut également une colonne pour dire qui du joueur 1 ou 2 a gagné le combat (cette colonne restera vide tant que le combat n'aura pas été joué). Enfin, il te faut une dernière colonne qui contiendra l'id du combat suivant.
Pour générer ces 15 entités via un algorithme, je te conseille de partir de la finale : tu crées ce combat (qui n'a rien en tant qu'id du combat suivant, puisque c'est le dernier qui sera effectué), puis tu en crées 2 autres (qui auront comme id du combat suivant celui de la finale), puis pour chacun de ces 2 combats créés tu en crée 2 nouveaux (avec l'id de combat parent comme id de combat suivant), puis pour chacun des 4 combats créés tu en crée 2 nouveau (avec l'id de combat parent comme id de combat suivant). Et voilà, tu auras tes 15 combats prêts à l'emploi !
Lors de la dernière passe de l'algorithme (qui crée les 8 combats de départ), il faut attribuer 2 joueurs à chaque combat. Pour ça, tu peux mélanger ta liste de 16 joueurs au début de l'algorithme et utiliser la fonction pop sur cette liste quand tu as besoin d'un joueur.
Le nombre de combat étant fini (8 + 4 + 2 +1 = 15), tu peux les créer en amont lors du début de ton tournoi.
Chaque entrée de la table des combats doit disposer d'un id, de l'id du tournoi auquel ce combat appartient, de l'id du premier joueur, et de l'id du second joueur. Il te faut également une colonne pour dire qui du joueur 1 ou 2 a gagné le combat (cette colonne restera vide tant que le combat n'aura pas été joué). Enfin, il te faut une dernière colonne qui contiendra l'id du combat suivant.
Pour générer ces 15 entités via un algorithme, je te conseille de partir de la finale : tu crées ce combat (qui n'a rien en tant qu'id du combat suivant, puisque c'est le dernier qui sera effectué), puis tu en crées 2 autres (qui auront comme id du combat suivant celui de la finale), puis pour chacun de ces 2 combats créés tu en crée 2 nouveaux (avec l'id de combat parent comme id de combat suivant), puis pour chacun des 4 combats créés tu en crée 2 nouveau (avec l'id de combat parent comme id de combat suivant). Et voilà, tu auras tes 15 combats prêts à l'emploi !
Lors de la dernière passe de l'algorithme (qui crée les 8 combats de départ), il faut attribuer 2 joueurs à chaque combat. Pour ça, tu peux mélanger ta liste de 16 joueurs au début de l'algorithme et utiliser la fonction pop sur cette liste quand tu as besoin d'un joueur.