1
resposta

Continuando o jogo

#include <stdio.h>
#include <string.h>

// Variáveis globais
char palavrasecreta[20];
char chutes[26];
int tentativas = 0;

void abertura() {
    printf("****************\n");
    printf("* Jogo de Forca *\n");
    printf("****************\n\n");
}

void chuta() {
        char chute;
        scanf(" %c", &chute); 
        
        chutes[tentativas] = chute;
        tentativas++;
}

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++) {

    int achou = jachutou(palavrasecreta[i]);

    if (achou) {
        printf("%c", palavrasecreta[i]);
        }else {
            printf("_ ");
        }
    }
    printf("\n");
}

void escolhepalavra() {
    sprintf(palavrasecreta, "MELANCIA");
}

int main() {
    
    int acertou = 0;     
    int enforcou = 0;    
    
    escolhepalavra();
    abertura();
    
    do {

        desenhaforca();
        chuta();

    } while (!acertou && !enforcou); 
    return 0;
}
1 resposta

Oi, Guilherme! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Gostei de ver como você estruturou o jogo de forca, separando funções para abrir o jogo, registrar chutes e desenhar a forca.

Uma dica interessante para o futuro é usar a função toupper() para garantir que os chutes sejam comparados sem diferenciar maiúsculas e minúsculas. Veja este exemplo:


#include <stdio.h>
#include <ctype.h>

char letra = 'a';
letra = toupper(letra); // Converte para maiuscula
printf("%c", letra);

Esse código transforma qualquer letra em maiúscula, evitando divergências na comparação das letras do jogo.

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!