1
resposta

Meu Jogo

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

// VARIAVEIS GLOBAIS

char palavrasecreta [20] ;
char chutes[26];
int tentativas = 0;

void abertura( ) { printf("/***********************\n"); printf("/ JOGO DE FORCA *\n"); printf("************************\n\n"); }

void chuta(){

     char chute;
      scanf(" %c", &chute);

        chutes[tentativas] = chute;
         tentativas++;
}


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

   for(int j  = 0;  j < tentativas;  j++) {
        if (chutes[j] == letra) {
        achou = 1;
            break;
   }
}
    return achou;
}

void desenhaforca () {

for(int i = 0 ; i < strlen(palavrasecreta); i++) {

int achou = jachutou (palavrasecreta[i] );

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

}
printf("\n");

} void escolhepalavra() { sprintf(palavrasecreta, "MELANCIA");

}

int main() {

int acertou = 0;
int enforcou = 0;

 escolhepalavra();

abertura( );

do {

desenhaforca();

 chuta();


}

while(!acertou && !enforcou);

}

1 resposta

Olá, Projeto! Como vai?

Pelo que entendi, você está com dúvidas na atividade de continuar o jogo da forca. Vamos lá!

No código que você compartilhou, a função main está dentro de um loop do-while, que vai continuar executando enquanto a variável acertou for falsa e a variável enforcou também for falsa. Ou seja, o loop vai continuar até que o jogador acerte a palavra secreta ou seja enforcado.

Dentro desse loop, primeiro é chamada a função desenhaforca, que é responsável por exibir a palavra secreta com os caracteres já acertados e os espaços em branco para os caracteres que ainda não foram acertados. Essa função utiliza a função jachutou para verificar se cada letra da palavra secreta já foi chutada pelo jogador. Se a letra já foi chutada, ela é exibida, caso contrário, é exibido um espaço em branco.

Em seguida, é chamada a função chuta, que permite ao jogador informar uma letra para tentar acertar a palavra secreta. Essa letra é armazenada no vetor chutes e o número de tentativas é incrementado.

Esse processo de exibir a palavra secreta e permitir ao jogador chutar uma letra se repete até que o jogador acerte a palavra secreta ou seja enforcado.

No entanto, no código que você compartilhou, as variáveis acertou e enforcou não estão sendo atualizadas em nenhum momento. Isso significa que o loop vai continuar executando indefinidamente. Para corrigir isso, você precisa adicionar a lógica para atualizar essas variáveis dentro do loop.

Por exemplo, você pode adicionar um trecho de código para verificar se o jogador acertou a palavra secreta. Se todas as letras da palavra secreta já foram chutadas, significa que o jogador acertou e a variável acertou pode ser atualizada para verdadeira.

Da mesma forma, você pode adicionar um trecho de código para verificar se o jogador foi enforcado. Por exemplo, se o número de tentativas já atingiu um determinado limite, significa que o jogador foi enforcado e a variável enforcou pode ser atualizada para verdadeira.

Dessa forma, o loop vai continuar executando até que o jogador acerte a palavra secreta ou seja enforcado.

Espero ter ajudado! Bons estudos!