domingo, 12 de maio de 2013

Jogo da Forca em C++


Como primeira postagem quero dividir com vocês a minha versão do jogo da forca feito em C++, foi um exercício proposto por um professor nos tempos de graduação.







--- Jogo da Forca C++ ---


/*
  Programa:   Jogo da forca
  Aluno:      xxxxxx
  Professor:  xxxxxx
  Curso:      xxxxxx
  Disciplina: xxxxxx
*/

#include <iostream>

using namespace std;

void teste (char *v, char *c, char *l, int &a, int &b, int &quant) 

{

//Declaramos que J e E sao variaveis inteiras. Atribuimos o valor 0 para ambas as variaveis

int j,e; 
j=0;
e=0; 

//Um FOR que conta a quantidade de tentativas

for (j=0;j<quant;j++) // para j igual a 0
    {
    if (v[j] == l[0]) // se v [contador j] igual a l [0]
       {
       c[j]=v[j]; // se c [contador j] igual a v [contador j]
       a++;
       }
       else 
       e++;
           }
           if (e==quant)// se e igual a quant
           b++;
           } 

           main ()
                { 

                system ("color 1b");
                
                char l[1], p[70],a[70],letras[70];
                int erro=0,acerto=0,i=0 , j, k, quant, w, f, nivel, tent;

//Tela de boas vindas

                cout << "\t\t ----------------------------------------\n";
                cout << "\t\t  ++++++  ++++++  ++++++  ++++++  ++++++ \n";
                cout << "\t\t  ++++++  ++++++  ++++++  ++++++  ++++++ \n";
                cout << "\t\t  +++     ++   +  ++   +  ++      +++  + \n";
                cout << "\t\t  +++     ++   +  ++   +  ++      +++  + \n";
                cout << "\t\t  ++++++  ++   +  +++++   ++      +++  + \n";
                cout << "\t\t  ++++++  ++   +  ++++    ++      +++  + \n";
                cout << "\t\t  +++     ++++++  ++ ++   ++++++  ++++++ \n";
                cout << "\t\t  +++     ++++++  ++  ++  ++++++  +++  + \n";
                cout << "\t\t  +++     ++++++  ++  ++  ++++++  +++  + \n";
                cout << "\t\t ----------------------------------------\n\n";
                cout << "\t\t                            Jogo da Forca \n\n\n\n";
                cout << "\t\t     SEJA BEM VINDO(A) AO JOGO DA FORCA!!! \n\n\n\n\n";                
                cout << "\t\t\t Para jogar pressione <ENTER>";
                
                system("PAUSE > null");
                system ("cls");

//Menu - digitar palavra

                  cout<<"\n +-------------+";
                  cout<<"\n |JOGO DA FORCA|";
                  cout<<"\n +-------------+\n\n";
                  cout<<"Obs.: Peca a outra pessoa que informe os dados abaixo:\n\n";
                  cout<<"\n\n -> Digite a palavra a ser adivinhada: ";
                  gets(p);

//Menu que apresenta o nivel de dificuldade

                       cout << "\n\n\n *** Ha tres niveis de dificuldade *** " <<endl <<endl;
                       cout << "<1> Dificil (Voce so podera errar duas vezes).\n";
                       cout << "<2> Medio   (Voce so podera errar quatro vezes).\n";
                       cout << "<3> Facil  (Voce so podera errar seis vezes).\n"<<endl;
                       cout << "\n\n -> Digite o nivel de dificuldade: " ;
                       cin >> nivel;
                       
//Primeira apresentacao da forca e apresentacao das lacunas
                       
                         strupr(p); //Converte palavras minusculas em MAIUSCULAS
                         quant = strlen (p);//Conta a quantidade de letras das palavras digitadas
                         system ("cls");
                         cout<<"\n\n_________"<<endl<<endl<<endl<<endl;
                         for (w=0;w<quant;w++){
                         cout<<"_ ";
                         }
                
                         cout<<endl<<"\n\n\n -> Digite a letra que deseja tentar: ";

//O IF correspondente ao nivel de dificuldade

                {
                                if (nivel == 1)
                                tent = 2;
                                else
                                if (nivel == 2)
                                tent = 4;
                                else
                                if (nivel ==3)
                                tent = 6;
                                else
                                cout << "\n\n*** Opcao invalida *** ";

                                for (j=0;j<quant;j++)
                                a[j] = '_';

                                for (j=0;j<10;j++)
                                letras[j] = ' ';
                
                                while(erro < tent && acerto < quant)
                                { 
                                     cin >> l;
                                     strupr (l);

                                     do

                                     {
                                        j=1;
                                  
                                        for (k=0;k<10;k++)
                                     
                                        {
                                     
                                        if (l[0] == letras[k])
                                        j=0;
                                        }
                                        if (j==0)
                                        
                                        {
                                        cout<<"\n\n*** Essa letra ja foi digitada, tente outra! *** ";
                                        cin >> l;
                                        } 
                                        }

                                            while (j==0);
                                            letras[i]=l[0];
                                            i++; 
                                            system ("cls");
                                            teste(p,a,l,acerto,erro, quant);

                                            switch (erro)
                                            { 
                                            case 0: cout<<"\n\n_________\n\t \n\n\n";break;
                                            case 1: cout<<"\n\n_________\n\t O\n\n\n";break;
                                            case 2: cout<<"\n\n_________\n\t O\n\t X\n\n";break;
                                            case 3: cout<<"\n\n_________\n\t O\n\t/X\n\n";break;
                                            case 4: cout<<"\n\n_________\n\t O\n\t/X\\\n\n"; break;
                                            case 5: cout<<"\n\n_________\n\t O\n\t/X\\\n\t/ \n";break;
                                            case 6: cout<<"\n\n_________\n\t O\n\t/X\\\n\t/ \\\n";break;
                                            }

                                               for (f=0;f<quant;f++)
                                               cout<<a[f]<<" ";
                                               cout<<endl;
                                               cout<<"\n\nAcertos: "<<acerto<<endl<<"Erros: "<<erro<<endl;
                                               cout<<"Todas as letras ja tentadas: "<<letras<<endl<<endl;
                                               cout<<"\n\n-> Digite a letra que deseja tentar: ";
                                            
                                               }
                                               if (erro == tent)                           
                                               {
                                               cout << "\n\n GAME OVER!!!!!"<<endl;
                                               cout << "\n\n Voce perdeu!!!" << endl;
                                               cout << "\n\n A palavra correta e:"<<p;
                                               }
                                               
                                               else
                                               cout<<endl<<endl<<"PARABENS, VOCE VENCEU!!!!!"<<endl;
                                            
                                               system("PAUSE > null");
                                               }
                                               }




Nenhum comentário:

Postar um comentário