import java.util.*;

public class SimpleGuess {

    public static final int LOW = 1;
    public static final int HIGH = 100;

    public static void playGame() {
        Scanner scan = new Scanner( System.in );

        System.out.println( "Let's Play a Guessing Game!" );

	int numToGuess = 0, guessesThisRound = 0;
        String answer;

	System.out.println( "I have number between " + LOW + " and " + HIGH +  "! Guess My Number!" );
        do {

	    System.out.println();
            numToGuess = randomNumber( LOW, HIGH );

	    guessesThisRound = playRound( scan, numToGuess );
	    System.out.print( "\nYou guessed it in " + guessesThisRound + " guess" );
            if ( guessesThisRound > 1 )
                System.out.print("es");
            System.out.print("!! ");

	    if (guessesThisRound < 10)
               System.out.println("WOW, either you are insightful or got really lucky!" );
	    else if ( guessesThisRound == 10 )
               System.out.println("Aha! 10th time lucky!" );
	    else
               System.out.println("Really, you can do better than " + guessesThisRound + " guesses!" );


	    System.out.print( "\n\nI have number between " + LOW + " and " + HIGH +  "! Want to guess it (Y/N)? " );
	    answer = scan.next();

	} while ( answer.equals("Y") );

    }

    public static int playRound( Scanner scan, int numToGuess ) {

	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);
    }

    public static int randomNumber(int low, int high) {
      Random random = new Random();
      int randomNum = random.nextInt(high) + low;

      return(randomNum);
   }

    public static void main( String[] args ) {

       playGame();

    } // main
    
} // class
