Advertisement
Guest User

CARAIO DE ASA

a guest
Oct 21st, 2014
260
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.75 KB | None | 0 0
  1. #include "stdlib.h"
  2. #include "stdio.h"
  3. #include <cstring>  // Essas são as bibliotecas utilizadas na construção do algoritmo.
  4. #include "time.h"
  5.  
  6.  
  7. main(){
  8.    
  9.     while(1){
  10.     int a = 0;
  11.             // As palavras pré-determinadas do jogo da forca, que são 100 no total, podem ter até 30 caracteres em sua constituição.
  12.             // Tambem temos as variáveis que serão utilizaddas dentro do LOOP, que serão referencias para que o jogo funcione plenamente.
  13.  
  14.     do{
  15.         system("cls");
  16.         printf("JOGO DA FORCA\n");
  17.         printf("1: Jogar\n");
  18.         printf("2: Sair\n");            // Esse é o meno do jogo, em que serão dispostas as opções de jogar e sair, determinadas pelos inteiros  1 e 2.
  19.         printf("OPCAO: ");          
  20.         scanf("%d", &a);
  21.         system("pause > null");
  22.                
  23.         switch(a){
  24.            
  25.             case 1:
  26.                 int achou = 1;      // achou = 1, para que o jogo seja executado, pois em C++ 0 é falso. O "n" tambem servirá para sair do jogo sem fechar o programa
  27.                
  28.                 while(achou)
  29.                 {
  30.                   system("cls");   
  31.                   char palavra[100][30] = {
  32.                   "margarida",
  33.                   "caderno",
  34.                   "bolsa",
  35.                   "celular",
  36.                   "tartaruga",
  37.                   "origami",
  38.                   "papel",
  39.                   "formiga",
  40.                   "espelho",
  41.                   "computador",
  42.                   "programar",
  43.                   "tomada",
  44.                   "televisao",
  45.                   "sacola",
  46.                   "documento",
  47.                   "carteira",
  48.                   "dinheiro",
  49.                   "macaco",
  50.                   "girafa",
  51.                   "paralelepipedo",
  52.                   "apostolo",
  53.                   "numero",
  54.                   "matematica",
  55.                   "geografia",
  56.                   "historia",
  57.                   "portugues",
  58.                   "caneta",
  59.                   "abacaxi",
  60.                   "planta",
  61.                   "sofa",
  62.                   "controle",
  63.                   "carencia",
  64.                   "ceramica",
  65.                   "garfo",
  66.                   "colher",
  67.                   "prato",
  68.                   "macarrao",
  69.                   "arroz",
  70.                   "cachorro",
  71.                   "gato",
  72.                   "oculos",
  73.                   "debate",
  74.                   "matricula",
  75.                   "volume",
  76.                   "chave",
  77.                   "vestido",
  78.                   "delator",
  79.                   "apartamento",
  80.                   "empreiteira",
  81.                   "corrupcao",
  82.                   "propina",
  83.                   "refinaria",
  84.                   "aplicativo",
  85.                   "estudo",
  86.                   "cidade",
  87.                   "memoravel",
  88.                   "reportagem",
  89.                   "construtora",
  90.                   "instrumento",
  91.                   "reporter",
  92.                   "tecnologia",
  93.                   "capitalismo",
  94.                   "novidade",
  95.                   "encrenca",
  96.                   "epigrafe",
  97.                   "redacao",
  98.                   "geometria",
  99.                   "trigonometria",
  100.                   "ministro",
  101.                   "deputado",
  102.                   "senador",
  103.                   "cascavel",
  104.                   "uruguai",
  105.                   "portugal",
  106.                   "alemanha",
  107.                   "argentina",
  108.                   "salvador",
  109.                   "travamento",
  110.                   "banqueiro",
  111.                   "triangulo",
  112.                   "violao",
  113.                   "empresa",
  114.                   "terceirizada",
  115.                   "generalizacao",
  116.                   "competitivo",
  117.                   "desempenho",
  118.                   "preconceito",
  119.                   "elegante",
  120.                   "leitor",
  121.                   "projeto",
  122.                   "emagrecedor",
  123.                   "academia",
  124.                   "esteira",
  125.                   "balanceamento",
  126.                   "racionamento",
  127.                   "lasanha",
  128.                   "videogame",
  129.                   "faculdade",
  130.                   "churrasco",
  131.                   "refrigerante",
  132.                   "cajado"
  133.                 };
  134.            
  135.             printf("\nAs letras devem ser minusculas");
  136.             printf("Boa sorte! Vc tem 6 chances! Aperte qualquer tecla para continuar\n");
  137.             system("pause > null");
  138.             int numero_palavra = 0, chances = 6, contador, tamanho = 0, resultado, acertos = 0, b = 0, contador2 = 0, aux = 0;
  139.            
  140.             srand(time(NULL));
  141.             numero_palavra = rand()%100;
  142.             tamanho = strlen(palavra[numero_palavra]);
  143.             char palavra_atual[tamanho], letras_usadas[30] = {0};
  144.             strcpy(palavra_atual, palavra[numero_palavra]);
  145.            
  146.             char letra_jogador[100] = {0};
  147.             char vetor_palavra[tamanho];
  148.             for(int i; i<tamanho; i++);
  149.             vetor_palavra[i] = '_';
  150.            
  151.             while(chances > 0){
  152.                 condicional_volta:
  153.                     system("cls");
  154.                     printf("Voce tem %d chances", chances);
  155.                     for(int i; i<tamanho; i++)
  156.                     printf("%c", vetor_palavra[i]);
  157.                     printf("\nletras usadas: ");
  158.                     for(int local = 0; local<contador2; local++){
  159.                         if(letras_usadas[local] == '\0'){
  160.                             letras_usadas[local] = letra_jogador[0];
  161.                         }
  162.                         printf("%c", letras_usadas[local]);
  163.                     }
  164.                     do{
  165.                         printf("\n Digite uma letra: ");
  166.                         scanf("%s", letra_jogador);
  167.                         for(int local = 0; local <= contador2; local++){
  168.                             if(letras_usadas[local] == letra_jogador[0]){
  169.                                 printf("\n letra repetida");
  170.                                 system("pause > null");
  171.                                 goto condicional_volta;
  172.                                
  173.                             }
  174.                         }
  175.    
  176.  
  177.                     }while(letra_jogador[0] < 'A' || letra_usuario[0] > 'Z');
  178.                     resultado = 0;
  179.                     contador2++;
  180.                     for(int numero = 0; numero<tamanho; numero++){
  181.                         contador = 0;
  182.                         if(palavra_atual[numero] == letra_jogador[0]){
  183.                             vetor_palavra[numero] = letra_jogador[0];
  184.                             resultado = contador + 1;
  185.                             acertos++
  186.                            
  187.                         }
  188.                     }
  189.                    
  190.                     if(resultado == 0)
  191.                     chances--;
  192.                     if(acertos == tamanho){
  193.                         for(int i = 0;i<tamanho;i++)
  194.                         printf("%c", vetor_palavra[i]);
  195.                         printf("\n\nVOCE venceu! Aperte qualquer tecla para continuar");
  196.                         system("pause > null");
  197.                         do{
  198.                              printf("\nO que quer fazer agora?");
  199.                              printf("\n1 - Jogar novamente\n");
  200.                              printf("2 - Voltar ao menu principal\n");
  201.                              printf("3 - Sair do programa\n\n");
  202.                              printf("Opcao: ");
  203.                              scanf("%d", &b);
  204.                         }while(b != 3);
  205.                         switch(b){
  206.                             case 1:{
  207.                                 chances = 0;                    
  208.                                 aux = 1;                    
  209.                                 printf("\nAperte qualquer tecla para reiniciar o jogo da forca");
  210.                                 system("pause > null");
  211.                                 break;
  212.                             }
  213.                             case 2:{
  214.                                      chances = 0;
  215.                                      n = 0;                                
  216.                                      aux = 1;
  217.                                      printf("\nAperte qualquer tecla para voltar ao menu principal");
  218.                                      system("pause > null");
  219.                                      break;
  220.                                   }
  221.                             case 3:{
  222.                             return 0;
  223.                             break;
  224.                          }
  225.                          
  226.                     }
  227.                 }
  228.         }
  229.         if(auxiliar == 0){        
  230.            printf("\n\nVoce perdeu! A palavra era: ");
  231.            for (int i = 0; i < tamanho; i++)
  232.                printf("%c", palavra_atual[i]);
  233.             do{
  234.                printf("\n\nO que deseja fazer agora?");
  235.                printf("\n1 - Jogar novamente\n");
  236.                printf("2 - Voltar ao menu principal\n");
  237.                printf("3 - Sair do programa\n\n");
  238.                printf("Opcao: ");
  239.                scanf("%d", &b);
  240.            }while(b != 3);
  241.              
  242.               switch(opcao_usuario_forca){
  243.                 case 1:{
  244.                       printf("\nAperte qualquer tecla para reiniciar o jogo");
  245.                       system("pause > null");
  246.                       break;
  247.                        }
  248.                 case 2:{
  249.                      n = 0;                  // Aqui a variável n tem sua utilidade de novo. O "while" será considerado falso, e o programa não repetirá o laço.
  250.                      printf("\nAperte qualquer tecla para voltar ao menu principal");
  251.                      system("pause > null");
  252.                      break;
  253.                       }
  254.                 case 3:{
  255.                     return 0;
  256.                     break;
  257.                   }
  258.                }
  259.           }
  260.                                                                                                                
  261.        }
  262.         break;
  263.                                
  264.  
  265.        
  266.         case 2:{
  267.             return 0;
  268.             break;
  269.             }
  270.    
  271.        
  272.         }while(a!=2);
  273.    
  274.        system("pause");
  275.    
  276.    }
  277.  
  278.  
  279. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement