Ajuda com jogo da forca

3 respostas
L

Ja fiz quase o jogo inteiro, consigo compilar normal.
Esse é o código :

import java.util.Scanner;

public class Forcaa {

  public static void main(String[] args) {
 
  mostraPalavra mp = new mostraPalavra();

  String[] palavra = {"c", "h", "a", "v", "e"};

  Scanner s = new Scanner(System.in);

  int forca = 1, vencer = 0, perder = 0, cont = 0;
  
    System.out.println("***Jogo da Forca***");
    System.out.println("");
    System.out.println("Dica: Se usa para destrancar a porta");
    System.out.println("");

    System.out.println("Digite uma letra:");

 do {
     String letra = s.nextLine();
    
      boolean resultado = false;

  for (int i = 0; i < palavra.length; i++) {
    if (palavra[i].equals(letra)) { 
        resultado = true;
         vencer++;
         break;       
      } else if (palavra[i]!=(letra)) {
        resultado = false;
        perder++;
        
      }         
    }

    if (resultado) { 
        System.out.println("Letra correta.");
        System.out.println("Digite outra letra");
      
      } else  {
        System.out.println("Letra incorreta");
        System.out.println("Tente outra vez");
      }

    if (vencer == 5) {
        mp.exibe(palavra); 
        System.out.println("");
        System.out.println("Parabens. Voce venceu.");
        System.exit(0);
      } else if (perder == 5) {
        System.out.println("Voce perdeu.");
        System.exit(0);
      }
    } while (forca == 1);
  }
}

class mostraPalavra { 

      void exibe(String[] palavra) {
 
      System.out.println("A palavra e: ");

    for (int i = 0; i <palavra.length; i++) {
       System.out.print(palavra[i]);
    }
  }
}

No jogo, quando eu digito as letras certas (c, h, a, v, e), aparece tudo normal
mas quando eu digito alguma letra errada aparece

Letra incorreta.
Tente outra vez.
Voce perdeu.

Mas isso deveria acontecer só se o usuario digitasse 5 letras incorretas
e não apenas uma, como está escrito no código (linha 53).

Se alguem puder me ajudar ficarei muito grato.
Valeu, abraço.

3 Respostas

carlinbh

Esse perder++; não era para está ai não, colocando ele nesse outro trecho aqui do seu código já resolve esse primeiro problema.

if (resultado) {   
        System.out.println("Letra correta.");  
        System.out.println("Digite outra letra");  
        
      } else  {  
    	perder++;
        System.out.println("Letra incorreta");  
        System.out.println("Tente outra vez");  
      }

Agora tem outros bugs ai como por exemplo se tu inserir uma letra que existe na palavra chave e repetir ela 5 vezes tu vence o jogo.

davidbuzatto

Porque você criou outro tópico sobre o mesmo problema?
Pq não continuou aqui: http://www.guj.com.br/java/296617-duvida-com-jogo-da-forca ?

L

Desculpe por eu ter feito outro topico.
Entao cara, valeu por me ajudar nessa parte. E quanto a repetiçao de letras eu vou arrumar ainda

Criado 29 de março de 2013
Ultima resposta 29 de mar. de 2013
Respostas 3
Participantes 3