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

C++ Discussion :

Génération d'un calendrier de football !


Sujet :

C++

  1. #21
    Membre régulier
    Inscrit en
    Novembre 2003
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 142
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par doudou62
    Bah oue j'veux bien mais j'connais pas du tt comment on traduit cet algo !

    :s
    Bah il suffit de le lire attentivement et de le retranscrire en C++.

    Voici mon code en Java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    	int[][] getCalendrier(int nbParticipants) {
    		int k;
    		int[][] calendrier = new int[nbParticipants][nbParticipants - 1];
     
    		for (int l = 0; l < nbParticipants - 1; l++) {
     
    			k = nbParticipants - l;
    			for (int c = 0; c < nbParticipants - 1; c++) {
     
    				if (l + 1 == k) {
    					calendrier[l][c] = nbParticipants;
    				} else {
    					calendrier[l][c] = k;
     
    				}
    				k--;
    				if (k == 0) {
    					k = nbParticipants - 1;
    				}
    			}
     
    		}
     
    		for (int c = 0; c < nbParticipants - 1; c++) {
    			for (int l = 0; l < nbParticipants - 1; l++) {
    				if (calendrier[l][c] == nbParticipants) {
    					calendrier[nbParticipants - 1][c] = l + 1;
    				}
    			}
    		}
     
    		return calendrier;
    	}

  2. #22
    Membre régulier
    Inscrit en
    Novembre 2003
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 142
    Points : 80
    Points
    80
    Par défaut
    Hylvenir, ta méthode ne fonctionne pas pour les journées paires. Certaines équipes jouent contre elles-mêmes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Jour 2 : [Olympique Lyonnais] joue contre [OGC Nice]
    Jour 2 : [RC Lens] joue contre [ES Troyes AC]
    Jour 2 : [Olympique de Marseille] joue contre [Paris Saint-Germain]
    Jour 2 : [FC Sochaux] joue contre [FC Nantes]
    Jour 2 : [Lille OSC] joue contre [AS Monaco]
    Jour 2 : [Saint-Etienne] joue contre [Valenciennes]
    Jour 2 : [AS Nancy] joue contre [FC Lorient]
    Jour 2 : [Girondins de Bordeaux] joue contre [Rennes]
    Jour 2 : [Toulouse FC] joue contre [AJ Auxerre]
    Jour 2 : [Le Mans] joue contre [Le Mans]
    Jour 2 : [AJ Auxerre] joue contre [Toulouse FC]
    Jour 2 : [Rennes] joue contre [Girondins de Bordeaux]
    Jour 2 : [FC Lorient] joue contre [AS Nancy]
    Jour 2 : [Valenciennes] joue contre [Saint-Etienne]
    Jour 2 : [AS Monaco] joue contre [Lille OSC]
    Jour 2 : [FC Nantes] joue contre [FC Sochaux]
    Jour 2 : [Paris Saint-Germain] joue contre [Olympique de Marseille]
    Jour 2 : [ES Troyes AC] joue contre [RC Lens]
    Jour 2 : [OGC Nice] joue contre [Olympique Lyonnais]
    Jour 2 : [CS Sedan Ardennes] joue contre [CS Sedan Ardennes]
    
    Jour 4 : [Olympique Lyonnais] joue contre [Paris Saint-Germain]
    Jour 4 : [RC Lens] joue contre [FC Nantes]
    Jour 4 : [Olympique de Marseille] joue contre [AS Monaco]
    Jour 4 : [FC Sochaux] joue contre [Valenciennes]
    Jour 4 : [Lille OSC] joue contre [FC Lorient]
    Jour 4 : [Saint-Etienne] joue contre [Rennes]
    Jour 4 : [AS Nancy] joue contre [AJ Auxerre]
    Jour 4 : [Girondins de Bordeaux] joue contre [Le Mans]
    Jour 4 : [Toulouse FC] joue contre [Toulouse FC]
    Jour 4 : [Le Mans] joue contre [Girondins de Bordeaux]
    Jour 4 : [AJ Auxerre] joue contre [AS Nancy]
    Jour 4 : [Rennes] joue contre [Saint-Etienne]
    Jour 4 : [FC Lorient] joue contre [Lille OSC]
    Jour 4 : [Valenciennes] joue contre [FC Sochaux]
    Jour 4 : [AS Monaco] joue contre [Olympique de Marseille]
    Jour 4 : [FC Nantes] joue contre [RC Lens]
    Jour 4 : [Paris Saint-Germain] joue contre [Olympique Lyonnais]
    Jour 4 : [ES Troyes AC] joue contre [CS Sedan Ardennes]
    Jour 4 : [OGC Nice] joue contre [OGC Nice]
    Jour 4 : [CS Sedan Ardennes] joue contre [ES Troyes AC]

  3. #23
    Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    Pfioulala ! J'suis en cours et ouah avec mon pote on galere de trop !!!

    On a jamais fait de java ! Meme si ca ressemble enormement au c++ ca ne fonctionne pas :s

  4. #24
    Membre régulier
    Inscrit en
    Novembre 2003
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 142
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par doudou62
    Pfioulala ! J'suis en cours et ouah avec mon pote on galere de trop !!!

    On a jamais fait de java ! Meme si ca ressemble enormement au c++ ca ne fonctionne pas :s
    Tu disposes de tous les éléments nécessaires pour y arriver.
    Il faudrait être prêt à faire un petit effort...

    La seule chose qui diffère entre mon code Java et du code C++ c'est la déclaration du tableau... Tu fais une recherche sur internet à propos de la déclaration d'un tableau en C++ si tu ne sais pas comment faire et tu auras ta réponse.

  5. #25
    Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    Si si je sais comment on déclare un tableau lol !

    Mais quand je transpose ton java en C++, cela ne fonctionne pas ! Ou peut-etre est-ce mon affichage qui merdouille, car j'obtiens Troyes - Troyes à toutes les journées !!!

    Ce que je ne comprend pas, c'est que dans ton programme je ne vois pas de fonction qui choisit un nombre aléatoirement ?

    Merci.

  6. #26
    Membre régulier
    Inscrit en
    Novembre 2003
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 142
    Points : 80
    Points
    80
    Par défaut
    Je t'ai donné la solution pour remplir ton tableau bidimensionnel (équipes, journées) mais il te reste du travail.

    Il faut après que tu parcours celui-ci pour avoir tous les matches. Mais il faut faire une sélection car pour chaque journée tu vas récupérer le symétrique de ton match (ie: équipe 1 vs équipe 15 sur la ligne de l'équipe 1 et équipe 15 vs équipe 1 sur la ligne de l'équipe 15).

  7. #27
    Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    Je pense que je vais faire la méthode de Helvenir ! On verra bien ! Mais merci pour tout Speedster !!!

    J'ai compris des trucs grâce à toi !!

  8. #28
    Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par Hylvenir
    Par exemple, (avant 10h j'suis jamais trop réveillé)

    Pour générer les matchs (sans hasard):
    jour 1 : 1 contre 20, 2 contre 19, ...., 9 contre 10
    J'ai fait la trace de ce que t'as ecrit et si j'me suis pas trompé, ca fait =>
    1 contre 20, 2 contre 19, 3 contre 18, 4 contre 17, 5 contre 16, 6 contre 15, 7 contre 14, 8 contre 13 , 9 contre 12 , 10 contre 11 !

    Le probleme c'est pour la 2eme journée !!

    Regardez bien : 1 contre 19, 2 contre 18, 3 contre 17, 4 contre 16, 5 contre 15, 6 contre 14, 7 contre 13, 8 contre 12, 9 contre 11 et 10 contre 10 !

    Comment faire ? :/

  9. #29
    Membre averti
    Avatar de David Fleury
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 253
    Points : 307
    Points
    307
    Par défaut
    Ah oui,
    bah faut corriger
    Je vais pas faire tout seul quand même.
    Je verrai si j'ai un peu de temps ce soir mais j'arrive pas à brancher ma PS2 sur mon écran en RGBVH

  10. #30
    Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    J'ai réussi mais seulement pour 9 journées ! C'est à dire : les equipes de 1 a 10 contre celles de 11 à 20 :/

    apres j'suis perdu !!!

  11. #31
    Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    En fait, j'ai un peu modifier mon programme ! Mon TabRencontre en clair !

    struct TypeMatch
    {
    int NumEquipe1;
    int NumEquipe2;
    int ScoreEquipe1;
    int ScoreEquipe2;
    };
    TypeMatch TabRencontre[20][21];

    J'veux faire ca !

    Journee 1
    Match 1 NumEquipe1 - NumEquipe2
    Match 2 NumEquipe1 - NumEquipe2
    Match 3 NumEquipe1 - NumEquipe2
    Match 4 NumEquipe1 - NumEquipe2
    Match 5 NumEquipe1 - NumEquipe2
    Match 6 NumEquipe1 - NumEquipe2
    Match 7 NumEquipe1 - NumEquipe2
    Match 8 NumEquipe1 - NumEquipe2
    Match 9 NumEquipe1 - NumEquipe2
    Match 10 NumEquipe1 - NumEquipe2


    Please help me !!!

  12. #32
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 38
    Points : 27
    Points
    27
    Par défaut
    Citation Envoyé par speedster
    Bonjour,

    J'ai implémenté un algorithme de génération d'un calendrier de football à partir de l'organigramme suivant :



    C : Colonnes de ton tableau (journées)
    L : Lignes de ton tableau (équipes)

    J'y suis arrivé donc tu ne devrais pas avoir de problèmes.
    Ca te génère uniquement les matches aller.

    A toi d'utiliser les structures qui vont bien.

    Bon courage
    Bonsoir juste une question dans ton algo "cells" sa veut dire quoi?
    merci

  13. #33
    Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    Si j'ai bien compris, c'est le nom du tableau ^^

  14. #34
    Membre régulier
    Inscrit en
    Novembre 2003
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 142
    Points : 80
    Points
    80
    Par défaut
    Oui, cells est le nom du tableau contenant sur les lignes les équipes, et sur les colonnes les journées.

    Bon doudou62, le problème du calendrier des rencontres n'est pas si simple... Mais l'algo que je t'ai donné fonctionne parfaitement.

    Implémente la fonction que je t'ai donnée pour remplir ton tableau et affiche-le pour que tu vois ce qui se passe. Ensuite il faut procéder à un nettoyage de celui-ci pour récupérer uniquement les données pertinentes (c'est-à-dire éliminer les matches doublons).

    TypeMatch TabRencontre[20][21];


    S'il y a 20 équipes, il y a 19 journées de matches aller et donc 38 journées avec les matches retour.

    Tu devrais plutôt déclarer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TypeMatch TabRencontre[20][19];
    Pour l'affichage du tableau, tu parcours d'abord les colonnes et ensuite les lignes. Supposons que tu aies , alors cela veut dire que l'équipe d'indice i rencontre l'équipe d'indice k lors de la journée j.

  15. #35
    Membre averti
    Avatar de David Fleury
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 253
    Points : 307
    Points
    307
    Par défaut
    Voici une version corrigée de la fonction MatchJournee.
    Elle devrait poser moins de problème.
    Corrigé à la bourrin...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    pair< int, int > MatchJournee( int numEquipe, int journee )
    {
        int adversaire = NombreEquipes - 1 - ( numEquipe + journee - 1 ) % NombreEquipes;
        if ( adversaire == numEquipe ) adversaire += NombreEquipes / 2;
        adversaire %= NombreEquipes;
        return pair<int, int>( numEquipe, adversaire );
    }

  16. #36
    Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    Enfin !!!!!

    J'me suis bien concentré sur ton algo Speedster et ca marche !!!

    Merci à toi

    Maintenant il ne reste plus qu'à gere les scores et le classement mais ca ne devrait pas poser de probleme !!

    Encore merci à tous pour toutes vos réponses (Plus à toi Speedster

    Kiss.

  17. #37
    Membre régulier
    Inscrit en
    Novembre 2003
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 142
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par doudou62
    Enfin !!!!!

    J'me suis bien concentré sur ton algo Speedster et ca marche !!!

    Merci à toi

    Maintenant il ne reste plus qu'à gere les scores et le classement mais ca ne devrait pas poser de probleme !!

    Encore merci à tous pour toutes vos réponses (Plus à toi Speedster

    Kiss.
    Je suis content que tu y sois arrivé.
    Bonne chance pour la suite.

  18. #38
    Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 20
    Points : 4
    Points
    4
    Par défaut
    Merci !!!

  19. #39
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 11
    Points : 11
    Points
    11
    Par défaut
    Bonjour,

    Malgrès que ce sujet soit un peu vieu j'essai moi aussi de générer un calendrier pour un petit programme de géstion de championnat. La solution de speedster affiche des doublons dans les matchs est-ce normal dans ce cas je dois trouver un moyen de les enlever ou c'est un problème dans mon algorithme?

    Merci d'avance!

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/07/2012, 15h06
  2. [2.x] [Twig] Génération d'un calendrier
    Par DreamCatcher89 dans le forum Symfony
    Réponses: 3
    Dernier message: 20/04/2012, 12h20
  3. Génération d'un calendrier Postgres
    Par patrick21 dans le forum Requêtes
    Réponses: 2
    Dernier message: 28/12/2010, 16h40
  4. Génération d'un calendrier sportif
    Par pikmin dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 25/03/2008, 22h50

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