Wątek przeniesiony 2014-01-19 12:34 z Java przez bogdans.

Pobieranie hasła w programie przypominającym grę

0

Otóż jestem początkującym. Od kilku dni uczę się javy. Od wczoraj można powiedzieć, że męcze się z kodem. Po co to robię, tak oo.. dla własnej satysfakcji, zacząłem coś powoli łapać. Chodź dążę do pewnego efektu końcowego i za nic mi się nie udaję. Chce stworzyć coś w rodzaju "gry", użytkownik musi podać hasło (wtedy zrobię odwołanie do nowej klasy). Po podaniu dobrego hasła zostaną wywołane kolejne zmienne z klasy. Przedstawię moje problemy:

  1. Nie wiem jak zrobić, by po wpisaniu hasła (obojętnie za którym razem) nastąpiło przekierowanie do nowej klasy.
  2. Chce jakoś "wyszczuplić" ten kod, użyć pętli (choć nie wiem jak, dużo kombinowałem).

To mój pierwszy kod:

 
import java.util.Scanner;

public class Haslo{
  public static void main(String[] args){
         String a;
        String b = "okon";

String dostep = "Brawo! Masz dostep";
String proba = "Bledne haslo! Pozostaly Ci jeszcze trzy proby";
String klawisz = "Wpisz ponownie haslo";
String proba2 = "Pozostaly Ci jeszcze dwie proby";
        String proba3 = "Pozostala Ci ostatnia proba";
          Scanner odczyt = new Scanner(System.in);

          System.out.println("Podaj haslo: ");   
          a = odczyt.nextLine();        
                
                boolean haslo = a.equals(b);
                if (haslo){
                System.out.println(dostep);
                 

} else if (haslo==false){
System.out.println(proba);
System.out.println(klawisz);
        
} 
a = odczyt.nextLine();  
  boolean haslo2 = a.equals(b);
        if (haslo2){
                
                System.out.println(dostep);
                
                } else if (haslo2==false){
System.out.println(proba2);
System.out.println(klawisz);
}

a = odczyt.nextLine();
boolean haslo3 = a.equals(b);
if (haslo3==true){
System.out.println(dostep);

} else if(haslo3==false){
System.out.println(proba3);
System.out.println(klawisz);
}

a = odczyt.nextLine();
boolean haslo4 = a.equals(b);
if (haslo4){
System.out.println(dostep);

} else if (haslo4==false){
System.out.println("ERROR");

}

}
}

A to drugi (średnio działa, w nim chce zastosować pętle)

import java.util.Scanner;

public class Test{
  public static void main(String[] args){
         String a;
        String b = "okon";

String dostep = "Brawo! Masz dostep";
String proba = "Wpisz prawidlowe haslo";
      
          
		 Scanner odczyt = new Scanner(System.in);
 System.out.println("Podaj haslo: ");   
                 a = odczyt.nextLine(); 
                
               
			   boolean haslo = a.equals(b);
                if (haslo){
                System.out.println(dostep);
                 

} else if (haslo==false){
System.out.println(proba);
      a = odczyt.nextLine();   
} 


}
}

//dopisałem znaczniki - bogdans

2
import java.util.*;
import java.lang.*;
import java.io.*;

class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
        Scanner in = new Scanner(System.in);
        String ourPassword = "batman", userPassword;
        int i = 3;
        while(i-- > 0){
            System.out.println("Podaj hasło");
            userPassword = in.next();
            if(ourPassword.equals(userPassword))
                break;
            else
                System.out.println("Złe hasło! Zostało prób: " + i);
        }
        if(i >= 0)
            System.out.println("Dostęp.");
        else
            System.out.println("Brak dostępu.");
    }
}

http://ideone.com/fork/rYuURd

1 użytkowników online, w tym zalogowanych: 0, gości: 1