Ir ao conteúdo
  • Cadastre-se

C Jogo da forca em C


Kaue Almeida

Posts recomendados

Boa noite amigos, espero que estejam bem.

O problema em que preciso de ajuda é um código bem simples(jogo da forca), porém, como sou novato em programação e estou aprendendo C não estou identificando onde exatamente está o erro. O programa executa tudo normal, o problema é que após eu digitar a primeira letra da palavra o programa tenta fazer a leitura e termina o código.

Deixarem uma imagem para vocês verem o que acontece

 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>


int main ()
{
char palavra[21];
char resposta[21];
char letra[21];
char espaco[21]="*";
char erradas[21];
char tamanho;
int tentativas=5, acertos=0, erros=5;
int cont, corretas;


    printf(">>>>>>>>>>><<<<<<<<<<\n");
    printf(">>> JOGO DA FORCA <<< \n");
    printf(">>>>>>>>>><<<<<<<<<<<\n");

    printf("\nDigite a palavra que deseja: ");
    gets(palavra);


    for (cont =0; cont<strlen(palavra); cont++)
        espaco[cont]='*';
        tamanho=strlen(palavra);

        while (erros > 0)
        {
            corretas =0;
            printf("\n%s\n", espaco);
            printf("\nDigite uma letra: ");
            gets(letra);
            printf("\n\tLetra digitada: %s\n", erros);

            for (cont =0; cont <strlen(palavra); cont++)
            {
                if (letra[0] == palavra[cont])
                {
                    espaco[cont] = palavra[cont];
                    corretas++;
                    acertos++;
                }
            }

            if (corretas ==0);
            {
                tentativas--;
                if (tentativas ==0)
                {
                    printf("\nVoce Faleceu\n");
                    printf("\nA palavra era %s\n", palavra);
                    break;
                }
                else
                {
                    printf("\nVoce errou uma letra, ainda tem %d chances", tentativas);
                    erradas[erros] = letra[0];
                    erros++;
                }



            while (acertos == tamanho)
                    {
                        printf("\nAcertou a palavra\n");
                        break;
                    }
                    if (letra == palavra)
                    {
                        printf("\nAcertou uma letra\n");
                    }
            }

        }
}

1437560000_Semttulo.png.fea537be50997d52671fec87378e1a4f.png

Link para o comentário
Compartilhar em outros sites

@Kaue Almeida Pra que imprimir asteriscos depois de digitar a palavra? Aliás, está lendo a mesma com gets(), que é obsoleta:

image.png.1cdf53becadff13315d198900cdd1961.png

Use fgets(), ou quem sabe scanf().

 

Se o intuito era "não mostrar" a palavra que o usuário digitou (já que é um jogo da forca), você poderia fazer o seguinte: se estiver programando em Windows, desabilite echo e line input usando SetConsoleMode() para poder ler caractere por caractere com fgetc() ou com alguma outra função, e por fim imprima um asterisco conforme o usuário digita (lembre-se de salvar o modo de entrada para restaurar depois). Se tiver acesso ao cabeçalho conio, um loop com a função getch() daria no mesmo.

 

43 minutos atrás, Kaue Almeida disse:

o problema é que após eu digitar a primeira letra da palavra o programa tenta fazer a leitura e termina o código.

O código tem vários erros e problemas, mas acho que esse seu problema aí é por causa disso:

43 minutos atrás, Kaue Almeida disse:


gets(letra);
printf("\n\tLetra digitada: %s\n", erros);

A variável "erros" é do tipo inteiro. Acredito que você queria imprimir a variável "letra" e se confundiu. Aliás, "letra" é uma string, se você precisa de uma letra, declare um char e leia com fgetc(), getchar(), scanf() ou alguma outra função.

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!