Seance #4
This commit is contained in:
parent
e54579e352
commit
f8501300ab
145
tp1.cpp
145
tp1.cpp
|
@ -2,31 +2,156 @@
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <ctime>
|
||||||
|
|
||||||
#include "tp1/wordproc.cpp"
|
#include "tp1/wordproc.cpp"
|
||||||
|
|
||||||
|
#define DICT_FILENAME "tp1/dict"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
|
string input_word();
|
||||||
|
string pickup_word(vector<string> dict);
|
||||||
|
void append_word();
|
||||||
|
void play(string word);
|
||||||
|
|
||||||
|
|
||||||
int main(){
|
int main(){
|
||||||
|
|
||||||
/* [0] CONSTANTES
|
/* [0] CONSTANTES
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
const string dict_filename = "tp1/dict";
|
ifstream dict_r( DICT_FILENAME );
|
||||||
ifstream dict_read( dict_filename.c_str() );
|
|
||||||
|
|
||||||
|
|
||||||
|
/* [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
|
/* [0] VARIABLES
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
string word;
|
|
||||||
string shuffled;
|
string shuffled;
|
||||||
|
|
||||||
/* [1] Demande du mot
|
|
||||||
=========================================================*/
|
|
||||||
cout << "Mot secret: ";
|
|
||||||
cin >> word;
|
|
||||||
cout << endl;
|
|
||||||
|
|
||||||
// On met le mot en majuscules
|
// On met le mot en majuscules
|
||||||
word = toUpperCase(word);
|
word = toUpperCase(word);
|
||||||
|
|
||||||
|
@ -46,6 +171,4 @@ int main(){
|
||||||
}while( toUpperCase(guessed) != word );
|
}while( toUpperCase(guessed) != word );
|
||||||
|
|
||||||
cout << "Vous avez gagne!!" << endl;
|
cout << "Vous avez gagne!!" << endl;
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
|
@ -15,7 +15,6 @@ string toUpperCase(string in){
|
||||||
for( int i = 0 ; i < in.length() ; i++ ){
|
for( int i = 0 ; i < in.length() ; i++ ){
|
||||||
char c = in.at(i);
|
char c = in.at(i);
|
||||||
|
|
||||||
//
|
|
||||||
if( c >= 'a' && c <= 'z' )
|
if( c >= 'a' && c <= 'z' )
|
||||||
out[i] = (char) (c-'a'+'A');
|
out[i] = (char) (c-'a'+'A');
|
||||||
}
|
}
|
||||||
|
@ -34,7 +33,7 @@ string shuffle(string in){
|
||||||
// Contiendra les index
|
// Contiendra les index
|
||||||
vector<int> indexes;
|
vector<int> indexes;
|
||||||
// Contiendra les valeurs
|
// Contiendra les valeurs
|
||||||
string out("");
|
string out;
|
||||||
|
|
||||||
/* [1] On prends une lettre tant qu'il en manque
|
/* [1] On prends une lettre tant qu'il en manque
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
|
@ -45,7 +44,6 @@ string shuffle(string in){
|
||||||
|
|
||||||
// On prends un indice aleatoire
|
// On prends un indice aleatoire
|
||||||
index = rand() % in.length();
|
index = rand() % in.length();
|
||||||
cout << index << endl;
|
|
||||||
|
|
||||||
// Si index non utilise, on le reference
|
// Si index non utilise, on le reference
|
||||||
if( indexOf(indexes, index) == -1 ){
|
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