o arquivo está todo certinho, mas dá como arquivo não encontado.
#include <stdio.h> #include <string.h> #include <time.h> #include <stdlib.h>
char palavrasecreta[20]; char chutespossiveis[26]; int chutes_dados = 0;
void abertura(){ printf("*************\n"); printf("JOGO DA FORCA \n"); printf("*************\n\n");
}
void funcao_chute(){ char chute; printf("Insira uma letra (chute): "); scanf(" %c", &chute); getchar();
chutespossiveis[chutes_dados] = chute;
chutes_dados++;
}
int verificacao(char letra){
for(int i = 0; i < chutes_dados; i++) {
if(chutespossiveis[i] == letra) {
return 1;
}
}
return 0;
}
void forca(){
for(int i = 0; i < strlen(palavrasecreta); i++) {
if(verificacao(palavrasecreta[i])) {
printf("%c ", palavrasecreta[i]);
} else {
printf("_ ");
}
}
printf("\n");
}
void palavraescolhida(){ FILE* arquivo = fopen("palavras.txt","r"); if (arquivo == NULL){ printf("erro ao abrir arquivo"); }
int num_palavras = 0; fscanf(arquivo, "%d", &num_palavras);
int num = time(0); srand(num); int aleatorio = rand() % num_palavras;
for (int i = 0; i <= aleatorio; i++){
fscanf(arquivo, "%s", palavrasecreta);
}
fclose(arquivo);
}
int acertou(){
for (int i = 0; i < strlen(palavrasecreta); i++){
if(!verificacao(palavrasecreta[i])){
return 0;
}
}
return 1;
}
int enforcou(){
int erros = 0;
for(int i = 0; i < chutes_dados; i++){
int chutevalido = 0;
for(int j = 0; j < strlen(palavrasecreta); j++){
if(verificacao(palavrasecreta[j])){
chutevalido = 1;
break;
}
}
if(!chutevalido){
erros++;
}
}
return erros >= 5;
}
int main(){
palavraescolhida();
abertura();
do{
funcao_chute();
forca();
} while (!acertou() && !enforcou());
}