Ir para conteúdo
Fórum Script Brasil

pedrolinuxc

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre pedrolinuxc

pedrolinuxc's Achievements

0

Reputação

  1. INTRODUÇAO AO PROBLEMA Ola pessoal, eu estou iniciando meus estudos de linguagem C e uso linux fedora cinnamon no meu computador. Estava fazendo uma atividade passada pelo professor que pedia para fazer um jogo de advinhar palavras em c (jogo da Forca). O jogo roda dentro de um ciclo while que determina que o jogo deve rodar ate que o usuario advinhe a palavra toda ou ate as tentativas acabarem. O PROBLEMA O que esta me impedindo de concluir a tarefa é o fato de que por alguma razão, o C simplesmente esta contanto errado o numeros de tentativas do usuario. Ao invés de reduzir as tentantivas em 1, caso o usuario erre, ele esta reduzindo em 5. não faço a minima ideia do porque CODIGO EM C ( Compilado no GCC ) #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdbool.h> char *palavra; //Guarda a palavra Secreta size_t tam; //Recebe o retorno de strlen, informando a quantidade de caracteres da palavra char letra; //Guarda a letra que o usuario digita para tentar advinhar a palavra int i; //Laço for short int acerto = 0; // Guarda a quantidade de acertos do usuario short int tentativas = 6; // Guarda a quantidade de erros do usuario void limpar(void) { int c = 0; while (c = getchar() != '\n' && c != EOF) { } return; } int main() { printf("Digite a palavra Secreta: "); fgets(&palavra,30,stdin); tam = strlen(&palavra); char revelar [tam]; char auxpalavra [tam + 1]; strcpy(auxpalavra,&palavra); system ("clear"); for (i = 0; i < tam - 1; i++) { revelar [i] = '-'; } //Loop do Jogo while ( acerto != tam - 1 || tentativas != 0 ) { printf("\n\n\t\t\t\t\t%s",revelar); printf("\nTentativas Restantes: %i\n",tentativas); printf("Numeros de Acertos: %i\n",acerto); printf("\nDigite uma letra: "); scanf("%c",&letra); limpar(); // Verificando se o Usuario Acertou ou Errou for (i = 0; i < tam; i++) { if ( letra == auxpalavra [i] ) { //Caso o usuario acerte a letra revelar [i] = letra; acerto ++; } if ( letra != auxpalavra [i] ) { //Caso o usuario erre a letra tentativas --; } } system ("clear"); } return 0; } Se alguém poder me ajudar a entender esse probelam ou corrigir, fico agradecido
×
×
  • Criar Novo...