Gå til innhold

Anbefalte innlegg

Oppgaven var først å lage en metode getInt som ikke skal returnere før et heltall er skrevet inn. Jeg testet metoden og den fungerte fint. Neste oppgave var så å "implementere" denne i en oppgave fra tidligere. Jeg klippet og limte inn, men jeg får kun error?

 

Slik skal et spill egentlig se ut:

 

Guess number: 5
Higher!
Guess number: 50
Lower!
Guess number: 23
Higher!
........
........
........

 

Slik ser det ut; den tar imot et tall, sjekker om det skal være lavere eller høyere, dermed skriver den ut "Guess number:" 2 ganger og så en error.

 

Guess number: 5
Higher!
Guess number: Guess number: Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Unknown Source)
at forelesning.Oppgave03.getInt(Oppgave03.java:65)
at forelesning.Oppgave03.main(Oppgave03.java:21)

 

package forelesning;


import java.util.*;

public class Oppgave03 {



public static void main(String[] args) {
 Scanner in = new Scanner(System.in);

 // Declare necessary varibales
 int numGames = 0, totGuesses = 0;
 boolean newGame = true;

 while(newGame) {
  // Declare necessary varibales
  int correct = (int) (Math.random() * 100) + 1;
  int guess = 0, numGuesses = 0;

  // Play game until correct number is guessed
  while(guess != correct) {
guess = getInt("Guess number: ");
if(correct < guess) {
 System.out.println("Lower!");
} else if(correct > guess) {
 System.out.println("Higher!");
}
numGuesses++;
  }

  // Game finishes, output results
  System.out.println();
  System.out.println("Congratulations, you guessed the correct number!");
  System.out.println("Number of guesses: " + numGuesses);
  System.out.println();
  System.out.println("------------------------------------------------");
  System.out.println();

  // Keep playing?
  System.out.print("Play again? (y): ");
  in.nextLine();
  if(!in.nextLine().equalsIgnoreCase("y")) newGame = false;
  numGames++;
  totGuesses += numGuesses;
  System.out.println();
  System.out.println("------------------------------------------------");
 }
 in.close();

 // Output stats after quit
 System.out.println();
 System.out.println("Game finished!");
 System.out.println();
 System.out.println("Statistics");
 System.out.println("Games played: " + numGames);
 System.out.println("Total guesses: " + totGuesses);
 System.out.println("Average number of guesses: " + (double) totGuesses / numGames);
}


public static int getInt(String message) {
 Scanner in2 = new Scanner(System.in);
 System.out.print(message);
 while(!in2.hasNextInt()) {
  System.out.print(message);
  in2.nextLine();
 }
 int n = in2.nextInt();
 in2.close();

 return n;
}


}

Lenke til kommentar
Videoannonse
Annonse

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...