IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Générer un calendrier de Matches


Sujet :

Algorithmes et structures de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    367
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 367
    Points : 414
    Points
    414
    Par défaut Générer un calendrier de Matches
    Bonjour,

    Mon premier message sur ce forum pour un probleme de logique
    J'essaye d'ecrire un gestionnaire de championnat. Mon championnat a la particularité de ne pas avoir de match retour. Donc chque joueur joue contre tous les joueurs une seule fois, et ne fais qu'un match par semaine.

    On pourrait representer les différents matches sur un tableau du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    JOUEUR	1	2	3	4	5
    1	x				
    2	x	x			
    3	x	x	x		
    4	x	x	x	x	
    5	x	x	x	x	x
    Je me suis inspiré d'un alogorithme pour générer le calendrier (désolé pour l'auteur) :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    semaine = 1
    POUR joueur = 1 à NombredeJoueur FAIRE
       POUR Adversaire = joueur +1 à NombredeJoueur FAIRE
          TANT QUE ( Joueur et Adversaire ont un match cette semaine) 	Semaine = semaine +1
          FIN TANT QUE
              Ajouter MATCH (semaine, joueur, adversaire)
        FIN POUR
    semaine = 1
    FIN POUR
    Lorsque je convertie tout cela pour tester la routine, j'ai bien les différents matches qui se créent. Mon soucis vient du numéro de semaine qui pour certains matches depassent le nombre de joueurs ! si j'ai 22 Joueurs, j'ai 21 semaines de championnat

    Je seche

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Salut
    Tu dois avoir un bug dans "( Joueur et Adversaire ont un match cette semaine)"
    Tu peux montrer son code ?
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    367
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 367
    Points : 414
    Points
    414
    Par défaut
    La routine me genere bien les 231 mathes (j'ai 22 joueurs). Le soucis porte uniquement sur le numero de semaine

    Voila ma chaine SQL

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strSQL = "SELECT * FROM TABLE1 WHERE (semaine_id = " & iSemaine & " AND joueur =" & iJoueur & ") OR (semaine_id = " & iSemaine & " AND adversaire = " & iAdversaire & ") OR (semaine_id = " & iSemaine & " AND adversaire = " & ijoueur & ") OR (semaine_id = " & iSemaine & " AND joueur = " & iAdversaire & ") "

  4. #4
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    J'ai programmé ton algo en C, il ne marche pas.Tu parcours la liste des joueurs dans l'ordre croissant et c'est ça qui ne va pas : par exemple pour 4 joueurs, 2 matchs par semaine ;

    semaine 1 joueur1 : 1 joueur2 2
    semaine 2 joueur1 : 1 joueur2 3
    semaine 3 joueur1 : 1 joueur2 4
    semaine 3 joueur1 : 2 joueur2 3
    semaine 4 joueur1 : 2 joueur2 4
    semaine 1 joueur1 : 3 joueur2 4
    Il faut que cherches une autre méthode, ça a souvent été évoqué dans ce forum.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    367
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 367
    Points : 414
    Points
    414
    Par défaut
    Merci pour ta reponse

    J'ai trouve en effet une idee interessante a creuser :

    On genere la premeire journée :

    1 vs 2
    3 vs 4
    5 vs 6
    7 vs 8

    Et on decale tout d'un cran

    3 vs 1
    5 vs 2
    7 vs 4
    8 vs 6

    Je vais y reflechir

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    367
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 367
    Points : 414
    Points
    414
    Par défaut
    J'ai utilisé la fonction de jmv

    J'ai pas vraiment compris "Modulo" mais en tous cas ca marche

    merci

  7. #7
    Membre éprouvé Avatar de Nemerle
    Inscrit en
    Octobre 2003
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Points : 1 213
    Points
    1 213
    Par défaut
    Citation Envoyé par Gwenn
    Merci pour ta reponse

    J'ai trouve en effet une idee interessante a creuser :

    On genere la premeire journée :

    1 vs 2
    3 vs 4
    5 vs 6
    7 vs 8

    Et on decale tout d'un cran

    3 vs 1
    5 vs 2
    7 vs 4
    8 vs 6

    Je vais y reflechir

    Exact! C'est un problème récurrent sur le forum! Il suffit en effet de "tourner" d'un cran les joueurs pour obtenir le résultat désiré!
    Nemerle, mathématicopilier de bars, membre du triumvirat du CSTM, 3/4 centre

  8. #8
    jmv
    jmv est déconnecté
    Membre confirmé Avatar de jmv
    Profil pro
    Enseignant
    Inscrit en
    Mai 2004
    Messages
    395
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2004
    Messages : 395
    Points : 603
    Points
    603
    Par défaut
    salut,

    j'avais posté une solution dans un ancien thread :
    http://www.developpez.net/forums/viewtopic.php?t=211009

    Citation Envoyé par Gween
    J'ai utilisé la fonction de jmv
    J'ai pas vraiment compris "Modulo"
    Citation Envoyé par Gween
    Mon soucis vient du numéro de semaine qui pour certains matches depassent le nombre de joueurs !
    Justement, tu as enlevé le "modulo", c'est pour ça que ton numéro de semaine dépasse le nombre de joueurs.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mars 2002
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par Nemerle
    Citation Envoyé par Gwenn
    Merci pour ta reponse

    J'ai trouve en effet une idee interessante a creuser :

    On genere la premeire journée :

    1 vs 2
    3 vs 4
    5 vs 6
    7 vs 8

    Et on decale tout d'un cran

    3 vs 1
    5 vs 2
    7 vs 4
    8 vs 6

    Je vais y reflechir

    Exact! C'est un problème récurrent sur le forum! Il suffit en effet de "tourner" d'un cran les joueurs pour obtenir le résultat désiré!
    Sauf qu'au bout du 4ieme ou 5ieme coup, tu te retrouves avec un match ayant déja eu lieu (2-1) ...

  10. #10
    Membre régulier
    Homme Profil pro
    Analyste
    Inscrit en
    Août 2003
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste
    Secteur : Services de proximité

    Informations forums :
    Inscription : Août 2003
    Messages : 85
    Points : 87
    Points
    87
    Par défaut
    Sauf si tu souhaites les matchs aller-retour
    Air startout

  11. #11
    Membre éprouvé Avatar de Nemerle
    Inscrit en
    Octobre 2003
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Points : 1 213
    Points
    1 213
    Par défaut
    Citation Envoyé par gmartintin
    Sauf qu'au bout du 4ieme ou 5ieme coup, tu te retrouves avec un match ayant déja eu lieu (2-1) ...
    J'avais mal lu: tu dois laisser le joueur 1 fixe, et faire une permutation circulaire sur les autres. C'est CA la bonne méthode
    Nemerle, mathématicopilier de bars, membre du triumvirat du CSTM, 3/4 centre

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Générer un calendrier automatique
    Par philippesorin dans le forum 1&1
    Réponses: 3
    Dernier message: 18/12/2007, 12h31
  2. Réponses: 4
    Dernier message: 20/09/2007, 16h38
  3. [MySQL] Faire un calendrier de match
    Par kriekbellevue dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 19/09/2007, 09h14
  4. Générer un calendrier dans une table
    Par freud dans le forum Bases de données
    Réponses: 9
    Dernier message: 06/04/2007, 14h26
  5. [Dates] Générer un calendrier
    Par EvilAngel dans le forum Langage
    Réponses: 1
    Dernier message: 10/08/2006, 00h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo