Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Génération automatique d'un calendrier sportif pour 40 équipes

boubou1973

XLDnaute Occasionnel
Bonjour,

J'organise chaque année un concours de pronostics entre amis sur les résultats de ligue 1.
En plus du pari classique 1N2, chaque joueur se retrouve en duel face à un autre joueur lors des 38 journées.
Je cherche donc un fichier qui me permettrait de générer aléatoirement ces duels.
J'ai cherché sur excel downloads et sur internet des fichiers de ce type mais cela dépasse rarement 20 équipes.
J'ai trouvé le fichier tournoisport (que je joins) qui rend à peu près ce que je recherche mais il est complètement verrouillé donc cela m'oblige à recopier 38 x 39 prénoms soit 1482 entrées.... ça pique !
S'il y avait la possibilité que la génération soit sous le format mis en exemple dans le fichier "exemple duel", ce serait parfait car cela me permettrait de l'intégrer rapidement au fichier de mon jeu.

Je ne sais pas si je suis assez clair et reste à votre disposition pour tout renseignement.
Merci d'avance pour l'aide que vous pourrez m'apporter,
boubou
 

Pièces jointes

  • TournoiSport.xls
    97.5 KB · Affichages: 37
  • exemple duel.xlsx
    33.1 KB · Affichages: 11

soan

XLDnaute Barbatruc
Inactif
l'ennui, c'est qu'j'ai pas d'idée non plus sur comment augmenter l'espace de pile ! (et d'après moi, même avec une RAM de seulement 8 Go, il est suffisant !) ; non, je pense qu'il ne faut pas chercher à l'augmenter ; mais par contre, il faut revoir la logique de la procédure récursive pour que même si elle s'appelle elle-même de très nombreuses fois, ça n'aboutisse pas à un plantage car la condition de sortie n'est pas suffisamment adéquate pour sortir de la boucle récursive avant le plantage !

je te laisse chercher cela, car moi j'suis déjà occupé avec d'autres exos, et j'veux pas entrer davantage dans celui-ci.

soan​
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Il n'y a pas lieu de revoir ça. S'il y a 2500 niveau à examiner il faut pouvoir aller à cette profondeur c'est tout. Le processus récursif est parfaitement et clairement maitrisé dans cette application puisqu'on est tout de suite renseigné par des espions sur Niv et NivMax
Je parlerais d'anomalie de conception à partir de 100000 !
 
Dernière édition:

boubou1973

XLDnaute Occasionnel
Me voilà de retour. J'ai essayé sur mon ordinateur portable et ça passe doucement.
En fait je vous explique ce dont j'ai besoin et peut être est-il possible d'améliorer le fichier déjà existant.

Nous sommes donc pour l'instant une cinquantaine à participer à ce concours et il pourrait encore y en avoir d'autres. La ligue 1 comportant 38 journées, il était impossible d'être en duel contre tout le monde donc j'ai eu l'idée de proposer 2 duels dans la même journée (si nous sommes 50, cela fait donc 49 duels, il y a donc 11 journées avec 2 duels)

Ne sachant pas trop comment faire, j'ai considéré qu'il y avait 76 journées (38 x 2) et j'ai créé des "faux joueurs" que j'ai appelés exempt 1, 2.... mais ce n'est pas super lisible.

Est-iil possible de ne mettre que les joueurs réels qui participent (mais en pouvant augmenter le nombre si nécessaire), que chacun ne s'affronte qu'une fois, que le tableau sorte une case blanche lorsqu'il n'y a qu'un duel lors de la journée ?

Voilà, je pose des questions et je ne sais même pas si c'est possible !
Merci en tout cas pour ce que vous avez déjà fait
boubou
 

Dranreb

XLDnaute Barbatruc
Ah, tous les joueurs doivent rencontrer tous les autres, alors ?
Peut être est-il possible de faire autrement. Je vais y réfléchir.
Ce serait gênant si ça sortait toujours dans le même ordre ?
Notez qu'il serait facile d'intervertir aléatoirement les lignes et les colonnes.
 

boubou1973

XLDnaute Occasionnel
Oh vous savez, tant que les joueurs peuvent tous se rencontrer ,e je serai pas plus difficile et embêtant que je le suis déjà !
Pour l'instant, ce que je pense faire, c'est supprimer les joueurs "exempts" que je comptais mettre au départ. Ensuite pour les 38 premières journées, je recopie votre fichier sur le mien et pour les autres duels, je les recopie un par un sur des journées aléatoires. C'est ce qui risque d'être long.
C'est pour ça que si vous avez une idée qui me permette de faire un simple copier-coller, je suis preneur.
 

Dranreb

XLDnaute Barbatruc
Je ne sais pas ce que sont vos journées dont vous parlez tout le temps.
Si c'est un ensemble de 2 duels il n'y a qu'à ajouter devant une colonne qui englobe deux lignes, non ?
Là, je vais étudier à un moyen de faire en sorte que tous les joueurs se rencontrent. L'idée qui m'est venu à l'esprit c'est de les imaginer sur un tapis roulant où ils se déplacent tous d'un cran à chaque ligne de duel, celui qui sort du tapis y rentrant chaque fois par l'autre bout. Le 1er du tapis rencontre le dernier, le second l'avant dernier, le 3ème l'antépénultième etc.
 

boubou1973

XLDnaute Occasionnel
quand je parle d'une journée, c'est une journée de championnat. En fait le principe c'est de parier sur les 10 matchs du jour. on marque 2 points à chaque fois que vous trouvez le bon pronostic.
En parallèle, vous rencontrez 1 ou 2 personnes en duel. Si vous trouvez plus de bons pronostics que votre adversaire, vous avez 2 points bonus, en cas de match nul 1 point et bien sûr, si vous avez moins de points, vous n'avez pas de bonus.
Le tableau que vous avez créé me permet de pouvoir réaliser ces duels. Je récupère ensuite les prénoms avec une formule index et equiv.
Votre idée de tapis roulant est bonne. Après je ne sais pas s'il est possible d'avoir des "cases blanches" puisque nous sommes actuellement 51 et la ligue 1 comprenant 38 journées, à raison de 2 duels par journée, il faudrait 76 joueurs, ce que je n'ai pas. Il y aura donc des matchs où il n'y aura qu'un duel.

Je vous mets un lien qui vous permettra de voir à quoi ressemble le fichier. Sur celui-ci il n'y a qu'un seul duel car nous étions moins de 38 joueurs

 

Dranreb

XLDnaute Barbatruc
Bonour.
Quoi qu'il en soit je vous ai mis un second bouton pour établir les rencontres en table de Berger.
Cette procédure là n'est pas récursive.
Il serait possible de faire paraître plus aléatoire le résultat si vous voulez.
 

Pièces jointes

  • ListeAléatBoubou1973.xlsm
    75.4 KB · Affichages: 6

boubou1973

XLDnaute Occasionnel
Dranreb,
merci beaucoup pour le temps que vous avez passé sur mon cas. Grace à vous, je vais pouvoir finaliser le jeu tel que je le souhaitais.

Je pense que je vais continuer à utiliser le premier bouton qui permet effectivement un tirage plus aléatoire. Je passerai par mon portable car j'ai toujours le problème de pile sur le fixe.

Bon dimanche, fabien
 

Dranreb

XLDnaute Barbatruc
Rappel: il est tout à fait possible de permuter aléatoirement les colonnes et les lignes du tableau Berger: ça n'altèrerait pas ses propriétés.
Remarque: si ce tableau ne sert qu'à être repris dans d'autres documents, il vaudrait mieux qu'il ne porte que des numéros: c'est complètement idiot de faire des INDEX(…;EQUIV(…)) au lieu de INDEX(…:Numéro) tout simplement !
 

Dranreb

XLDnaute Barbatruc
Moi je trouve que le mieux c'est de poser ponctuellement des questions ici.
VBA repose sur relativement peu de notions et principes fondamentaux. Mais dès qu'on les a tous assimilé, tout devient cohérent d'un coup dans la compréhension globale.
C'est du moins ce qu'on peut dire du langage proprement dit. Il convient de ne pas le confondre avec les caractéristiques propres à toute la programmation toute faite apportée par les références cochées.
Autodidacte, pas vraiment, je ne vais pas détailler la très ancienne histoire de mon cursus, débutant par un CAP d'électronique, un stage à Pec-Rhin Ottmarsheim où j'ai rencontré quelqu'un qui suivait des cours d'informatique par correspondance, auxquels je me suis aussitôt inscrit, l'essentiel de ma carrière à ALSTHOM en FORTRAN et Assembleur IBM360 pour finir par VBA Excel
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonjour.
Ajouté une feuille avec une table de Berger mélangée, uniquement avec des numéros de joueurs pour pouvoir puiser des noms dans une liste avec des =INDEX(TabNoms;INDEX(TabBerger;N°R;N°J+1))
 

Pièces jointes

  • ListeAléatBoubou1973.xlsm
    132.8 KB · Affichages: 4
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…