Seance #4
This commit is contained in:
parent
e54579e352
commit
f8501300ab
147
tp1.cpp
147
tp1.cpp
|
@ -2,31 +2,156 @@
|
|||
#include <fstream>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <ctime>
|
||||
|
||||
#include "tp1/wordproc.cpp"
|
||||
|
||||
#define DICT_FILENAME "tp1/dict"
|
||||
|
||||
using namespace std;
|
||||
|
||||
string input_word();
|
||||
string pickup_word(vector<string> dict);
|
||||
void append_word();
|
||||
void play(string word);
|
||||
|
||||
|
||||
int main(){
|
||||
|
||||
/* [0] CONSTANTES
|
||||
=========================================================*/
|
||||
const string dict_filename = "tp1/dict";
|
||||
ifstream dict_read( dict_filename.c_str() );
|
||||
|
||||
ifstream dict_r( DICT_FILENAME );
|
||||
|
||||
|
||||
/* [0.1] On recupere les mots du dictionnaire
|
||||
=========================================================*/
|
||||
vector<string> 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<string> 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<ifstream> Lecteur sur le dictionnaire
|
||||
*
|
||||
* @return out<string> Mot choisi aleatoirement dans le dictionnaire
|
||||
*
|
||||
*/
|
||||
string pickup_word(vector<string> dict){
|
||||
srand(time(0));
|
||||
|
||||
int index = rand() % dict.size();
|
||||
|
||||
return dict[index];
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* AJOUTE UN MOT AU DICTIONNAIRE
|
||||
*
|
||||
* @nomParam<typeParam> Description du param
|
||||
*
|
||||
* @return nomRetour<typeRetour> 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<string> Mot a deviner
|
||||
*
|
||||
*/
|
||||
void play(string word){
|
||||
/* [0] VARIABLES
|
||||
=========================================================*/
|
||||
string word;
|
||||
string shuffled;
|
||||
|
||||
/* [1] Demande du mot
|
||||
=========================================================*/
|
||||
cout << "Mot secret: ";
|
||||
cin >> word;
|
||||
cout << endl;
|
||||
|
||||
// On met le mot en majuscules
|
||||
word = toUpperCase(word);
|
||||
|
||||
|
@ -46,6 +171,4 @@ int main(){
|
|||
}while( toUpperCase(guessed) != word );
|
||||
|
||||
cout << "Vous avez gagne!!" << endl;
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -15,7 +15,6 @@ string toUpperCase(string in){
|
|||
for( int i = 0 ; i < in.length() ; i++ ){
|
||||
char c = in.at(i);
|
||||
|
||||
//
|
||||
if( c >= 'a' && c <= 'z' )
|
||||
out[i] = (char) (c-'a'+'A');
|
||||
}
|
||||
|
@ -34,7 +33,7 @@ string shuffle(string in){
|
|||
// Contiendra les index
|
||||
vector<int> indexes;
|
||||
// Contiendra les valeurs
|
||||
string out("");
|
||||
string out;
|
||||
|
||||
/* [1] On prends une lettre tant qu'il en manque
|
||||
=========================================================*/
|
||||
|
@ -45,7 +44,6 @@ string shuffle(string in){
|
|||
|
||||
// On prends un indice aleatoire
|
||||
index = rand() % in.length();
|
||||
cout << index << endl;
|
||||
|
||||
// Si index non utilise, on le reference
|
||||
if( indexOf(indexes, index) == -1 ){
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
#include <iostream>
|
||||
|
||||
#include "tp2/ZFraction.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
||||
|
||||
int main(){
|
||||
ZFraction f1(1,10);
|
||||
ZFraction f2(10);
|
||||
ZFraction f3(10, 3);
|
||||
|
||||
f1.toString();
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
/* [0] CONSTRUCTEUR
|
||||
=========================================================*/
|
||||
ZFraction::ZFraction(int a, int b) : a(a), b(b){}
|
||||
|
||||
|
||||
|
||||
/* [1] Getters
|
||||
=========================================================*/
|
||||
void ZFraction::toString() const{ cout << "(" << this->a << "/" << this->b << ")"; }
|
||||
|
||||
|
||||
|
||||
/* [2] Operateurs
|
||||
=========================================================*/
|
||||
/* (1) Addition */
|
||||
ZFraction& operator+=(ZFraction const& x){
|
||||
int new_a = this->a * x.b + this->b * x.a;
|
||||
int new_b = this->b * x.b;
|
||||
|
||||
ZFraction out = ZFraction(new_a, new_b);
|
||||
|
||||
return &out;
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
#ifndef DEF_ZFRACTION
|
||||
|
||||
#define DEF_ZFRACTION
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
||||
class ZFraction{
|
||||
public:
|
||||
ZFraction(int a=1, int b=1);
|
||||
|
||||
void toString() const;
|
||||
|
||||
ZFraction& operator+=(ZFraction const& operand);
|
||||
|
||||
private:
|
||||
int a;
|
||||
int b;
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
#include "ZFraction.cpp"
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue