All pastes #457863 Raw Edit

David

public cpp v1 · immutable
#457863 ·published 2007-04-25 16:37 UTC
rendered paste body
#include <iostream>#include <vector>#include <string>using namespace std;// Accio que dibuixa la forcavoid dibuxa_forca(string paraula, const vector<bool>& abc, int errors) {    cout << " ";    for (int i = 0; i < paraula.size(); ++i) {        int n = paraula[i] - 'A';        if (abc[n]) cout << paraula[i];        else cout << "*";    }    cout << endl << " +----+" << endl;        // Primera linia    cout << " |/";    if (errors >= 1) cout << "   |";    cout << endl;        // Segona linia    cout << " |";    if (errors >= 1) cout << "    O";    cout << endl;        // Tercera linia    cout << " |";    if (errors >= 2) cout << "   /|\\";    cout << endl;        // Cuarta linia    cout << " |";    if (errors >= 3) cout << "   / \\";    cout << endl;        // Base    cout << "-+-" << endl;    }// Funcio que compta el nombre de lletres diferents d'una paraulaint nombre_lletres(string paraula) {    vector<bool> abecedari(26, false);    for (int i = 0; i < paraula.size(); ++i) {        int n = paraula[i] - 'A';        abecedari[n] = true;    }    int res = 0;    for (int i = 0; i < 26; ++i) if (abecedari[i]) ++res;    return res;}// Funcio que diu si una lletra es troba dins d'una paraulabool hi_es(string paraula, char x) {    for (int i = 0; i < paraula.size(); ++i) {        if (paraula[i] == x) return true;    }    return false;}int main() {    string paraula;    cin >> paraula;        int errors = 0; // Contador d'errors    int correctes = 0; // Contador d'acerts        vector<bool> abecedari(26, false);    dibuxa_forca(paraula, abecedari, errors);    cout << endl;        while (errors < 3 and correctes < nombre_lletres(paraula)) {        char x;        cin >> x;        if (not abecedari[x - 'A']) {            abecedari[x - 'A'] = true;            if (hi_es(paraula,x)) ++correctes;            else ++errors;        }        else ++errors;                dibuxa_forca(paraula, abecedari, errors);        cout << endl;            }    cout << " FINAL" << endl;}