Eu decidi refatorar o código pois estava com algumas dúvidas quanto a lógica do jogo, então fiz até esse ponto e algumas coisas me deixaram curioso.
#include <stdio.h>
#include <string.h>
void abertura() {
printf("*****************************************\n");
printf(" Jogo de Forca \n");
printf("*****************************************\n");
}
void chuta(int* tentativas, char chutes[26]) {
char chute;
printf("Qual seu chute?\n");
scanf(" %c", &chute);
chutes[*tentativas] = chute;
for(int i = 0; i <= *tentativas; i++) {
printf("Chutes na posição %d vale %c\n", i, chutes[i]);
}
(*tentativas)++;
}
int main() {
abertura();
int acertou;
int enforcou;
char palavraSecreta[20];
sprintf(palavraSecreta, "MELANCIA");
char chutes[26];
int tentativas = 0;
while(!acertou && !enforcou) {
chuta(&tentativas, chutes);
}
}
1. Se o array foi definido com tamanho de 26 alocações, então por que consigo dar mais de 26 tentativas? 2. O array deveria não pode aceitar valores iguais, já que o array deve ter 26 espaços que teoricamente cada espaço deveria ser únicamente pra cada letra, mas aqui ele está aceitando.