1
resposta

O jogo até onde parou

include <stdio.h>

include <string.h>

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

void chuta (char chutes[26],int tentativas){ scanf(" %c", &chutes[tentativas]); }

int main() {

char palavrasecreta [20]; sprintf(palavrasecreta,"MELANCIA"); int tentativas=0; char chutes [26]; int acertou = 0; int forca = 0; abertura();

do { // imprime a letra e os traços for (int i = 0; i < strlen(palavrasecreta); i++){ int achou; // verifica se a letra esta na palavra for (int j = 0; j< tentativas; j++){ if ( chutes[j] == palavrasecreta[i]){

achou = 1;

break;

}else { achou = 0; }

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

printf("\n");

chuta(chutes,tentativas);

tentativas++;

}while (!acertou && !forca);

}

1 resposta

Olá!

Pelo que entendi, você está com dúvidas em relação a como continuar o jogo de forca até o ponto do vídeo. Vou te ajudar!

No código que você compartilhou, a função main() é responsável por executar o jogo de forca. Dentro do do-while, o jogo continua até que a variável acertou seja verdadeira ou a variável forca seja verdadeira.

No entanto, no código que você compartilhou, não há uma condição para atualizar o valor das variáveis acertou e forca, o que pode fazer com que o jogo fique em um loop infinito.

Uma sugestão para atualizar essas variáveis é adicionar uma condição dentro do do-while que verifique se o jogador acertou todas as letras da palavra secreta ou se o número de tentativas excedeu um limite (por exemplo, 6 tentativas).

Por exemplo, você pode adicionar o seguinte código logo após a chamada da função chuta(chutes, tentativas):

if (tentativas >= 6) {
    forca = 1; // jogador perdeu
}

acertou = 1; // assume que o jogador acertou todas as letras
for (int i = 0; i < strlen(palavrasecreta); i++) {
    int achou = 0; // assume que a letra não foi encontrada
    for (int j = 0; j < tentativas; j++) {
        if (chutes[j] == palavrasecreta[i]) {
            achou = 1; // encontrou a letra
            break;
        }
    }
    if (!achou) {
        acertou = 0; // se uma letra não foi encontrada, o jogador não acertou todas as letras
        break;
    }
}

Dessa forma, o jogo continuará até que o jogador acerte todas as letras ou exceda o número de tentativas permitidas.

Espero ter ajudado e bons estudos!