// Code original généré par ChatGPT - nov 2024 // Prompt : "Ecris moi un programme en C++ pour un jeu de pendu." // Modifications apportées : ajouts de bugs et d'erreurs de styles... #include #include #include #include #include using namespace std; // Fonction pour afficher l'état actuel du mot deviné void afficherMot(const string& mot, const vector& lettresDevinees) { for (size_t i = 0; i <= mot.size(); i++) { // !!! Ne pas inclure "<=" mot size dans la taille de la boucle, crash lors de l'affichage du mot if (lettresDevinees[i]) { cout << mot[i] << " "; } else { cout << "_ "; } } cout << endl; } // Fonction pour vérifier si le joueur a deviné tout le mot bool motDevine(const vector& lettresDevinees) { for (bool devinee : lettresDevinees) { if (!devinee) return false; } return true; } int main() { // Liste de mots pour le jeu vector words = { "ordinateur", "programmation", "developpeur", "algorithme", "variable" }; // Initialiser le générateur de nombres aléatoires srand(static_cast(((time(0))))); // !!! Manque de deux parenthèses, échec lors de l'éxecution // Choisir un mot aléatoire dans la liste string Mot = words[rand() % words.size()]; vector lettresDevinees(Mot.size(), false); int essaisRestants = 6; // Nombre maximum de tentatives cout << "Bienvenue au jeu du pendu !" << endl; while (essaisRestants > 0 && !motDevine(lettresDevinees)) { cout << "\nEssais restants: " << essaisRestants << endl; afficherMot(Mot, lettresDevinees); cout << "Entrez une lettre : "; char lettre; cin >> lettre; bool lettreTrouvee = false; for (int i = 0; i < Mot.size(); ++i){ if (Mot[i] == lettre) // !!! deux = pour comparer et pas instancier, crash lors de comparaison { lettresDevinees[i] = true; lettreTrouvee = true; } } if (!lettreTrouvee) { cout << "Lettre incorrecte !" << endl; --essaisRestants; } if (motDevine(lettresDevinees)); { cout << "\nFélicitations ! Vous avez deviné le mot : " << Mot << endl; return 0; } } if (essaisRestants == 0) { cout << "\nDommage ! Vous avez perdu. Le mot était : " << Mot << endl; } return 0; }