Ir ao conteúdo
  • Cadastre-se

C desenvolvimento de código (atividade de algoritmos e lógica de programação)


Posts recomendados

@arfneto Não foi pedido para corrigir e sim, apenas completar! Por isso mandei o código no meu post anterior apenas com o que foi proposto! Suas respostas estão me confundindo porque está consertando o código, fazendo assim, o que foi proposto na atividade 2, que é onde sim é pedido as melhorias.

 

ENUNCIADO: Questão 1: Completar as partes faltantes do código em linguagem C indicadas por lacunas e enviar o mesmo completo usando como base o código que vem ao final da atividade. É preciso completar o código com o ajuste do idioma, a condição de parada do laço de repetição principal do jogo e a verificação de vitória ou derrota do jogador 2.
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.

Em 16/07/2020 às 01:05, arfneto disse:

Curiosamente você deixou de corrigir DOIS erros óbvios que foram listados e comentados... Espero que não tenha entregue isso...


   for (i = 1; i <= 20; i++) {   
        resposta[i] = ' ';   
    }

De novo? resposta é char[20] não pode escrever <=20 🤔


          for (i = 0; i <= max; i++)
          {
               if (resposta[i] == letra)

max é strlen(resposta) então não pode comparar comparar de 0 a max inclusive. Provavelmente não testou com uma palavra de 20 letras né? De 0 a 20 são 21... Mas seu professor pode testar...

 

Isso não pode ser alterado na atividade 1 e sim pode ser citado como melhoria na atividade 2, pois como você mesmo disse :

 

Em 16/07/2020 às 01:05, arfneto disse:

Usando termos suaves, o programa é bem fraquinho. 

Aparentemente é proposital para que facilite para nós iniciantes. E sim, eu estou acompanhando toda a discussão!

adicionado 3 minutos depois

Lembrando que a questão 2 da atividade, não foi proposto o envio do código e sim uma explicação textual do que pode ser melhorado

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

22 minutos atrás, zZsmithZz disse:

Não foi pedido para corrigir e sim, apenas completar! Por isso mandei o código no meu post anterior apenas com o que foi proposto! Suas respostas estão me confundindo porque está consertando o código, fazendo assim, o que foi proposto na atividade 2, que é onde sim é pedido as melhorias

 

Só posso imaginar que não leu direito. Repetiu o que eu disse pra corrigir o que eu disse...

 

Corrigir os dois erros não é uma melhoria. Está errado apenas.  Lamento se confundi alguém

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Em 16/07/2020 às 00:04, zZsmithZz disse:

@Lucca Rodrigues


#include <stdio.h>
#include <string.h>
#include <locale.h>           // ---------- Aqui falta a biblioteca necessária para idioma - 0.1 

int main()
{
    char resposta[20];  
    int erros;          
    int acertos;         
    char letra;          
    int i, j;            
    int max;            
 
    setlocale(LC_ALL,"Portuguese");    // --------- Aqui falta a definiçao de idioma - 0.1 ponto

    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))      // Aqui falta a condição de parada do laço - 0,3 ponto
    {
          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 (acertos == strlen(resposta)) //Aqui falta a parte responável pela verificação de vitoria ou derrota
{
 printf ("\nPARABÉNS, VOCÊ VENCEU!\n");
}
else
 printf ("\n VOCÊ PERDEU!!!\n"); //Final da Verificação
   return (0);
}

Vou entrar em contato com o professor sim! Mas seguindo o que foi pedido pela universidade, apenas fiz edição onde estão os comentários. Eu queria consertar essa questão de contar como acerto palavras repetidas =S A questão 2, pode utilizar qualquer coisa que foi comentado aqui na discussão 

Poderia apenas postar esse programa que eu postei com as alterações de correção para os 2 erros que você disse para que eu entenda exatamente onde são? 

Eu complementei minha resposta para a questão 2 da atividade com as melhorias aqui discutidas, mas a minha dúvida é se o meu código está com algum erro, pois além das letras repetidas estarem sendo contadas como certas ( coisa que eu só poderia corrigir fazendo melhoria no programa nas partas onde não pediram para mexer), ele não exibe erros no funcionamento. Grato

 

Apenas à partir desse ponto: //Aqui falta a parte responável pela verificação de vitoria ou derrota que foi pedido para alterar, daí não estou vendo erro

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

5 horas atrás, zZsmithZz disse:

 

Apenas à partir desse ponto: //Aqui falta a parte responável pela verificação de vitoria ou derrota que foi pedido para alterar, daí não estou vendo erro


Eu acho que já expliquei umas vezes que o programa como está não funciona para palavras de tamanho max e é preciso corrigir isso. Não é uma melhoria. É um erro. Assim como o erro na inicialização que poderia cancelar o programa dependendo das opções de compilação porque está gravando em memória não alocada. Ou mesmo nem compilar dependendo da análise do compilador porque estaticamente já está errado.

 

Não vou mais explicar isso porque está acima umas 3 ou 4 vezes. E também no outro tópico.

  • Curtir 1
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!