Problemas com Operadores Lógicos

1 resposta
guerra.raffa

Galera estou tendo problemas nesse while

while(x == palavra.length() ^ chances < 6){ x++; System.out.println("digite uma letra"); String letra = entrada.nextLine(); boolean contains = palavra.contains(letra); if(contains == true){ System.out.println("acertou"); pontos = pontos + 10; }else{ Dados pCorpo = partes.pop(); System.out.println(pCorpo.getPegaElem()); chances++; } System.out.println(pontos); }

Não estou conseguindo montar uma lógica para que funcione.
Preciso ter chances<6, mas preciso tbm repetir o um numero de vezes igual a quantidade de letras, porque pode ser que acerte tudo de primeira, mas pode ser que erre algumas vezes.
Atenciosamente.

1 Resposta

J

não fugindo muito do que você já fez:

while(chances < 6) { 
      
      System.out.println("digite uma letra");  
       letra = entrada.nextLine();
       if((palavra.contains(letra)) && !(letrasAcertadas.contains(letra)) ){
           // incremente pontos
           // decremente número de letras restantes
       }
       else{
           // decremente chances
           // mostre mensagem informando que usuário errou
       }

       if(numeroDeLetrasRestantes == 0)
            return;
  
}

pelo que entendi, o algoritmo funciona como uma “forca” que irá eliminando as letras que já forem acertadas.

Você precisa criar uma estrutura para armazenar as letras já acertadas, caso contrário, o usuário digita uma letra que tenha na palavra várias vezes e soma pontos.

Também, a variável “numeroDeLetrasRestantes” deve se preocupar quando uma mesma letra repete várias vezes na palavra. Então, no momento em que você obter o número de letras da palavra, você deve contar apenas uma vez a letra que repita nesta palavra. Então:

Abacaxi = 5 letras restantes.

Criado 30 de março de 2014
Ultima resposta 7 de abr. de 2014
Respostas 1
Participantes 2