Não entendi como funciona e para que serve a função return, nesse caso ele utiliza o return para atribuir um valor ao "achou" que será usado posteriormente, correto?:
int jachutou(char letra, char chutes[26], int tentativas){
int achou = 0;
for (int j = 0; j < tentativas; j++)
{
if (chutes[j] == letra)
{
achou = 1;
break;
}
}
return achou;
}
Porém ele iguala o int "achou" ao "jachutou", mas eu não entendi como o "jachutou" poreria ter um valor, sendo que em nenhum momento um valor foi igualado a ele:
int achou = jachutou(palavrasecreta[i], chutes, tentativas);
Além de que, se fosse para usar o achou depois, não dava na mesma usar um ponteiro? Por exemplo: `#include <stdio.h>
#include <string.h>
void abertura(){ printf("*\n"); printf("* Jogo da Forca \n"); printf("****\n\n");}
void chuta(char chutes[26], int* tentativas){ char chute; scanf(" %c", &chute);
chutes[(*tentativas)] = chute;
(*tentativas)++;
}
void jachutou(char letra, char chutes[26], int tentativas, int* achou){
for (int j = 0; j < tentativas; j++)
{
if (chutes[j] == letra)
{
(*achou) = 1;
break;
}
}
}
int main(){
char palavrasecreta[20];
sprintf(palavrasecreta, "MELANCIA");
int acertou = 0;
int enforcou = 0;
char chutes[26];
int tentativas = 0;
abertura();
do
{
for (int i = 0; i < strlen(palavrasecreta); i++)
{
int achou = 0;
jachutou(palavrasecreta[i], chutes, tentativas, &achou);
if (achou)
{
printf("%c ", palavrasecreta[i]);
}
else
{
printf("_ ");
}
}
printf("\n");
chuta(chutes, &tentativas);
}
while (!acertou && !enforcou );
}`