A voir également:
- C++ mastermind erreur (code joint)
- Erreur 0x80070643 - Accueil - Windows
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
3 réponses
mamiemando
Messages postés
33443
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
19 décembre 2024
7 811
10 juin 2006 à 11:44
10 juin 2006 à 11:44
Oui c'est normal tu as mis partout dans tes conditions :
Ce que signifie que tu affectes solution1 à "a". Comme cette valeur est a priori non nulle, le test est a priori toujours vérifié. Il faut que tu mettes :
Bonne chance
if(a=solution1)
Ce que signifie que tu affectes solution1 à "a". Comme cette valeur est a priori non nulle, le test est a priori toujours vérifié. Il faut que tu mettes :
if(a==solution1)
Bonne chance
mamiemando
Messages postés
33443
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
19 décembre 2024
7 811
10 juin 2006 à 11:59
10 juin 2006 à 11:59
Dans un souçis de lisibilité et de généricité de ton code, il pourrait être intéressant de commencer à faire des jolies fonctions afin d'améliorer le code. On pourrait par exemple imaginer faire un mastermind à n cases et p couleurs. En supposant que tu stockes une solution dans un std::vector :
Je te donne le debut, à toi de finir si le coeur t'en dit ;)
Bonne chance
Je te donne le debut, à toi de finir si le coeur t'en dit ;)
#include <vector> #include <cassert> #include <iostream> typedef std::vector<unsigned int> solution_t; unsigned int randint(unsigned int max){ //... } void generer_code( solution_t & solution, unsigned int nb_couleur, unsigned int nb_cases ){ solution = solution_t(nb_cases); for(unsigned int i=0;i<nb_cases;++i){ solution[i] = randint(nb_couleur); } } void show_solution(const solution_t & sol){ for(unsigned int i=0;i<sol.size();++i){ std::cout << sol[i] << ' '; } std::cout << std::endl; } void read_proposition( solution_t & prop ){ //Lire sur std::cin la proposition } unsigned int get_nb_valid( const solution_t & solution, const solution_t & proposition ){ unsigned int nb_valid=0,i; assert(solution.size()==proposition.size()) for(std::size_t i=0;i<solution.size();++i){ if (solution[i]==proposition[i]){ std::cout << i << "eme nombre correct" << std::endl; ++nb_valid; } } return nb_valid; } unsigned int get_nb_mal_place( const solution_t & solution, const solution_t & proposition ){ unsigned int nb_mal_place=0,i; assert(solution.size()==proposition.size()) for(std::size_t i=0;i<solution.size();++i){ if (solution[i]!=proposition[i]){ for(std::size_t j=0;j<solution.size();++j){ if (i!=j && solution[i]==proposition[j]){ ++nb_mal_place; break; } } } } return nb_mal_place; } int main(){ solution_t sol; solution_t prop; generer_code(sol,8,4); unsigned int nb_essai=5,nb_valid,nb_mal_place; bool gagne = false; for(unsigned int i=1;i<=nb_essai && !gagne;++i){ std::cout << "Essai (" << i << '/' <<nb_essai << ')' << std::endl; //Lire le code proposé et le mettre dans prop //.... //Comparer la proposition à la solution nb_valid = get_nb_valid(sol,prop); if (nb_valid == sol.size()){ gagne = true; } std::cout << nb_valid << " nombres sont valides" << std::endl; nb_mal_place = get_nb_mal_place(sol,prop); } if (gagne) std::cout << "Gagné !" << std::endl; else{ std::cout << "Perdu :( La solution était " << std::endl; show_solution(sol); } return 0; }
Bonne chance