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

  FORUM HardWare.fr
  Programmation

  mastermind en c++ aussi mais sous dos avec Turbo c++.....

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

mastermind en c++ aussi mais sous dos avec Turbo c++.....

n°38346
papaolive
Posté le 09-06-2001 à 11:14:32  profilanswer
 

S'il vous plait pas taper , pas taper.
Je pensais avoir ma réponse avec le post pas loin dessous mais moi je ne fais que de l'initiation et avec Turbo c++
je dois faire :
Réaliser une application qui choisit au hasard une combinaison de 5 chiffres (compris entre 1 et 8) et qui propose à l’utilisateur de découvrir ce « code » secret.
 
A chaque proposition du joueur, le programme précisera :
 
 - Le nombre de chiffres exacts proposés à la bonne place
 - Le nombre de chiffres exacts mais proposés à la mauvaise place.
 
Si le code est découvert, le programme indiquera le nombre de coups tentés ; sinon, après 15 échecs, le programme s’arrêtera et indiquera au joueur la combinaison correcte.

 
Il parait que ça se fait en 10 mn pour un mec qui connais.  
J'achète 10 mn à quelqu'un si om me trouve ça.   :o))
 
Merci d'avance.

mood
Publicité
Posté le 09-06-2001 à 11:14:32  profilanswer
 

n°38347
verdoux
And I'm still waiting
Posté le 09-06-2001 à 11:36:40  profilanswer
 

C'est pas comme ça que ça marche sur ce forum.
Dans ton intérêt on ne te répondra que si tu poses des questions précises ou si tu soumets du code à critiquer :p

n°38350
papaolive
Posté le 09-06-2001 à 12:09:14  profilanswer
 

Merci de ton aide
c'est chaleureux de voir que même sur le net les âmes charitables sont là.

n°38658
RiffRaff
I'm not your boy toy !
Posté le 11-06-2001 à 10:42:20  profilanswer
 

Tout a fait d'accord. C un exercice de debutant, ca ne sert a rien de le faire faire par un autre, tu ne progresserais pas.
 
P.S. : tel qu'il est presente ca se fait en moins de 10 minutes

n°38717
papaolive
Posté le 11-06-2001 à 13:48:36  profilanswer
 

Merci de ton aide
c'est chaleureux de voir que même sur le net les âmes charitables sont là.

n°38722
tgrx
My heart is pumping for love
Posté le 11-06-2001 à 14:05:36  profilanswer
 

:sarcastic:
 
Reste dans ton petrin, vu que tu as l'air de t'y complaire... nous sommes ici car nous aimons l'informatique, la programmation, et nous avons tous envie de progresser.
 
Si ton histoire c'est pour un projet informatique dans ta fac par exemple, et que tu souhaites que quelqu'un fasse le boulot a ta place, tu t'es trompe d'endroit, ici c'est pas la croix rouge.
 
A bon entendeur...

n°38724
kadreg
profil: Utilisateur
Posté le 11-06-2001 à 14:09:12  profilanswer
 

Merci de ton aide
c'est chaleureux de voir que même sur le net les âmes charitables sont là.  
 
et hop, -1, portnawak


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°38729
minusplus
Posté le 11-06-2001 à 14:16:06  profilanswer
 

c'est un bot !

n°38812
papaolive
Posté le 11-06-2001 à 16:54:09  profilanswer
 

[Reste dans ton petrin, vu que tu as l'air de t'y complaire... nous sommes ici car nous aimons l'informatique, la programmation, et nous avons tous envie de progresser.]
 
J'ai 45 ans pauvre ...
Je suis pas à la fac mais à l'usine dans une forge !
Ce truc s'est pour obtenir une 'capacité' pour me servir de l'ordi de la boite.
Je m'en sert depuis 4 ans sans problème mais si tu veux c'est un aytre moyen de licencier les gens.
Je fais de la qaisie sous dos, alors imagine ce que j'ai à foutre avec du c/c++
J'ai pas le temps et l'energie et toi tu m'a fait perdre plus de temps que tu ne le merite.
Adieu
Fasse qu'un jour ta charité se retourne et que si tu veux qu'on te fasse un beau portail en fer forgé, et bien qu'on t'envoye le faire toi même.

 

[edit]--Message édité par PapaOlive--[/edit]

n°38820
Toucouch
Posté le 11-06-2001 à 17:14:00  profilanswer
 

PapaOlive a écrit a écrit :

[Reste dans ton petrin, vu que tu as l'air de t'y complaire... nous sommes ici car nous aimons l'informatique, la programmation, et nous avons tous envie de progresser.]
 
J'ai 45 ans pauvre ...
Je suis pas à la fac mais à l'usine dans une forge !
Ce truc s'est pour obtenir une 'capacité' pour me servir de l'ordi de la boite.
Je m'en sert depuis 4 ans sans problème mais si tu veux c'est un aytre moyen de licencier les gens.
Je fais de la qaisie sous dos, alors imagine ce que j'ai à foutre avec du c/c++
J'ai pas le temps et l'energie et toi tu m'a fait perdre plus de temps que tu ne le merite.
Adieu
Fasse qu'un jour ta charité se retourne et que si tu veux qu'on te fasse un beau portail en fer forgé, et bien qu'on t'envoye le faire toi même.




T'énerves pas! Le truc, c'est qu'ils ont beaucoup l'habitude de voir des étudiants de fac qui trouvent plus facile de demander une réponse toute faite à leur exos plutôt que de se creuser un peu... Et ils n'ont pas tort... Ce n'est pas leur rendre service que de leur faire leurs exos...
Maintenant, qu'est-ce-que tu veux exactement, un algo ou du code?

mood
Publicité
Posté le 11-06-2001 à 17:14:00  profilanswer
 

n°38855
tgrx
My heart is pumping for love
Posté le 11-06-2001 à 18:35:34  profilanswer
 

PapaOlive a écrit a écrit :

[Reste dans ton petrin, vu que tu as l'air de t'y complaire... nous sommes ici car nous aimons l'informatique, la programmation, et nous avons tous envie de progresser.]
 
J'ai 45 ans pauvre ...
Je suis pas à la fac mais à l'usine dans une forge !
Ce truc s'est pour obtenir une 'capacité' pour me servir de l'ordi de la boite.
Je m'en sert depuis 4 ans sans problème mais si tu veux c'est un aytre moyen de licencier les gens.
Je fais de la qaisie sous dos, alors imagine ce que j'ai à foutre avec du c/c++
J'ai pas le temps et l'energie et toi tu m'a fait perdre plus de temps que tu ne le merite.
Adieu
Fasse qu'un jour ta charité se retourne et que si tu veux qu'on te fasse un beau portail en fer forgé, et bien qu'on t'envoye le faire toi même.
 
 




 
Ah bah voila ce que je voulais entendre... c'est quand meme pas si difficile d'expliquer les choses non ? :)
Desole si j'ai ete un peu dur dans mon message precedent, mais c'est juste le ton de tes reponses que je n'aimais pas du tout. Maintenant si tu ne veux plus me parler, libre a toi, mais sache que je suis tout a fait pret a t'aider :hello:

n°38858
Toucouch
Posté le 11-06-2001 à 19:24:56  profilanswer
 

Je propose ça...
PapaOlive, pour toutes questions, je suis à ta disposition...
Pour les vieux de la vieille, j'attends vos remarques et critiques (constructives uniquement!)... Vous noterez que j'ai fait ça en partant du principe que ça n'était pas censé être fait par un as de la bidouille en C, donc pas d'exotisme du genre:

Code :
  1. char c = '7'; int valChr = (int)(c-48);


 

Code :
  1. #include <stdio.h>
  2. #include <math.h>
  3. #define NOMBREDESSAISMAXI 12
  4. // Fonction retournant le caractère correspondant au chiffre n (5 => '5')...
  5. char Caractere(int n)
  6. {
  7.   char resultat;
  8.   switch(n)
  9.   {
  10.     case 1: resultat = '1';
  11.             break;
  12.     case 2: resultat = '2';
  13.             break;
  14.     case 3: resultat = '3';
  15.             break;
  16.     case 4: resultat = '4';
  17.             break;
  18.     case 5: resultat = '5';
  19.             break;
  20.     case 6: resultat = '6';
  21.             break;
  22.     case 7: resultat = '7';
  23.             break;
  24.     case 8: resultat = '8';
  25.             break;
  26.   }
  27.   return resultat;
  28. }
  29. // Fonction retournant le chiffre correspondant au caractère c ('5' => 5)...
  30. int Chiffre(char c)
  31. {
  32.   int resultat;
  33.   switch(c)
  34.   {
  35.     case '1': resultat = 1;
  36.             break;
  37.     case '2': resultat = 2;
  38.             break;
  39.     case '3': resultat = 3;
  40.             break;
  41.     case '4': resultat = 4;
  42.             break;
  43.     case '5': resultat = 5;
  44.             break;
  45.     case '6': resultat = 6;
  46.             break;
  47.     case '7': resultat = 7;
  48.             break;
  49.     case '8': resultat = 8;
  50.             break;
  51.   }
  52.   return resultat;
  53. }
  54. // Fonction principale...
  55. main()
  56. {
  57.   char Combinaison[5];  // Pour stocker la combinaison à trouver...
  58.   char Proposition[5];  // Pour stocker la proposition du joueur...
  59.   int CompteurCombinaison[8];  // Pour compter le nombre d'occurences de chaque chiffre de la combinaison à trouver...
  60.   int CompteurProposition[8];  // Idem pour la proposition du joueur...
  61.   int NbrEssais = 0;
  62.   int NbrTrouves = 0,NbrPlaces = 0,NbrMalPlaces = 0;
  63.   int i;  // Incrément...
  64.   // Ces trois lignes sont à revoir si le compilo connaît les BOOL...
  65.   int CombinaisonValide;
  66.   const int true = 1;
  67.   const int false = 0;
  68.   // On tire la combinaison à trouver au hasard...
  69.   for(i=0;i<5;i++)
  70.     Combinaison[i]=Caractere(1+(rand()%8));
  71.   // On compte les occurences de chaque caractères de la combinaison secrète...
  72.   for(i=0;i<8;i++)
  73.     CompteurCombinaison[i]=0;
  74.   for(i=0;i<5;i++)
  75.     CompteurCombinaison[Chiffre(Combinaison[i])-1]++;
  76.   // On entre dans la boucle du jeu... On en sort si on a gané ou si l'on a dépassé le nombre d'essais autorisés...
  77.   while((NbrPlaces<5)&&(NbrEssais<NOMBREDESSAISMAXI))
  78.     {
  79.       printf("\nEntrez votre %d proposition:\n",NbrEssais+1);
  80.       scanf("%s",Proposition);
  81.       // Vérification de la validité de la proposition...
  82.       CombinaisonValide = true;
  83.       for(i=0;i<5;i++)
  84.         if((Proposition[i]>'8') || (Proposition[i]<'1'))
  85.           CombinaisonValide = false;
  86.       // Si la combinaison est valide...
  87.       if(CombinaisonValide)
  88.         {
  89.           // On compte le nombre de bien placés...
  90.           NbrPlaces = 0;
  91.           for(i=0;i<5;i++)
  92.             if(Combinaison[i] == Proposition[i])
  93.               NbrPlaces++;
  94.           // On compte les occurences de chaque caractères de la proposition...
  95.           for(i=0;i<8;i++)
  96.             CompteurProposition[i] = 0;
  97.           for(i=0;i<5;i++)
  98.             CompteurProposition[Chiffre(Proposition[i])-1]++;
  99.           // On compte le total de caractères trouvés...
  100.           NbrTrouves = 0;
  101.           for(i=0;i<8;i++)
  102.             if((CompteurProposition[i]!=0) && (CompteurCombinaison[i]!=0))
  103.               if(CompteurProposition[i]<CompteurCombinaison[i])
  104.                 NbrTrouves += CompteurProposition[i];
  105.               else
  106.                 NbrTrouves += CompteurCombinaison[i];
  107.           // On en déduit le nombre de mal placés...
  108.           NbrMalPlaces = NbrTrouves - NbrPlaces;
  109.           // On affiche le résultat...
  110.           printf("Bien placés: %d\nMal placés: %d",NbrPlaces,NbrMalPlaces);
  111.           NbrEssais++;
  112.         }
  113.       else
  114.         printf("Proposition invalide: proposez une combinaison de 5 chiffres compris entre 1 et 8.\n" );
  115.     }
  116.     if(NbrPlaces==5)
  117.       printf("\nGagné!\n" );
  118.     else
  119.       printf("\nPerdu!\n" );
  120. }

n°38861
tgrx
My heart is pumping for love
Posté le 11-06-2001 à 19:35:18  profilanswer
 

Et puis merde, voici une version qui fonctionne normalement
 

Code :
  1. #include <iostream.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. void main()
  5. {
  6.   int nb_essais=0, correct=0, malplace;
  7.   int correct=0, malplace=0;
  8.   int entree[5], code[5], tmpcode[5];
  9.  
  10.   srand(time(0));
  11.   for (int i=0; i<5; i++)
  12.     code[i]= rand()%8;
  13.  
  14.   while ((nb_essais < 15) && (correct != 5))
  15.     {
  16.       nb_essais++;
  17.       for (int i=0; i<5; i++)
  18.         tmpcode[i]= code[i];
  19.      
  20.       cout << "Entrez votre proposition (5 chiffres): " << flush;
  21.       cin >> essai;
  22.      
  23.       for (int i=4; i>=0; i--)
  24.       {
  25.         entree[i]= essai % 10;
  26.         essai /= 10;
  27.       }
  28.      
  29.       correct=0;
  30.       for (int i=0; i<5; i++)
  31.         if (entree[i]==tmpcode[i])
  32.         {
  33.           correct++;
  34.           entree[i]=-1;
  35.           tmpcode[i]= -2;
  36.         }
  37.      
  38.       malplace=0;
  39.       for (int i=0; i<5; i++)
  40.         for (int j=0; j<5; j++)
  41.           if ((j != i) && (entree[i]==tmpcode[j]))
  42.           {
  43.             malplace++;
  44.             entree[i]= -1;
  45.             tmpcode[j]= -2;
  46.             break;
  47.           }
  48.      
  49.       cout << "Vous avez " << correct << " chiffres bien place(s), " << malplace << " mal place(s)" << endl;
  50.     }
  51.  
  52.   if (correct != 5)
  53.     {
  54.       cout << "Plus de 15 essais, vous avez perdu. Le code etait ";
  55.       for (int i=0; i<5; i++)
  56.         cout << code[i];
  57.       cout << endl;
  58.     }
  59.   else
  60.     cout << "Gagne ! Nb d'essais : " << nb_essais << endl;
  61. }
 

[edit]--Message édité par tgrx--[/edit]

n°38862
tgrx
My heart is pumping for love
Posté le 11-06-2001 à 19:35:47  profilanswer
 

toucouch> mince, je me suis fait griller :)

 

[edit]--Message édité par tgrx--[/edit]

n°38864
Toucouch
Posté le 11-06-2001 à 19:47:05  profilanswer
 

tgrx a écrit a écrit :

toucouch> mince, je me suis fait griller :)




Pas grave... Ca permet de voir le problème traité de +ieurs façon... Par contre, tu ne t'es pas arraché sur les commentaires! :D

n°38867
tgrx
My heart is pumping for love
Posté le 11-06-2001 à 19:50:17  profilanswer
 

toucouch> exact ;) mais je ne pense pas non plus qu'ils vont le forcer a faire une soutenance orale... et puis je suis dispose a repondre a toutes les questions :benetton:

n°38898
papaolive
Posté le 11-06-2001 à 23:39:58  profilanswer
 

he bien merci et pardon de m'être énervé.
Comme quoi chaque milieu à ses codes

n°38956
Toucouch
Posté le 12-06-2001 à 10:56:47  profilanswer
 

PapaOlive a écrit a écrit :

he bien merci et pardon de m'être énervé.
Comme quoi chaque milieu à ses codes




Y a pas de mal! :) Et si tu as des questions n'hésite surtout pas!

n°38959
tgrx
My heart is pumping for love
Posté le 12-06-2001 à 11:00:19  profilanswer
 

Ah mince y a une faute dans mon prog, il prend en compte les chiffres de 0 a 7, et non pas de 1 a 8... minche.
 
Remplacer la ligne

Code :
  1. code[i]= rand()%8;


 
par  

Code :
  1. code[i]= rand()%8+1;


 
oups... :sweat:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  mastermind en c++ aussi mais sous dos avec Turbo c++.....

 

Sujets relatifs
cherche de la documentation pour lex-yacc pour turbo pascalDelphi vs Turbo Pascal
exercice programation turbo pascal[turbo pascal] type mismatch
Voyageur de commerce en Turbo-Pascal ou DelphiProgramme en turbo pascal
HELP!!! SUJET DE TURBO PASCALInterruption clavier (Turbo Pascal 7)
trés urgent Programme en turbo pascalBataille navale en Turbo Pascal
Plus de sujets relatifs à : mastermind en c++ aussi mais sous dos avec Turbo c++.....


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