Ed. Técnica, perguntado por esterbjorge27851, 10 meses atrás

Suponha que você é gestor de uma equipe de desenvolvimento de software e em determinado momento é pedido por um gestor de projetos que seja feita uma atualização de um dos softwares que haviam sido iniciados, mas não concluídos. Este software se trata de um jogo da Forca simples, mas que permite jogar em duas pessoas alternando entre quem vai informar a palavra secreta, e quem vai informar letras até acertar a palavra secreta ou ser enforcado. Basicamente, o funcionamento atual do jogo se baseia da seguinte forma:
1. É informado ao jogador 1 sobre as regras básicas do jogo.
2. O Jogador 1 informa uma palavra secreta com até 20 letras. 
3. O jogador 2 é informado das regras básicas do jogo.
4. O jogador 2 informa uma letra palpite.
5. A cada palpite é verificado se o mesmo acertou ou errou, e é informado ao mesmo a quantidade atual de acertos e erros.
6. O jogo termina se ele acertar todas as letras da palavra secreta, ou for enforca

Soluções para a tarefa

Respondido por luiscsouza
15

Resposta:

Explicação:

#include <stdio.h>

#include <string.h>

#include <locale.h>          

int main()

{

   char resposta[20];  

   int erros;          

   int acertos;          

   char letra;          

   int i, j;            

   int max;  

 

   setlocale (LC_ALL, "portuguese");          

   printf("************ Jogo da Forca ************\n");        

   printf("************** Jogador 1 **************\n\n");

   printf("Utilize apenas letras minúsculas.\n");

   printf("Máximo de 20 letras\n\n");

   letra = ' '; max = 1;              

   for (i = 1; i <= 20; i++) {    

       resposta[i] = ' ';    

   }

   erros = 0; acertos = 0;

   printf("Digite a palavra secreta: ");

   scanf (" %s", resposta);

   max = strlen (resposta);

   system("clear||cls");  

       

   printf("************ Jogo da Forca ************\n");    

   printf("************** Jogador 2 **************\n\n");

   printf("Utilize apenas letras minúsculas.\n");

   printf("Limite de 6 erros. Palavra de até 20 letras\n\n");

   while ((erros <6) && acertos <max)    

 

   {

         printf("Digite uma letra: ");

         scanf (" %c", &letra);

         j = 0;

         for (i = 0; i <= max; i++)

         {

              if (resposta[i] == letra)

              {

                  acertos++; j++;

                  printf ("\nAcertos: %d - Erros: %d\n",acertos, erros);

              }

         }

         if (j <= 0)      

               erros++;

               if ( erros >=6)

               printf ("derrota com %d erros \n", erros);

               else

               if (acertos >=max)

                printf("ganhou!");

               printf ("vitoria com %d acertos\n", acertos); //Aqui falta a parte responável pela verificação de vitoria ou derrota

             

   }

   return (0);

}


KDM13: funciona sim
KDM13: tem que arrumar os espaços que fica verde
KDM13: a proposito vlw pelo codigo man
magalhaessesmet: Agora sim funcionou
magalhaessesmet: E a segunda questão como é que fica?
magalhaessesmet: Questão 2: Citar ao menos duas melhorias que poderiam ser acrescentadas neste código de forma a tornar o software mais completo, robusto ou com uma interface mais agradável em forma textual apenas, não sendo necessário o envio do código relativo a estas melhorias.
Assim, a entrega para esta atividade se baseia em um arquivo TXT de texto simples contendo o código de resposta da Questão 1, e suas considerações escritas para a questão 2 no mesmo arquivo a ser anexado como atividade.
mmatheushorta: Aqui nao rodou nao
KrauserBoss: Codigo está em C++
KrauserBoss: Possui erros na linha 11 e na linha 20
otaciliocaetano2014: o system clear || cls impede de executar esse algoritmo em dev c++ alguém poderia me ajudar na resolução ??
Perguntas interessantes