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 :

Mastermind langage C grand problème


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 8
    Par défaut Mastermind langage C grand problème
    Salut tout le monde !

    En fait, je suis arrivé à tirer aléatoirement quatre nombres entre {0,.......9} et je suis arrivé à faire une boucle qui me permet de saisir quatre nombres au clavier, mais le problème de mon blocage, c'est concernant la comparaison entre les quatre nombres tirés aléatoirement et les 4 nombres saisis par le joueur !

    Sachant que le professeur a exigé de faire le programme sans utilisation des tableaux. Sinon, je crois que j'aurais la chance de me sortir de ça. Aidez moi, merci d'avance !

    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
     
    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    int random (int N)
     
    {
    	int value;
            value = rand () % (N) ;
     	return value;
    }
     
     
    int main (void) {
            int n=9,i=1,j,c;
     
             srand(time(NULL));
     
              do
                            { 
                printf("   %4d \t ",random(n));
     
     
     
                   for(j=0;j<i;j++)
                          {
     
             scanf(" %4d  ",&c);
     
               } i++; 
               }while(i==5 && j==4);
                           system("pause");
                              }
    … ne marche pas. Pourquoi ?
    J'aimerais que quand « i == 5 », on arrête. Comme ça, on aura 1 nombre tiré aléatoirement et 1 nombre saisi.

    Genre :

    Nombre tiré aléatoirement : 1 nombre saisi : 5 i=1 && j=0
    Nombre tiré aléatoirement : 0 nombre saisi : 9 i=2 && j=1
    Nombre tiré aléatoirement : 4 nombre saisi : 2 i=3 && j=2
    Nombre tiré aléatoirement : 8 nombre saisi : 1 i=4 && j=3

    Quand i=5 && j=4, la boucle do while va tout arrêter (j'ai mis i=5 && j=4 parce que ils vont augmenter de 1)

    Ce qui donne une répétition de 4 fois pour un tirage aléatoire d'un nombre i et la saisie au clavier d'un nombre j .

    Alors après, ça serait facile de les comparer mais là, il y a un problème sur mon programme : il ne fait pas ce que j'analyse, ni ce que j'ai envie de faire !

    Voila une autre analyse que j'ai faite mais qui ne marche pas non plus.

    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
     
    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    int random (int N)
     
    {
    	int value;
            value = rand () % (N) ;
     	return value;
    }
     
     
    int main (void) {
            int n=9,i,c,j=random(n);
            i=c;
             srand(time(NULL));
     
              do{
                for(j=0;j<4;j++)
     
                                    {
                 for(i=0;i=j;i++)
                                                    {
     
                 printf("   %4d \t ",random(n));
     
                      scanf(" %4d  ",&c);
                }
                                                    }
                } while(j==4 && i==4);
                system("pause");
                              }

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Bonjour,

    Pourrais-tu indenter ton code correctement?

    Ensuite, je ne comprend pas la logique de ton algorithme.

    Ne devrais-tu pas faire :
    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
    //déterminer les 4 chiffres
    //initialisation de srand
    chiffre1 := random(..);
    chiffre2 :=random(..);
    chiffre3 := random(..);
    chiffre4 := random(..);
     
    tant que la partie n'est pas finie
             //l'utilisateur rentre sa proposition
              scanf("...", &chiffreUtilisateur1);
              scanf("...", &chiffreUtilisateur2);
              scanf("...", &chiffreUtilisateur3);
              scanf("...", &chiffreUtilisateur4);
              //vérification
              bon := 0;
              malPositionne := 0;
              Si chiffreUtilisateur1 == chiffre1 alors bon++;
              Sinon si chiffreUtilisateur1 == .....
              .......
    fin tant que
    Après il ne te reste plus qu'à vérifier toutes les possibilités.

  3. #3
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 8
    Par défaut
    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
    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    int random (int N)
     
    {
    	int value;
            value = rand () % (N) ;
     	return value;
    }
    int Saisie(int b)
    {
        int saisie;
                   saisie= scanf("%d",&b);
                  return b;
                   }
     
    int main (void) {
            int n=9,i,c;
            int chiffre1,chiffre2,chiffre3,chiffre4;
            int nbsaisie1,nbsaisie2,nbsaisie3,nbsaisie4;
             srand(time(NULL));
     
             chiffre1 = random(n);
             chiffre2 = random(n);
             chiffre3 = random(n);
             chiffre4 = random(n); 
    printf("   %d %d %d %d \t ",chiffre1,chiffre2,chiffre3,chiffre4);
     
              nbsaisie1=Saisie(c);
              nbsaisie2=Saisie(c);
              nbsaisie3=Saisie(c);
              nbsaisie4=Saisie(c);
     
           printf("   %d %d %d %d \t ",nbsaisie1,nbsaisie2,nbsaisie3,nbsaisie4);
                system("pause");
                              }
    Merci ça marche
    mais une question
    est ce que pour la saisie & le random je peux pas les faire avec des boucles ?

  4. #4
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Oui c'est possible de passer par des boucles mais c'est vraiment pas pratique car il te faudra jouer avec les %K et /K
    Avec K ton nombre de possibilités pour un emplacement.

Discussions similaires

  1. S.O.S Ubuntu grand problème
    Par LaGhyoute dans le forum Administration système
    Réponses: 3
    Dernier message: 11/03/2012, 16h44
  2. [CS5] AS3 Grand débutant = Grands problémes :)
    Par Tyrgann dans le forum Intégration
    Réponses: 1
    Dernier message: 23/02/2011, 00h49
  3. GRAND Problème avecTomcat
    Par gloglo dans le forum Tomcat et TomEE
    Réponses: 11
    Dernier message: 22/09/2006, 03h35

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