Já revisei muitas vezes porém segue dando o mesmo erro. Ele não consegue abrir o arquivo TXT na hora de acicionar uma palavra nova.
Não sei se pode ser algum erro no visual studio code ou onde errei no código.
Agradeço muito se alguém puder me ajudar.
#include <stdio.h>
#include <string.h>
#include <time.h>
#include "jogo.h"
char chutes [26];
int chutesdados = 0;
char palavra[20];
int enforcou() {
int erros = 0;
for(int i=0; i<chutesdados; i++){
int existe = 0;
for(int j=0; j<strlen(palavra); j++){
if(chutes[i] == palavra[j]){
existe = 1;
break;
}
}
if(!existe) erros++;
}
return erros >= 5;
}
int ganhou() {
for(int i = 0; i < strlen(palavra); i++) {
if(!jachutou(palavra[i])) {
return 0;
}
}
return 1;
}
void abertura(){
printf("*****************\n");
printf("* Jogo de Forca *\n");
printf("*****************\n\n");
}
void chuta(){
char chute;
printf("Qual a letra:");
scanf(" %c", &chute);
chutes[chutesdados] = chute; //Utilizando o contator para salvar os chutes na variavel
(chutesdados) ++;
printf("Tentativa: %d\n", chutesdados);
}
int jachutou(char letra){
int achou = 0;
for(int j = 0; j < chutesdados; j++) { // contator para salvar cada chute do jogador
if(chutes[j] == letra) {
achou = 1;
break;
}
}
return achou;
}
void desenhoforca(){
for(int i = 0; i < strlen(palavra); i++) { // strlen serve para somar as letras do char
int achou = jachutou(palavra[i]);
if(achou) {
printf("%c ", palavra[i]);
}else{
printf("_ ");
}
}
printf("\n");
}
void escolhepalavra() {
FILE* f;
f = fopen("palavras.txt", "r");
if(f == 0) {
printf("Desculpe!\nNosso servidor esta foda do ar no momento, tente novamente em alguns instantes.\n");
exit(1);
}
int quantidadedepalavras;
fscanf(f, "%d", &quantidadedepalavras);
srand(time(0));
int randomico = rand() % quantidadedepalavras;
for(int i = 0; i<=randomico; i++){
fscanf(f, "%s", palavra);
}
fclose(f);
}
void adicionapalavra() {
char quer;
printf("Voce deseja adicionar uma palavra nova? (S/N)\n");
scanf(" %c", &quer);
if(quer == 'S') {
char novapalavra[20];
FILE* f;
f = fopen("palavras.txt", "r+");
if(f == 0) {
printf("Nao foi possivel acessar o banco de dados no momento.\nTente novamente.\n");
exit(1);
}
printf("Digite a palavra:\n");
scanf("%s", novapalavra);
int qtd;
fscanf(f,"%d", &qtd);
qtd++;
fseek(f, 0, SEEK_SET);
fprintf(f, "%d", qtd);
fseek(f, 0, SEEK_END);
fprintf(f, "\n%s", novapalavra);
fclose(f);
}
}
int main() {
abertura();
escolhepalavra();
do{
desenhoforca();
chuta();
} while (!ganhou() && !enforcou());
adicionapalavra();
}