2017-03-08 2 views
-6

Ich schreibe ein Spiel, bei dem der Benutzer die zufällig generierte Zahl erraten kann. Am Ende würde es die Gesamtanzahl korrekt und die Summe dieser korrekten Zahlen zeigen. Ich kann jedoch nicht die richtige Summe der richtigen Nummer anzeigen, die der Benutzer hat. Kann mir jemand dabei helfen? Vielen Dank!Guessing Spiel Java

public static void main(String[] args) { 
    Random rng = new Random(); 
    Scanner consoleScanner = new Scanner(System.in); 
    String inputString; 
    int answer = rng.nextInt(90000) + 10000, sum, numberCorrect; 
    System.out.print("I have randomly chosen a 5-digit code for you to guess.\n" 
      + "Each time you guess, I will tell you how many digits are correct and the sum of the digits that are correct.\n" 
      + "For example, if the number is \"68420\" and you guess 12468, I will respond:\n" 
      + "Number of Digits Correct: 1\n" + "Sum of Digits Correct : 4\n" 
      + "From deduction, you will know the 4 was correct in the guess.\n\n" 
      + "Now its your turn..................................................................\n" + "answer = " 
      + answer); 
    do { 
     System.out.print("\nPlease enter a 5-digit code (your guess): "); 
     inputString = consoleScanner.nextLine(); 
     numberCorrect = 0; 
     sum = 0; 
     if (inputString.length() != 5) { 
      System.out.println("Please enter 5-digit code only."); 
      System.exit(0); 
     } 
     for (int i = 0; i < 5; i++) { 
      String answerString = String.valueOf(answer); 
      if (inputString.charAt(i) == answerString.charAt(i)) { 
       numberCorrect++; 
       char digit = answerString.charAt(i); 
       sum += digit; 
      } 
     } 
     System.out.println("Number of Digits Correct: " + numberCorrect + "\nSum of Digits Correct: " + sum); 
    } 
    while (numberCorrect < 5); 
    System.out.println("****HOORAY! You solved it. You are so smart****"); 
} 
+10

Sorry, das ist nicht, wie Stackoverflow funktioniert. Fragen der Form _ "Hier ist eine Reihe von meinem Code, bitte debuggen Sie für mich" _ sind Off-Topic. Bitte besuche [help] und lies [ask] für weitere Informationen, und lese besonders [Warum ist "Kann mir jemand helfen?" Keine wirkliche Frage?] (Http://meta.stackoverflow.com/q/284236/18157) –

+1

Ihre Ziffernvariable ist Typ char. Wenn wir also eine '0' haben, ist es eigentlich der ganzzahlige Wert von 48 (ASCII-Tabelle), den Sie in ein int umwandeln müssen. – JackVanier

Antwort

-1

Sie haben Ihre char in einen numerischen Wert zu konvertieren:

sum += Character.getNumericValue(digit); 
+0

Vielen Dank !! –