2
respostas

to fazendo tudo igual e ta dando erro pq ?

#include<stdio.h>
#include<string.h>
#include<time.h>
#include<stdlib.h>
char  palavraSecreta[20];
char chutes [26];
int chutesdados=0;

void abertura ()
{
    printf("********************\n");
    printf(" * Jogo de Forca * \n");
    printf("********************\n\n");
}

void chuta ()
{
     char chute;
     scanf(" %c",&chute);

     chutes[chutesdados]=chute;
     chutesdados++;

}

int jaChutou (char letra )
{
     int achou = 0;

     int j;

     for (j=0; j<chutesdados; j++)

     {
     if (chutes[j]==letra)

     {
     achou = 1;
     break;
     }
     }

     return achou;
}

void desenhaForca ()
{
        int i;
        for (i=0 ; i<strlen(palavraSecreta) ; i++)
        {

        int achou = jaChutou(palavraSecreta[i] );

            if (achou)
            {
                printf("%c",palavraSecreta[i]);
            }
            else
            {
                printf(" _  ");
            }

        }
        printf("\n");
}

void escolhePalavra()

{

FILE* f;
f =  fopen("palavras.txt" , "r");

int qtddepalavras;
fscanf(f,"%d" , &qtddepalavras);

srand(time(0));

int randomico = rand() % qtddepalavras;

int i;

for (i=0;i<=randomico;i++)
{
    fscanf(f,"%s",palavraSecreta);
}

fclose(f);

}

int acertou()
{
    int i;
    for (i=0;i<strlen(palavraSecreta);i++)
    {
        if(!jaChutou(palavraSecreta[i]))
        {
            return 0;
        }
       }
       return 1;
}

int enforcou()
{
    int i;
    int erros =0;

    for (i=0;i<chutesdados;i++)
    {
        int existe=0;
        int j;
        for (j=0;j<strlen(palavraSecreta);j++)
        {
          if (chutes[i]==palavraSecreta[j])
          {
              existe = 1;
              break;
          }
        }
        if (!existe) erros++;

    }

    return erros>=5;
}

int main()
{

    escolhePalavra( );
    abertura();

    do
    {
        int i;
        int j;
        desenhaForca();
        chuta();

    }

    while (!acertou()&&!enforcou());

    return 0;
}
2 respostas

Oi Vinicius, tudo bom?

Qual erro está rolando?

Rodei seu código aqui e executou normalmente. O unico problema é que qualquer palavra que eu tente jogar encerra e execução do jogo =/

Talvez seja só algum problema de digitação ou lógica que a gente deixou passar.

Aqui você encontra o projeto pronto até esse ponto do curso. Talvez possa te ajudar comparando com seu código =)

Qualquer problema é só falar.

Abraço!

Bom dia Vinicius,

Um outro colega teve problema com a forca também. Dá uma olhada no código do link abaixo e compare com o seu. Deve ser algum detalhe:

Sugestão para o problema da Forca

Além da sugestão, há também no tópico do link um comentário anterior com algumas considerações.

Avisa aí se ajudar e resolver.

Abraço!