2
respostas

erro no jogo da forca

pegue o codigo do i nstrutor, compilei mas na hora do teste as letras correspondentes ao tracejado não aparecem no local onde deveriam.

2 respostas

kleberson,

ara que possamos analisar, informe seu código!

Olá Kleberson.Baixei o projeto ,testei e percebi que as letras tem que estar em maiúsculo se não elas não serão encontradas, por exemplo se colocar a letra a, ele não vai encontrar porque para o programa a é diferente de A.

Porem se quiser que funcione tanto para maiúsculas quanto para minusculas poder acrescentar essa condição para entrar no if.

 if(chutes[j] == palavrasecreta[i] || chutes[j]-('a'-'A') == palavrasecreta[i] + 0) {

Como isso funciona, os caracteres podem ser representados por números traduzidos pela tabela ASCII, por exemplo o caracter a é o numero 97 e o A é o 65, e como eles aparecem em ordem alfabética na tabela se pegarmos a diferença entre o numero 97 e o 65 que é 32 conseguiremos transformar letras minusculas em maiúsculas para a comparação.

Nesse if na primeira condição verificamos se a letra chutada está entre as letras da palavra secreta.

Já na segunda condição transformamos a letra chutada em sua representação numérica da letra em maiúscula e fazemos o mesmo com a letra da palavra secreta, por exemplo se o chute[j] tiver o valor a e a palavrasecreta[i] tiver valor A.

O carácter a que é o numero 97 menos 32 é 65 e o carácter A que é o numero 65 que menos 0 é o próprio 65, com isso a comparação 65 == 65 é verdadeira então a é igual a A. Isso acaba sendo um pouco complicado no começo, mas qualquer duvida pode me procurar.

Um fato interessante é que o código continua funcionando mesmo quando colocado letra maiúsculas e isso porque estamos utilizando o operador ou ( || ) e isso acontece porque ele se satisfaz com apenas uma condição verdadeira.

Então, foi isso que consegui trazer para ajudar com a sua duvida, me deixei saber se isso te ajudou de alguma maneira e qualquer duvida pode chamar. Abraços.