Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1297 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Algorithme / programmation tournoi poules match défis

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Algorithme / programmation tournoi poules match défis

n°1945361
starkoala
Posté le 27-11-2009 à 15:09:26  profilanswer
 

Salut @ tous,
 
J'ai un petit soucis, je suis actuellement en train de réaliser une feuille excel qui me permettra d'organiser un tournoi de foot en salle. De nature tres pointilleux, je voudrais que tout soit automatique.
 
Dans la feuille, je rentre le nomre d'euipes, le nombre de poules, et tout ce beau monde se reparti comme il faut, ca c'est bon, ca marche.
 
ex : 16 equipes 4 poules -> 4 equipes par poules (logique)
      16 equipes 3 poules -> 1 poule de 6 equ et 2 poules de 5 equ
 
Bref jusque la, tout marche bien.
 
Mon probleme est le suivant:
 
Je veux maintenant etablir la liste de tous les matchs à jouer. On considere que toutes les equipes d'une meme poule se rencontreront.
Donc pour une poule de 4, il y aura 3 matchs par équipes, soit 6 matchs en tout (4*3 /2 ), repartis comme suit:
 
M1 :1-2
M2 :3-4
M3 :1-3
M4 :2-4
M5 :1-4
M6 :3-2
 
Je n'arrive pas à trouver d'algorithmes pour me generer ce genre de chose. essayez rien qu'avec 6 equipes et ca devient tres chaud. D'autant qu'il faut essayer de rester equitable et eviter de faire jouer une equipe 2 fois de suite, ou a intervalle irrégulier (genre l'equipe joue les 2 premiers matchs puis attend 5 matchs avant d'en jouer 3 d'affiler)
 
Pour simplifier la chose on considere pour l'instant qu'un seul terrain, a l'avenir on pourra imaginer repartir le tout sur 2,3,...,n terrains.
 
J'ajoute egalement que toutes les poules ne sont pas automatiquement des nombre paires (l'exemple 2 considerais 3 poules, 1 de 6 et 2 de 5 equipes)
 
Ce que je cherche donc en priorite c'est un algorithme, mais pour info je programme ma feuille en VBA (connaissance basique)
 
 
Voila, selon moi ca c'est un bon probleme, que certains prof on peut etre meme deja posé à leurs eleves. De mon cote je continue de chercher, et si  j'ai (nan, quand j'aurai) la solution je vous en ferais part.
 
Hop Salut @ tous


Message édité par starkoala le 27-11-2009 à 15:13:26
mood
Publicité
Posté le 27-11-2009 à 15:09:26  profilanswer
 

n°1945382
starkoala
Posté le 27-11-2009 à 16:09:08  profilanswer
 

Bon, ce petit code deja genere tous les matchs a disputer, mais ne les classes pas.
 
'nbrequ = Nombre d'equipes
 
For i = 2 To nbrequ
     
        For j = 1 To i - 1
         
            Sheets("feuil1" ).Cells(i, j).Value = j & " _ " & i
         
        Next
         
    Next

n°1945392
frankie_fl​owers
Posté le 27-11-2009 à 16:36:14  profilanswer
 

Le problème est intéressant.
Il y a certainement une solution pour classer l'ordre des matches, mais elle n'est pas si évidente.
 
A vue de nez, dans une poule de 4 équipes, il semble impossible d'avoir mieux que dans ton exemple : 2 équipes devront enchainer 2 matches, et les 2 équipes seront favorisées.
Par contre à partir de 5 équipes c'est possible de laisser un match de repos à chacun.

n°1945403
frankie_fl​owers
Posté le 27-11-2009 à 17:02:26  profilanswer
 

Voici les grandes lignes d'un algo qui devrait fonctionner (c'est celui que j'ai utilisé pour classer manuellement les matches d'une poule de 5) :
 

Code :
  1. Match 1 : A contre B
  2. Match N : Pour chaque combinaison X-Y de 2 équipes :
  3.           Si cette combinaison a déjà été choisie pour un match < N, tu l'élimines et tu passes à la suivante
  4.           Sinon, Si X ou Y a déjà joué le match N-1 (voir note), tu l'élimines et tu passes à la suivante
  5.           Sinon, Match N = X contre Y


 
Note : ce chiffre 1 devrait idéalement être une variable M, et au lieu de vérifier seulement le dernier match, il faudrait vérifier les M derniers matches. M doit pouvoir se calculer en fonction de la taille de la poule : le nombre de "matches de repos" augmente logiquement avec la taille de la poule (à condition de jouer sur un seul terrain).


Message édité par frankie_flowers le 27-11-2009 à 17:03:23
n°1945404
seniorpapo​u
Posté le 27-11-2009 à 17:04:26  profilanswer
 

Bonsoir,
tu veux le faire toi-même??
sinon:
http://www.logitheque.com/logiciel [...] _28045.htm
 
il semble gratuit
Cordialement

n°1946273
starkoala
Posté le 01-12-2009 à 14:35:21  profilanswer
 

Salut, merci pour vos reponses,
 
@ Frankie Flowers
 
Oui tu as raison, cet algorithme fonctionnerait sans doute.
 
As tu essayé le code VBA que j'ai mis ? je crois qu'il dispense de la verification que tu fait en ligne 3, si j'ai bien compris.
 
Une chose aussi, dans ta ligne 4 tu evite de faire joueur une equipe 2 fois d'affilé, et pour ca, tu saute le match qui ferais rejouer une equipe, le probleme c'est qu'une fois ce match sauté tu ne le refais pas jouer.
 
Bref, sinon je vais essayer de programmer quelque chose dans ce gout la.
 
@ Seniorpapou
 
Oui je veux le faire moi meme, c'est en quelque sorte un petit defis, ca m'entrainne aussi un peu sur VBA.
 
Pour info j'ai installé ton logiciel, et bien qu'il demande une clé d'activation, il est gratuit.Je l'ai essayé et il est réellement SUPER. En fait c'est a ca que je souhaiterais aboutir :p, mais sous Excel.


Message édité par starkoala le 01-12-2009 à 14:43:33

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Algorithme / programmation tournoi poules match défis

 

Sujets relatifs
Programmation Flex getVideoALGORITHME, aidez moi svp
Regex match last indexCap ou pas cap de portabiliser QUICK HIDE WINDOWS?? >>>DEFIS
programmation wifi linux en Caide java: programmation d'une boite a rythme
Programmation pythonRenseignements pour programmation database sur sharepoint
Programmation script shell ksh unixles fonctions "thread_safe" et la programmation multi-thread
Plus de sujets relatifs à : Algorithme / programmation tournoi poules match défis


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR