Questio algo

Fermé
cedric18om Messages postés 237 Date d'inscription samedi 23 août 2008 Statut Membre Dernière intervention 5 septembre 2010 - 28 août 2010 à 11:15
Bilow Messages postés 1022 Date d'inscription samedi 21 août 2010 Statut Membre Dernière intervention 2 août 2015 - 8 sept. 2010 à 13:23
Bonjour,

Je joue à un jeu dans lequel il faut trouver une combinaison de 5 chiffres.
Par exemple je tape 00000,et ça me dit 2 chiffres correctS,etc.

Quel logiciel me pemettrait de trouver la bonne combinaison ?

Bon week -end à tous et à toutes.


11 réponses

Bilow Messages postés 1022 Date d'inscription samedi 21 août 2010 Statut Membre Dernière intervention 2 août 2015 117
28 août 2010 à 12:54
Salut !

Je ne pense pas qu'il y aie un logiciel pour cela.
Il faut en programmer un.

Je vais essayer de créer un programme en console pour résoudre cela (c'est un bon entrainement :D). Je vais le faire en C++. As-tu la possibilité de compiler en C++ ? Si non, je te le compilerai, et je te passerai l'éxécutable, mais faudra me faire confiance (un exe peut être tout, y compris un virus).

Le principe de ce programme est de donner intelligemment une série de 5 chiffres, et te demander combien de bons chiffres il y a dans cette combinaison. Selon cette réponse, il te demandera de noueau une autre série.

Je te le passe dès qu'il est prêt :)
Bye.
0
cedric18om Messages postés 237 Date d'inscription samedi 23 août 2008 Statut Membre Dernière intervention 5 septembre 2010 4
28 août 2010 à 14:13
Merci de ton attention Bilow :)

Compiler en C++ ?

Oui c'est ça le principe,c'est un coffre à 6 chiffres pardon,on mets des combinaisons au hasard,on commence par 000000,111111 ...
Nous est indiqué le nombre de chiffres corrects.
0
Bilow Messages postés 1022 Date d'inscription samedi 21 août 2010 Statut Membre Dernière intervention 2 août 2015 117
30 août 2010 à 01:49
Enfin !

Je t'ai inscrit tout le code ne C++ en bas de ce post.
Il te demande à chaque fois combien de nombre corrects il y a sur une certaine combinaison.

Voila... Il y a quand-même quelques désagréments à noter :
- Il ne gère pas beaocup les erreurs. Si tu lui indiques des fausses données, il y a des chances qu'il ne s'en apercoive pas.
- A chaque fois qu'un nombre est trouvé, le porgramme demande de nouveau vla même combinaison (deux fois d'affiler, quoi). Ce n'est pas grave, répond correctement.
- Quand les 6 nombres sont trouvés, il ne le signale pas tout de suite. il vérifie d'abord si tout est bien.

Bye :)

Code :

#include <cstdlib>
#include <iostream>

using namespace std;

void printCombi(int*);

int main(int argc, char *argv[])
{
    int combi [7] = {0};
    int index = 1, boucleInited = 0;
    int result[2] = {0};
    {
         do{
         cout << "Nombre de chiffres corrects pour ";
         printCombi(combi);
         cout << " :" << endl;
         cin >> result[boucleInited];
         cout << endl;
         if(!boucleInited){
         boucleInited = 1;
         combi[index]++;
         continue;
         }
         else{
         if(result[0] == result[1]){
         // On continue
         combi[index]++;
         }
         else if(result[0] == result[1]-1){
         // On l'a trouvé !
         index++;
         boucleInited = false;
         }
         else if(result[0] == result[1]+1){
         // C'était le premier
         combi[index] = 
         index++;
         boucleInited = false;
         }
         else{
         cout << "ERR" << endl;
         break;
         }
         }
         }while(index <= 6);
    }
    if(index == 7){
    cout << "Trouve !!!" << endl << "Le nombre est : ";
    printCombi(combi);
    cout << endl << endl;
    }
    else{
    cout << "Une erreur s'est produite." << endl << endl;
    }
    system("pause");
    return 0;
}

void printCombi(int* combi){
     int i;
     for(int i=1; i<=6; i++){
             cout << combi[i];
     }
}
0
cedric18om Messages postés 237 Date d'inscription samedi 23 août 2008 Statut Membre Dernière intervention 5 septembre 2010 4
30 août 2010 à 14:55
Merci Bilow, je comprends pas,je copie colle où tout ceci ? Je la rentre où la combinaison ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bilow Messages postés 1022 Date d'inscription samedi 21 août 2010 Statut Membre Dernière intervention 2 août 2015 117
30 août 2010 à 18:32
Salut !

Tu n'avais pas répondu à la question pour compiler en C++. J'ai posté le code pour ceux qui sont intéressés.

Je vais mettre temporairement l'éxécutable sur mon hébergeur. Quand tu auras fini, tu me préviendras ?

http://functions.bilow.be/algo.exe

Bye ;)
0
cedric18om Messages postés 237 Date d'inscription samedi 23 août 2008 Statut Membre Dernière intervention 5 septembre 2010 4
31 août 2010 à 18:01
Oui,je débute en informatique,je ne sais pas ce qu'est C++.

Je l'ai donc installé sur mon bureau,par contre,si je peux me permettre bien sûr,il me demande les codes comme ceci,ce qui me prendrait un temps trop long pour découvrir la combinaison avant tout le monde :

000000
100000

Ce qui pourrait beaucoup plus avantageux pour moi,ce serait de rentrer moi même les combinaisons effectuées pour la découvrir bien plus rapidement,exemple :

000000 1 chiffre correct
111111 0 chiffre correct
222222 2 chiffres corrects etc

Tu penses que c'est possible ?
0
Bilow Messages postés 1022 Date d'inscription samedi 21 août 2010 Statut Membre Dernière intervention 2 août 2015 117
1 sept. 2010 à 13:08
Salut !

Oui, da doit être possible, mais cela deviendrais un algorythme beacoup plus compliqué. Et à la fin, tu ne sauras plus quoi entrer...

Le C++ est un language de programmation, qui permet entre autre de faire des programmes console comme je t'en ai passé.

L'algorythme utilisé ici est déjà plus simple. Si tu veux vraiment trouver la combinaison, c'est encore le plus simple. Essaie jusqu'au bout. Et je trouve qu'il est assez rapide.Si le code est 874132, tu n'uaras qu'une petite trentaine de combinaisons à essaier. En utilisant un algorythme qui ne se sert que des combinaisons et chiffres que tu lui indiques, tu as des chances de dépasser la trentaine pour la combinaison.

Bref, je ne suis pas capable de faire un tel algorythme. Essaie le programme actuel, jusqu'au bout, et tu trouveras...

Bye ;)
0
cedric18om Messages postés 237 Date d'inscription samedi 23 août 2008 Statut Membre Dernière intervention 5 septembre 2010 4
1 sept. 2010 à 13:10
D'accord,merci bien Bilow :)
0
cedric18om Messages postés 237 Date d'inscription samedi 23 août 2008 Statut Membre Dernière intervention 5 septembre 2010 4
4 sept. 2010 à 16:12
Bonjour Bilow,je viens de trouver ce lien,tu penses que ce programme donne la combinaison plus rapidement que celui que tu as eu la gentillesse de me transmettre ?
0
Bilow Messages postés 1022 Date d'inscription samedi 21 août 2010 Statut Membre Dernière intervention 2 août 2015 117
4 sept. 2010 à 21:27
Hmm.... Tu serais gentil de me passer le lien :D
0
cedric18om Messages postés 237 Date d'inscription samedi 23 août 2008 Statut Membre Dernière intervention 5 septembre 2010 4
5 sept. 2010 à 03:39
Ah oui :D

http://www.antsearch.univ-tours.fr/ea/default.asp?FCT=DP&ID_PAGE=26#references

Celui là aussi peut-être :

http://delphi.about.com/gi/dynamic/offsite.htm?site=http://www.delphiforfun.org/Programs/MasterMind.htm
0
Bilow Messages postés 1022 Date d'inscription samedi 21 août 2010 Statut Membre Dernière intervention 2 août 2015 117
8 sept. 2010 à 13:23
Salut !

Le premier lien, je 'y compred rien, malgré qu'il semble traiter du sujet dont on parle.
Le deuxième lien est déjà bien mieux, mais je ne comprend pas on plus l'algorithme. En fait, c'est presque exactement la même chose, mis il te fais essayer avec une autre combinaison. Il ne t'aide pas à trouver.
Si tu veux juste avoir la combinaison, bah... Essaie l'éxécutable que j'ai créé, et si tu veux créer un jeu MasterMind, il faudra le faire sans moi. Désolé.

Bye ;)
0