Programme de jeu de mpt

Contenu du snippet

Tout vient de moi, et vous pouvez vous en servir comme bon vous le semble pour vos programmes. Fonction de calcul de moyenne, ouverture de fichier..

Source / Exemple :


#include <iostream>
#include <string>
#include <fstream>
#include <stdlib.h>
#include <cmath>
#include <vector>
#include <ctime>
#include <cstdlib>
#include <time.h>

using namespace std;

void statDeLaPartie(int decompteur)
{
    ofstream statFlux("bla/stat.txt", ios::app);

    statFlux << decompteur * 4 << endl;

}

void afficherMoyenne ()
{
    double  moyenne(0);

    int b;

    vector <int> notes;

    ifstream fichier("bla/stat.txt");

    string line;

    if(fichier)
    {
        while(getline(fichier, line))
          {
              b = atof(line.c_str());
              notes.push_back(b);
          }
    }
    else
    {
        cout << "impossible d'ouvrir le fichier " << endl;
    }

    for (int i(0); notes.size() > i; i++)
    {
        moyenne += notes[i];
    }

    moyenne /= notes.size();

    cout << "Votre moyenne est de:" << moyenne << endl << endl;
}

void motIndice (string motChoisi)
{
    for (int indice(0); indice != 3; indice++)
    {
        cout << motChoisi[indice];
    }
}

unsigned int nbAleatoire(int range)
{
    unsigned int aleatoire = (rand() & 0xFFFF) | ((rand() & 0xFFFF) << 16);

    if (range == 0)
    {
        range = 2;
    }
    return aleatoire % range;
}

string choixMot(vector <string> &dico)
{
    string motDict;

    if (dico.size() != 0)
    {

    motDict = dico[nbAleatoire(dico.size())];

    }

    else if (dico.size() == 0)
    {
        motDict = "AUCUN";
    }

    return motDict;
}

string melanger(string mot)
{
    string melange;
    int position(0);

    while (mot.size() != 0)
    {

        position = rand() % mot.size();
        melange += mot[position];
        mot.erase(position, 1);
    }

    return melange;
}

vector <string> dictionnaire(string nomFichier)
{
    ifstream fichier(nomFichier.c_str());
    vector <string> dico;
    string line;

    cout << "Chargement du dictionnaire..." << endl;
    if(fichier)
    {
        while(getline(fichier, line)) dico.push_back(line);
        return dico;
    }
    else cout << "impossible d'ouvrir le fichier " << nomFichier << endl;
}

int main()
{
    srand(time(NULL));

    bool quitter(1), continuer(1), continuerDuDico(1);

    int choixMenuPrincip(0), choixMenuDic(0), choixMenuStat(0),
    choixMenuDuDico(0), choixMenuDuDico2(0), decompteur(5);

    string const dicoFr("personnalise.txt"), dicoFr2("francais.txt");
    string motEntreDicoFr, dictionnaireChoisi("personnalise.txt"), motChoisi, motMelanger, motPense;

    vector <string> dico;

    do
    {
        cout << " /----------------------------!" << endl;
        cout << "!      BIEVENUE DANS LE       !" << endl;
        cout << "!  PROGRAMMES D'ENTRAINEMENT  !" << endl;
        cout << "!      DES LANGUES DE         !" << endl;
        cout << "!                             !" << endl;
        cout << "!                             !" << endl;
        cout << "!         KERIZ               !" << endl;
        cout << "!___________________________/ " << endl << endl;

        do
        {

            cout << "Que voulez vous faire ?" << endl;
            cout << "1.Entrer des mots dans le dictionnaire" << endl;
            cout << "2.Choix du dictionnaire" << endl;
            cout << "3.Statistiques" << endl;
            cout << "4.Commencer une partie" << endl;
            cout << "5.Quittez le jeu" << endl << endl;
            cout << "Votre choix ? ";

            cin >> choixMenuPrincip;

        }

        while (choixMenuPrincip >= 6 || choixMenuPrincip == 0);

        switch (choixMenuPrincip)
        {
            // DEBUT CASE 1 //Case 1 fini
        case 1:
        {
            system("cls");
            do
            {
                cout << "Entrez le mot en francais: " << endl;

                ofstream dicoFrancais(dicoFr.c_str(), ios::app); //ios::app
                cin.get();
                getline(cin, motEntreDicoFr);

                if (dicoFrancais)
                {
                    dicoFrancais << motEntreDicoFr << endl;
                }

                else
                {
                    cout << "ERREUR DANS LA CREATION DU FICHIER " << dicoFr << endl;
                }

                do
                {

                    cout << endl << "Que voulez vous faire ?" << endl;
                    cout << "1.Continuer a entrer des mots" << endl;
                    cout << "2.Remettre le dictionnaire a 0" << endl;
                    cout << "3.Retourner au menu" << endl << endl;
                    cout << "Votre choix ? ";

                    cin >> choixMenuDic;

                }

                while (choixMenuDic >= 4 || choixMenuDic == 0);

                switch (choixMenuDic)
                {
                case 1:
                {
                    continuer = 1;
                    break;
                }

                case 2:
                {
                    ofstream dicoFrancais(dicoFr.c_str());
                    continuer = 0;
                    break;
                }

                case 3:
                {
                    continuer = 0;
                    break;
                }

                }
            }

            while (continuer);

            system("cls");

            break;

        }
        //CASE 2
        case 2:
        {
            system("cls");

            do
            {
                cout << "Que voulez vous faire ?" << endl;
                cout << "1.Regarder les mots de mon dictionnaire" << endl;
                cout << "2.Choisir le dictionnaire avec lequel je joue" << endl;
                cout << "3.Retourner au menu"<< endl << endl;
                cout << "Votre choix: " << endl;

                cin >> choixMenuDuDico;

                system("cls");

            }
            while (choixMenuDuDico >= 4);

            switch (choixMenuDuDico)
            {
            case 1:
            {
                system("cls");

                ifstream dicoALire(dicoFr.c_str());

                if (dicoALire)
                {
                    cout << "Dictionnaire :" << endl << endl;
                    string ligne;

                    while (getline(dicoALire, ligne))
                    {
                        cout << ligne << endl;
                    }
                }

                else
                {
                    cout << "ERREUR DANS LA LECTURE DU DICO" << endl;
                }

                cout << endl << "Fin du dictionnaire" << endl << endl;

                system("Pause");

                system("cls");
                break;
            }

            case 2:
            {
                do
                {

                    cout << "Quel dictionnaire veux tu choisir ?" << endl;
                    cout << "1.Le mien" << endl;
                    cout << "2.Langue francais (environ 360000 mots)" << endl << endl;
                    cout << "Votre choix: ";

                    cin >> choixMenuDuDico2;

                    system("cls");

                }
                while (choixMenuDuDico2 >= 3);

                switch (choixMenuDuDico2)
                {
                case 1:
                {
                    dictionnaireChoisi = "personnalise.txt";
                    system("cls");
                    break;
                }

                case 2:
                {
                    dictionnaireChoisi = "francais.txt";
                    system("cls");
                    break;
                }

                }

                continuerDuDico = 0;
                break;
            }

            case 3:
            {
                system("cls");
                continuerDuDico = 0;
                break;
            }
            }

            break;
        }

        case 3:
        {
            do
            {

                system("cls");

                cout << "Que veux tu faire ?" << endl;
                cout << "1.Voir ma moyenne (/20)" << endl;
                cout << "2.Remettre a 0 les scores" << endl << endl;
                cout << "Votre choix: " << endl;

                cin >> choixMenuStat;

            }
            while (choixMenuStat >= 3 || choixMenuStat == 0);

            switch (choixMenuStat)
            {
                case 1:
                {
                    afficherMoyenne();

                    system("pause");
                    system("cls");

                    break;
                }

                case 2:
                {
                    ofstream fichier("stat.txt");
                    system("CLS");
                }
            }
                break;
        }

        case 4:
        {
            system("cls");

            dico = dictionnaire(dictionnaireChoisi);

            cout << "Tirage du mot en cours.." << endl << endl << endl;

            motChoisi = choixMot(dico);

            motMelanger = motChoisi;

            motMelanger = melanger(motMelanger);

            cout << "Quel est le mot mystere ? " << motMelanger << endl << endl;

            while (decompteur != 0)
            {
                if (decompteur - 2 >> 0)
                {
                    if (decompteur == 1)
                    {
                        cout << "Tu as encore " << decompteur << " essaies, voici l'indice (debut du mot): ";
                        motIndice(motChoisi);
                        cout << endl;
                        cout << "Je pense: ";
                    }

                    if (decompteur != 1)
                    {
                        cout << "Tu as encore " << decompteur << " essaies, il te reste maintenant "
                             << decompteur - 2 << " fautes avant un indice !" << endl
                             << "Je pense: ";
                    }

                }

                else
                {
                    cout << "Tu as encore " << decompteur << " essaies, voici l'indice (debut du mot): ";
                    motIndice(motChoisi);
                    cout << endl;
                    cout << "Je pense: ";

                }

                cin >> motPense;

                cout << endl << endl;

                if (motPense == motChoisi)
                {
                    statDeLaPartie(decompteur);

                    decompteur = 1;

                    cout << "Tu as trouver le mot (" << motChoisi << ") !" << endl << endl;

                    system("pause");

                    dico = dictionnaire(dictionnaireChoisi);

                    motChoisi = "";

                    motMelanger = "";

                    system("cls");

                }

                decompteur = decompteur - 1;

            }

            if (decompteur == 0 &&  motChoisi != "")

            {
                statDeLaPartie(0);
                cout << "Tu as perdu... Le mot a trouve etait " << motChoisi << ". Retente ta chance !" << endl;

                system("pause");

                dico = dictionnaire(dictionnaireChoisi);

                motChoisi = "";

                motMelanger = "";

                system("cls");
            }

            decompteur = 5;

            break;
        }

        case 5:
        {
            quitter = 0;
            break;
        }

        }

    }
    while (quitter);
    return 0;
}

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.