2
respostas

FORCA RESULTADO FINAL.

PERCEBI QUE DEPOIS DE DIGITAR A ULTIMA LETRA DA PALAVRA ELA NÃO IMPRIME POR COMPLETO A PALAVRA SECRETA COMO NO EXEMPLO ABAIXO TERMINOU EM MELA __ . OUTRA QUESTÃO O FUNÇÃO SET LOCALE NÃO FUNCIONA FORA DO int main().

/****/ / Jogo de Forca / /***/

Você já deu 0 chutes


Qual letra? M Você já deu 1 chutes M _ _ _ _ Qual letra? E Você já deu 2 chutes M E _ _ _ Qual letra? L Você já deu 3 chutes M E L _ _ Qual letra? A Você já deu 4 chutes M E L A _ Qual letra? O Você deseja adicionar uma nova palavra no jogo (S/N)?

2 respostas

Olá Sergio, tudo bem com você?

Realmente o programa não digita a palavra completa ao acertar, entretanto esse era o comportamento esperado, caso você queira adicionar esse comportamento é bem simples, basta executar a função após o do/while, da seguinte maneira :

int main() {

    abertura();
    escolhepalavra();

    do {

        desenhaforca();
        chuta();

    } while (!ganhou() && !enforcou());

    if(ganhou()) desenhaforca();

    adicionaPalavra();

}

Em relação a função setlocale o ideal é ela ser estar logo no começo do main, por ser o ponto de partida do nosso programa, configurando corretamente as teclas logo no início.

Qualquer coisa estou a disposição :)

Abraços e Bons Estudos!

Boa tarde, eu consegui resolver o problema com: printf("%s \n", palavrasecreta); porem o seu exemplo é melhor. Estou usando o CodeBlock por isso o problema nas acentuações. Eu inseri o setlocale no inicio do int main e também tentei dentro das funções porem o comando setlocale nãc é reconhecido dentro das funções e no int main não tem pontuações. Agradeço pela colaboração !!!