Olá Christian, tudo bem com você?
Dentro do seu programa não está sendo armazenado quais os chutes feitos por quem está jogando, assim, o vetor de chutes chutes[26]
está vazio e quando é feita a verificação se o chute já foi feito, o programa olha para um vetor vazio e diz que não acertou a letra. Outro ponto, é que na lógica só está sendo tratado o acerto. Quando a pessoa erra o chute, não está sendo contabilizado para enforcar e perder o jogo.
Possível solução para o chute e enforcamento:
char chute;
printf("Qual letra? ");
scanf(" %c", &chute);
chutes[tentativas] = chute;
tentativas++;
Adicionar esse trecho de código dentro do loop do-while
, para sempre ao início de uma iteração ser pedido um chute, e que ele seja contabilizado dentro do vetor de chutes. Ao final disso, aumenta o número de tentativas para garantir que a pessoa que está jogando não passe das tentativas máximas. Para enforcar, podemos adicionar no loop o seguinte trecho de código:
No inicio do código, declarar a variável int erros = 0
;
caso a pessoas não acerte, acrescer a variável erros
:
if(achou){
printf("%c ", palavrasecreta[i]);
}
else{
printf("_ ");
erros++;
}
E ao final, verificar a quantidade de erros da pessoa:
if(erros == 5){
enforcou = 1;
}
Assim, quando a pessoa fizer 5 chutes errados, ela será enforcada e o jogo acaba.
Essas sugestões podem ser alteradas e você pode fazer do seu jeito também, apenas tentei dar uma luz do que pode ser feito e te desafio a implementar e mandar pra nós aqui no fórum a sua solução!
Fico à disposição em caso de dúvidas.
Um grande abraço e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!