import java.util.*; public class GuessMyNumber { // using this array of numbers to test out the game private static final int[] randomNumbers = {50, 75, 66, 33, 28, 54, 98, 56, 13, 47, 86, 92, 4, 18}; private static int randomIndex = 0; public static final int MIN = 1; public static final int MAX = 100; public static final int MAX_ROUNDS = 3; private static int LOWEST_NUMBER = -1; private static int HIGHEST_NUMBER = -1; private int[] numToGuess; private int[] guesses; private int numRounds; public GuessMyNumber() { this( MAX_ROUNDS ); } public GuessMyNumber( int numRounds ) { if (numRounds <= 0 ) throw new IllegalArgumentException(); this.numRounds = numRounds; numToGuess = new int[numRounds]; guesses = new int[numRounds]; } public void playGame() { Scanner scan = new Scanner( System.in ); System.out.println( "\nIn this game, you will be playing " + numRounds + " rounds!" ); int round = 1; int guessesThisRound = 0; do { numToGuess[round-1] = randomNumber( MIN, MAX ); guessesThisRound = playRound( scan, numToGuess[round-1], round ); System.out.print( "You guessed it in " + guessesThisRound + " guess" ); if ( guessesThisRound > 1 ) System.out.print("es"); System.out.println("!!"); if ( HIGHEST_NUMBER == -1 && LOWEST_NUMBER == -1 ) { HIGHEST_NUMBER = guessesThisRound; LOWEST_NUMBER = guessesThisRound; } else { if ( guessesThisRound > HIGHEST_NUMBER ) HIGHEST_NUMBER = guessesThisRound; if ( guessesThisRound < LOWEST_NUMBER ) LOWEST_NUMBER = guessesThisRound; } guesses[round-1] = guessesThisRound; round++; } while ( round <= numRounds ); System.out.println( Arrays.toString(numToGuess) ); System.out.println( Arrays.toString(guesses) ); // scan.close(); } int playRound( Scanner scan, int numToGuess, int round ) { System.out.println( "Get ready to play round " + round + "!" ); boolean notGuessed = true; int numGuesses = 0; do { numGuesses++; System.out.print( "Enter your guess: " ); int guess = scan.nextInt(); if ( guess < numToGuess ) { System.out.println( "Too Low!" ); } else if ( guess > numToGuess ) { System.out.println( "Too high" ); } else { System.out.print( "got it! " ); notGuessed = false; } } while( notGuessed ); return(numGuesses); } private static int randomNumber(int min, int max) { return( randomNumbers[randomIndex++]); } public static void main( String[] args ) { int round = 1; GuessMyNumber game = new GuessMyNumber(); game.playGame(); game = new GuessMyNumber(2); game.playGame(); game = new GuessMyNumber(1); game.playGame(); System.out.println( "The least number of guesses was " + LOWEST_NUMBER + " and the greatest number of guesses was " + HIGHEST_NUMBER ); } // main } // class