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 :

probleme fonction !


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2007
    Messages : 197
    Par défaut probleme fonction !
    Bonjour a tous !! je suis en train de programmer le mastermind en C, mais au niveau des couleur Bien Placé et Mal Placé qui dans mon code son des focntions, j'ai un peuti souci !!


    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    #include <stdio.h>
    #include <myconio.h>
    #include "fonction.h"
     
    int main()
    {
    int couleur,i,nbessai=1,BP,j, MP;
     
    char combinaison[5];
    char copie[5];
    char essai[5];
     
     
     
     
     
    printf("                         **********************************\n");
    printf("                         *                                *\n");
    printf("                         *                                *\n");
    printf("                         *          MASTERMIND            *\n");
    printf("                         *                                *\n");
    printf("                         *                                *\n");
    printf("                         *                                *\n");
    printf("                         **********************************\n");
     
    printf("\n\n\n");
    printf("                                         ---------------------------\n");
    printf("La liste de couleurs est la suivante:   | B - R - N - V - J - O - G | ");
    printf("                                                   ---------------------------\n");
    printf("\n\n\n");
    printf("\n\n\n");
    printf("                Joueur 1 saisir la combinaison de 5 couleurs:  ");
    printf("\n\n\n");
    printf("\n\n\n");
    printf("                       ___________________\n");
    printf("                      |   |   |   |   |   |  ");
    printf("                                                         |___|___|___|___|___|");
    printf("\n\n\n");
    printf("\n\n\n");
     
     
    couleur = 1;
    for(i=0;i<5;i++)
       {
        gotoxy(20,25);
        printf("Saisissez la couleurs %d ",couleur);
        gotoxy(19,25);
        printf("\n             couleur : ");
        combinaison[i]=getch();
        putchar(combinaison[i]);
     
        affichage(combinaison, couleur, i);
        couleur++;
       }
       system("cls");
    Ici dans cette prmeiére parti je demande au joueur 1 de saisir son code de couleur !! le system("cls") me permet de passer à la page suivant ci dessous



    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    printf("                         **********************************\n");
    printf("                         *                                *\n");
    printf("                         *                                *\n");
    printf("                         *          MASTERMIND            *\n");
    printf("                         *                                *\n");
    printf("                         *                                *\n");
    printf("                         *                                *\n");
    printf("                         **********************************\n");
     
    printf("\n\n\n");
    printf("                                         ---------------------------\n");
    printf("La liste de couleurs est la suivante:   | B - R - N - V - J - O - G | ");
    printf("                                                   ---------------------------\n");
    printf("\n\n\n");
    printf("\n\n\n");
    printf("\n\n\n");
    printf("\n\n\n");
    printf("                       ___________________\n");
    printf("                      |   |   |   |   |   |  ");
    printf("                                                         |___|___|___|___|___|");
    printf("\n\n\n");
    printf("\n\n\n");
     
     
    i=0;
    while(BP!=5)
     
    {
        couleur=1;
        for(i=0;i<5;i++)
        {
            gotoxy(13,18);
                printf("Saisissez votre essai %d",nbessai);
            gotoxy(12,18);
                printf("\n             couleur %d : ",couleur);
     
                essai[i]=getch();  /*lecture du caractére*/
                putchar(essai[i]);   /*affichage du tableau*/
     
                    affichage1 (essai,couleur,i);
     
            copie[i]=essai[i];  /*le tablo copie recoi les caractére du tablo essai*/
            couleur++;
        }
     
            BP = fonctionBP(combinaison, copie);
            MP = fonctionMP(combinaison, copie);
     
     
     
            gotoxy(20,33);
                printf("\n         BienPlace=%d",BP);
            gotoxy(20,34);
                printf("\n         MalPlace=%d\n",MP);
     
    nbessai++;
    }
     
     return 0;
    }

    Sur cette page le joueur 2 doit essayé de trouver la combinaison de couleur , mais au niveau du calcul des focntionBP et FonctionMp il y a un problem , parceque sa maffiche un nombre astronomique






    Vous verez ci desous les focntions

    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
    int fonctionBP( char tab1[5], char tab2[5])
    {
        int   i, BienP;
        for(i=0;i<5;i++)
        {
            if((tab1[i]==tab2[i]) || (tab2[i]=='Y') || (tab1[i]=='X'))
                {
                    BienP++;
                    tab1[i] = 'X';
                    tab2[i]='Y';
                }
        }
     
     
     
     
     
    return BienP;
    }




    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
    int fonctionMP( char tab1[5], char tab2[5])
    {
        int x, i, MalP;
        for(x=0;x<5;x++)
            {
                if (tab2[x]=='Y')
                {
                    for(i=0;i<5;i++)
                    {
     
                        if(tab1[i]==tab2[x])
                        {
                            MalP=MalP+1;
                            tab1[i]='X';
                            tab2[x]='Y';
                        }
     
     
     
                    }
                }
            }
     
     
    return MalP;
    }

    Merci pour votre aide!!

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 833
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 833
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par kamnouz Voir le message
    Bonjour a tous !! je suis en train de programmer le mastermind en C, mais au niveau des couleur Bien Placé et Mal Placé qui dans mon code son des focntions, j'ai un peuti souci !!


    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    #include <stdio.h>
    #include <myconio.h>
    #include "fonction.h"
     
    int main()
    {
    int couleur,i,nbessai=1,BP,j, MP;
     
    char combinaison[5];
    char copie[5];
    char essai[5];
     
     
     
     
     
    printf("                         **********************************\n");
    printf("                         *                                *\n");
    printf("                         *                                *\n");
    printf("                         *          MASTERMIND            *\n");
    printf("                         *                                *\n");
    printf("                         *                                *\n");
    printf("                         *                                *\n");
    printf("                         **********************************\n");
     
    printf("\n\n\n");
    printf("                                         ---------------------------\n");
    printf("La liste de couleurs est la suivante:   | B - R - N - V - J - O - G | ");
    printf("                                                   ---------------------------\n");
    printf("\n\n\n");
    printf("\n\n\n");
    printf("                Joueur 1 saisir la combinaison de 5 couleurs:  ");
    printf("\n\n\n");
    printf("\n\n\n");
    printf("                       ___________________\n");
    printf("                      |   |   |   |   |   |  ");
    printf("                                                         |___|___|___|___|___|");
    printf("\n\n\n");
    printf("\n\n\n");
     
     
    couleur = 1;
    for(i=0;i<5;i++)
       {
        gotoxy(20,25);
        printf("Saisissez la couleurs %d ",couleur);
        gotoxy(19,25);
        printf("\n             couleur : ");
        combinaison[i]=getch();
        putchar(combinaison[i]);
     
        affichage(combinaison, couleur, i);
        couleur++;
       }
       system("cls");
    Ici dans cette prmeiére parti je demande au joueur 1 de saisir son code de couleur !! le system("cls") me permet de passer à la page suivant ci dessous



    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    printf("                         **********************************\n");
    printf("                         *                                *\n");
    printf("                         *                                *\n");
    printf("                         *          MASTERMIND            *\n");
    printf("                         *                                *\n");
    printf("                         *                                *\n");
    printf("                         *                                *\n");
    printf("                         **********************************\n");
     
    printf("\n\n\n");
    printf("                                         ---------------------------\n");
    printf("La liste de couleurs est la suivante:   | B - R - N - V - J - O - G | ");
    printf("                                                   ---------------------------\n");
    printf("\n\n\n");
    printf("\n\n\n");
    printf("\n\n\n");
    printf("\n\n\n");
    printf("                       ___________________\n");
    printf("                      |   |   |   |   |   |  ");
    printf("                                                         |___|___|___|___|___|");
    printf("\n\n\n");
    printf("\n\n\n");
     
     
    i=0;
    while(BP!=5)
     
    {
        couleur=1;
        for(i=0;i<5;i++)
        {
            gotoxy(13,18);
                printf("Saisissez votre essai %d",nbessai);
            gotoxy(12,18);
                printf("\n             couleur %d : ",couleur);
     
                essai[i]=getch();  /*lecture du caractére*/
                putchar(essai[i]);   /*affichage du tableau*/
     
                    affichage1 (essai,couleur,i);
     
            copie[i]=essai[i];  /*le tablo copie recoi les caractére du tablo essai*/
            couleur++;
        }
     
            BP = fonctionBP(combinaison, copie);
            MP = fonctionMP(combinaison, copie);
     
     
     
            gotoxy(20,33);
                printf("\n         BienPlace=%d",BP);
            gotoxy(20,34);
                printf("\n         MalPlace=%d\n",MP);
     
    nbessai++;
    }
     
     return 0;
    }

    Sur cette page le joueur 2 doit essayé de trouver la combinaison de couleur , mais au niveau du calcul des focntionBP et FonctionMp il y a un problem , parceque sa maffiche un nombre astronomique






    Vous verez ci desous les focntions

    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
    int fonctionBP( char tab1[5], char tab2[5])
    {
        int   i, BienP;
        for(i=0;i<5;i++)
        {
            if((tab1[i]==tab2[i]) || (tab2[i]=='Y') || (tab1[i]=='X'))
                {
                    BienP++;
                    tab1[i] = 'X';
                    tab2[i]='Y';
                }
        }
     
     
     
     
     
    return BienP;
    }




    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
    int fonctionMP( char tab1[5], char tab2[5])
    {
        int x, i, MalP;
        for(x=0;x<5;x++)
            {
                if (tab2[x]=='Y')
                {
                    for(i=0;i<5;i++)
                    {
     
                        if(tab1[i]==tab2[x])
                        {
                            MalP=MalP+1;
                            tab1[i]='X';
                            tab2[x]='Y';
                        }
     
     
     
                    }
                }
            }
     
     
    return MalP;
    }

    Merci pour votre aide!!
    Quand tu veux tu initialises "BienP" et "MalP".
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2007
    Messages : 197
    Par défaut
    Effectivement je viens d'initialiser BienP et malP a 0 !! et les resultat qui s'affiche ne depasse jamis 5 donc tout va bien de se coté . Mais le calcul reste incohérent

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 833
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 833
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par kamnouz Voir le message
    Effectivement je viens d'initialiser BienP et malP a 0 !! et les resultat qui s'affiche ne depasse jamis 5 donc tout va bien de se coté . Mais le calcul reste incohérent
    Ben sincèrement je ne comprends pas trop ton idée. C'est quoi ces "X" et ces "Y" ??? Et "tab1" et "tab2" ???
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2007
    Messages : 197
    Par défaut
    tab1==> correspond au 1er tableau ( c'est a dire qu'il s'agit du tableau de combinaison que le joueur 2 doit trouver ) tab2 correspond au tableau ou le joueur 2 saisi ses essais !!!

    Lorsque le joueur 2 ( tab2) trouve une couleur bien placé et bien on remplace les couleur par des lettre par exemple ( X et Y ) dans les tablo tab1 et tab2. Comsa on ne traitera pas les elements identiques plusieurs fois!!

Discussions similaires

  1. [XSL]Probleme fonction recursive
    Par Le-Cortex dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 12/12/2005, 15h10
  2. [Mail] Probleme fonction mail()
    Par tissot dans le forum Langage
    Réponses: 1
    Dernier message: 14/11/2005, 12h55
  3. problème fonctions callback
    Par youp_db dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 02/10/2005, 14h47
  4. probleme fonction gethostbyname
    Par oclone dans le forum Développement
    Réponses: 6
    Dernier message: 14/04/2005, 10h31
  5. probleme fonction syntaxe
    Par gIch dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 28/02/2005, 09h52

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