#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//adicionando a variavel aqui em cima fora de qualquer função chama-se variável global - usa qunado temos certeza que será usado em tudo
char palavrasecreta [20];
char chutes[26];
int tentativas = 0;
//o nome na frente da função indica o resultado que retorna para o código o void é vazio em inglês logo não retorna valores, apenas realiza
void escolhepalavra()
{
/* palavrasecreta [0] = 'M'; palavrasecreta [1] = 'E'; palavrasecreta [2] = 'L'; palavrasecreta [3] = 'A'; palavrasecreta [4] = 'N'; palavrasecreta [5] = 'C';
palavrasecreta [6] = 'I'; palavrasecreta [7] = 'A'; palavrasecreta [8] = '\0';
(é dessa maneira que o sprintf salva ue usando o %s le ele le até o \0 e acaba a string) */
sprintf(palavrasecreta, "MELANCIA"); //s de string - sprintf // salva os caracteres escritos dentro do array determinado
}
void abertura()
{
printf("***************************\n");
printf("**** Jogo de Forca ****\n");
printf("***************************\n\n");
}
//o nome int na frente retorna um inteiro, o return no fim indica o retorno da função retorna o valor, nesse caso optamos para devolver o valor int achou
int jachutou(char letra)
{
int achou = 0;
for(int j = 0; j < tentativas; j++)
{
if(chutes[j] == letra)
{
achou = 1;
break;
}
}
return achou;
}
void desenhaforca()
{
for (int i = 0; i < strlen(palavrasecreta); i++) //A função strlen é utilizada para calcular o tamanho de uma string em C.
{ //Ela retorna o número de caracteres na string, excluindo o caractere nulo de terminação.
int achou = jachutou(palavrasecreta[i]);
if(achou)
{
printf("%c", palavrasecreta[i]);
}
else
{
printf("_ ");
}
}
printf("\n");
}
void chuta()
{
char chute;
scanf(" %c", &chute);// espaço antes %c serve para ignorar o 'enter' pois 'enter' pode ser considerado char e fica no buffer causando erro
chutes[tentativas] = chute; //Array é um ponteiro que aponta para o primeiro elemento do array nesse caso chutes[0]
tentativas++; // por isso não necessita de a apontar de maneira diferente igual o ponteiro int* tentativas
}
int main()
{
int acertou = 0;
int enforcou = 0;
escolhepalavra(palavrasecreta);
abertura();
do
{
desenhaforca(palavrasecreta, chutes, tentativas);
chuta(chutes, tentativas);
}
while(!acertou && !enforcou); //exclamação é mesma coisa de dizer não ou falso, não acertou que é acertou == 0 // ! nega uma variável boleana
}