Buscar

Escreva um programa em C que implemente o jogo da forca. O programa deve ler uma palavra aleatória de um arquivo chamado "palavras.txt" e permitir ...

Escreva um programa em C que implemente o jogo da forca. O programa deve ler

uma palavra aleatória de um arquivo chamado "palavras.txt" e permitir que o

jogador tente adivinhar a palavra, fornecendo letras como palpites. O programa

deve exibir o estado atual da palavra, com as letras corretas adivinhadas e os

espaços para as letras não descobertas. O jogador tem um número limitado cinco

erros antes de ser enforcado.

Para demonstrar o funcionamento mostre o conteúdo do arquivo “palavras.txt” e o

terminal de execução do programa.

💡 1 Resposta

User badge image

Ed Verified user icon

Claro! Aqui está um exemplo de programa em C que implementa o jogo da forca: ```c #include #include #include #include #define MAX_PALAVRA 100 #define MAX_TENTATIVAS 5 void limparBuffer() { int c; while ((c = getchar()) != '\n' && c != EOF) {} } void exibirForca(int erros) { printf(" _________ \n"); printf("| | \n"); printf("| %c \n", (erros >= 1) ? 'O' : ' '); printf("| %c%c%c \n", (erros >= 3) ? '/' : ' ', (erros >= 2) ? '|' : ' ', (erros >= 4) ? '\\' : ' '); printf("| %c %c \n", (erros >= 5) ? '/' : ' ', (erros >= 6) ? '\\' : ' '); printf("| \n"); printf("| \n"); printf("===============\n\n"); } int main() { FILE *arquivo; char palavra[MAX_PALAVRA]; char palavraAdivinhada[MAX_PALAVRA]; char letra; int tentativas = 0; int acertos = 0; int erros = 0; srand(time(NULL)); arquivo = fopen("palavras.txt", "r"); if (arquivo == NULL) { printf("Erro ao abrir o arquivo palavras.txt\n"); return 1; } // Lê uma palavra aleatória do arquivo int numPalavras = 0; while (fgets(palavra, MAX_PALAVRA, arquivo) != NULL) { numPalavras++; } rewind(arquivo); int palavraSelecionada = rand() % numPalavras; for (int i = 0; i <= palavraSelecionada; i++) { fgets(palavra, MAX_PALAVRA, arquivo); } fclose(arquivo); // Remove o caractere de nova linha da palavra palavra[strcspn(palavra, "\n")] = '\0'; // Inicializa a palavra a ser adivinhada com espaços em branco for (int i = 0; i < strlen(palavra); i++) { palavraAdivinhada[i] = '_'; } palavraAdivinhada[strlen(palavra)] = '\0'; // Loop principal do jogo while (acertos < strlen(palavra) && erros < MAX_TENTATIVAS) { printf("Palavra: %s\n", palavraAdivinhada); printf("Tentativas restantes: %d\n", MAX_TENTATIVAS - erros); printf("Digite uma letra: "); scanf("%c", &letra); limparBuffer(); int letraEncontrada = 0; for (int i = 0; i < strlen(palavra); i++) { if (palavra[i] == letra) { palavraAdivinhada[i] = letra; acertos++; letraEncontrada = 1; } } if (!letraEncontrada) { erros++; } printf("\n"); exibirForca(erros); } // Verifica se o jogador ganhou ou perdeu if (acertos == strlen(palavra)) { printf("Parabéns, você ganhou! A palavra era: %s\n", palavra); } else { printf("Você perdeu! A palavra era: %s\n", palavra); } return 0; } ``` Certifique-se de criar um arquivo chamado "palavras.txt" no mesmo diretório do programa, contendo uma palavra por linha. O programa irá ler uma palavra aleatória desse arquivo para o jogo da forca. Espero que isso ajude! Se tiver mais alguma dúvida, é só perguntar.

0
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais