Olá pessoal, espero que estejam todos bem!
Revisei o meu código varias vezes e não estou entendendo o oque está acontecendo. No momento que o programa pergunta se queremos adicionar uma palavra nova, e respondemos com S, o terminal me retorna "zsh: command not found: S".
Alguém pode me dar uma luz?
Segue o código:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include "forca.h"
char palavrasecreta[20];
char chutes[26];
int chutesdados = 0;
void abertura() {
printf("******************************\n");
printf("* JOGO DA FORCA *\n");
printf("******************************\n\n");
}
void chuta() {
char chute;
printf("Qual letra? ");
scanf(" %c", &chute);
chutes[chutesdados] = chute;
chutesdados++;
}
int jachutou(char letra) {
int achou = 0;
for(int j = 0; j < chutesdados; j++){
if (chutes[j] == letra) {
achou = 1;
break;
}
}
return achou;
}
void desenhaforca() {
for(int i = 0; i < strlen(palavrasecreta); i++) {
int achou = jachutou(palavrasecreta[i]);
if(achou){
printf("%c", palavrasecreta[i]);
} else {
printf("_ ");
}
}
printf("\n");
}
void adicionarpalavra() {
char sim;
printf("Você deseja adicionar uma nova palavra no jogo? (S/N)\n");
scanf("%c", &sim);
if(sim == 'S') {
char novapalavra[20];
printf("Qual a nova palavra?(Digite em letras maiúsculas) \n");
scanf("%s", novapalavra);
FILE* f;
f = fopen("palavras.txt", "r+");
if(f == 0) {
printf("Banco de dados não disponível...\n\n");
exit(1);
}
int qtd = 0;
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);
}
}
void escolhepalavra() {
FILE* f;
f = fopen("palavras.txt", "r");
if(f == 0) {
printf("Banco de dados não disponível...\n\n");
exit(1);
}
int qtddepalavras;
fscanf(f, "%d", &qtddepalavras);
srand(time(0));
int randomico = rand() % qtddepalavras;
for(int i = 0; i <= randomico; i++) {
fscanf(f, "%s", palavrasecreta);
}
fclose(f);
}
int acertou() {
for(int i = 0; i < strlen(palavrasecreta); i++) {
if(!jachutou(palavrasecreta[i])) {
return 0;
}
}
return 1;
}
int enforcou () {
int erros = 0;
for(int i = 0; i < chutesdados; i++) {
int existe = 0;
for(int j = 0; j < strlen(palavrasecreta); j++) {
if(chutes[i] == palavrasecreta[j]) {
existe = 1;
break;
}
}
if(!existe) erros++;
}
return erros >=5;
}
int main() {
escolhepalavra();
abertura();
do {
desenhaforca();
chuta();
} while (!acertou() && !enforcou());
adicionarpalavra();
}
forca.h:
void abertura();
void chuta();
void desenhaforca();
void escolhepalavra();
int acertou();
int enforcou();
int jachutou(char letra);
void adicionarpalavra();
palavras.txt:
9
MELANCIA
CARRO
ELEFANTE
BOLA
PEIXE
FUTEBOL
CAFEINA
BASQUETE
CONTROLE
Obrigada desde já :))))