#include #include #include #include #include #include "tp1/wordproc.cpp" #define DICT_FILENAME "tp1/dict" using namespace std; string input_word(); string pickup_word(vector dict); void append_word(); void play(string word); int main(){ /* [0] CONSTANTES =========================================================*/ ifstream dict_r( DICT_FILENAME ); /* [0.1] On recupere les mots du dictionnaire =========================================================*/ vector dict(0); string line; // On lit toutes les lignes while( getline( dict_r, line ) ) dict.push_back( line ); /* [1] MENU D'ACTION =========================================================*/ int action(-1); do{ cout << "+-----------------------------------+" << endl; cout << "+ 1) Jouer (saisie manuelle) +" << endl; cout << "+ 2) Jouer (mot aleatoire) +" << endl; cout << "+ 3) Ajouter un mot +" << endl; cout << "+-----------------------------------+" << endl; cout << "+ "; cin >> action; cout << "+-----------------------------------+" << endl; }while( action < 1 || action > 3 ); /* [2] TRAITEMENT DE L'ACTION =========================================================*/ switch(action){ /* (1) Jeu avec saisie manuelle */ case 1: play( input_word() ); break; /* (2) Jeu avec mot aleatoire */ case 2: play( pickup_word(dict) ); break; /* (3) Saisie d'un nouveau mot dans le dictionnaire */ case 3: append_word(); break; } return 0; } /* RENVOIE LA SAISIE UTILISATEUR * * @return out Mot saisi par l'utilisateur * */ string input_word(){ string out; cout << "Mot secret: "; cin >> out; cin.ignore(); return out; } /* RENVOIE UN MOT ALEATOIRE DU DICTIONNAIRE * * @dict_r Lecteur sur le dictionnaire * * @return out Mot choisi aleatoirement dans le dictionnaire * */ string pickup_word(vector dict){ srand(time(0)); int index = rand() % dict.size(); return dict[index]; } /* AJOUTE UN MOT AU DICTIONNAIRE * * @nomParam Description du param * * @return nomRetour Description du retour * */ void append_word(){ // objet d'ecriture sur le dictionnaire ofstream dict_w( DICT_FILENAME, ios::app ); string newword; cout << "Nouveau mot: " << endl; cin >> newword; cout << endl; // on ajoute le mot dict_w << newword << endl; cout << "Mot enregistre!" << endl; } /* JOUE AU JEU DU MOT_MYSTERE * * @word Mot a deviner * */ void play(string word){ /* [0] VARIABLES =========================================================*/ string shuffled; // On met le mot en majuscules word = toUpperCase(word); /* [2] On melange les lettres du mot =========================================================*/ shuffled = shuffle(word); /* [3] JEU > utilisateur =========================================================*/ string guessed; do{ cout << "What is this world ? " << shuffled << endl; cin >> guessed; cout << endl; }while( toUpperCase(guessed) != word ); cout << "Vous avez gagne!!" << endl; }