dúvida com jogo da forca

1 resposta
L

Minha dúvida está neste código

import java.util.Scanner;

public class Forca {

  public static void main(String[] args) {

                    Scanner s = new Scanner(System.in);
 
                    Traços T = new Traços();

                    int forca = 1, cont = 0, perder = 0, vencer = 0;
                     
                    String[] traços = {"_ ", "_ ", "_ ", "_ "};        
                    
                    System.out.println("***Jogo da forca***");
                    System.out.println("Digite uma letra");
 
                             T.exibe(traços);

                    String a = s.nextLine();

                    String letrasDigitadas[] = new String[26];                 
 
                    String[] palavra = {"m", "a", "t", "o"};
       
                    boolean resultado = false;

                    for (int i = 0; i < palavra.length; i++) {
 
                         if (palavra[i].equals(a)) {
                             resultado = true;
                                break;                           
                          } else {
                             resultado = false;
                               
                          }
                        }
                      
                 do { if (resultado) {
                            System.out.println("Letra certa, digite outra");
                               vencer++;
                                        
                           } else {          
                            System.out.println("Letra errada, tente outra");
                               cont++;    
                           } 
                      
                      if (vencer == 5) {
                           System.out.println("Voce venceu");
                              System.exit(0);
                        } else if (perder == 5) {
                           System.out.println("Voce perdeu");
                              System.exit(0);
                        }  
                     } while (vencer < 5);   
                      
                    



       class Traços {
   
                       void exibe(String[] traços) { 

                         for(int i = 0; i < traços.length; i++) {
 
                            System.out.print(traços[i]);
                       
                      }
                     
                            System.out.println("");        
           
                   } 
                } 
             }        
          }

O meu do/while que começa na linha 39 faz que quando
eu digite uma letra certa, apareça

Letre certa, digite outra
Letre certa, digite outra
Letre certa, digite outra
Letre certa, digite outra
Você venceu

Não to entendendo isso.
Veleu, abraço!

1 Resposta

AndreSorge

Boa Tarde lucasstoffel!!!

é o seguinte, encontrei alguns errinhos no seu código…

Não se utiliza “ç” para programar…

outra coisa, quando eu copiei o seu código, a classe “Traço” está declarada incorretamente dentro da classe “Forca”…mas esse não é o ponto…

O que acontece é que a estrutura

do{
}while();

é uma estrutura de repetição…que obviamente irá repetir o que está dentro da clausula do{} enquanto a clausula where() for atendida…

o que acontece é que não tem nada que faça parar momentaneamente o loop

Verifique o que quer fazer… o que você pode fazer é o seguinte…

Digite uma letrar, verificar se a letra é compatível, se for faça uma ação, se não, faça outra, ao final disso, verificar se é para continuar pedindo letras ou terminar o loop

entendeu?

Criado 27 de março de 2013
Ultima resposta 28 de mar. de 2013
Respostas 1
Participantes 2