Part 1This is the old “I’m thinking of a number between…”. When you run the program, the computer randomly generates a number. Then, the user is to guess the number. Upon guessing wrong, the program gives him/her a hint as to whether the guess is too high or too low. Once the number has been guessed, the game is over.Create a command line Java program to input, keep track of, and check user’s attempts to guess a randomly generated number. The input portion of the program will be a continuous loop, only breaking out of it when the user either guesses the correct number, or by entering -1 to signify giving up. After each guess, the user will be informed of his guess being too high, too low, or exactly correct. Upon exiting the loop, the user is given feedback of their guesses (amount guessed too low, amount guessed too high, total amount of guesses).You’ll need to generate a random number to be guessed by the user. Here are some lines of code you’ll need: import java.util.Random; // loads in the library with the code to generate random numbers Random rand = new Random(); // creates a new Random object with which to work int value = rand.nextInt(32)+1; // this is the line of code that grabs the random number itselfAfter the user is enters a guess, output a message. For example, “Your guess is larger than the random value. Next guess: “. Or, “You’ve guessed correct!” if the number guessed matches the random number the program generated. Example of how this program’s output should look after it runs:run:Guess the number I’m thinking of, from 1-32: 16Your guess is larger than the random value. Next guess: 8Your guess is larger than the random value. Next guess: 4Your guess is smaller than the random value. Next guess: 6You’ve guessed correct!Total number of guesses: 4****Smaller Guesses: 1*Larger Guesses: 2**I can tell by the look on your face that you’ve notice the asterisks. They are my poor text representation of a bar graph. Your bar graph should look just as bad as mine. If the total number of guesses is 5, then 5 asterisks should be underneath for a graphical representation. And so on with the next two statistics. Asterisks should be displayed one-by-one with a printf (not println) statement in a loop. Looping however many times it must to represent the appropriate number of guesses.Break large problems into smaller pieces!Sometimes it is useful for beginners to complete a smaller, simpler program before tackling the full project. Start with an easy program that only completes part of the project. Name your project ‘project2’ and your main class ‘GuessingGame’. Always use class, variable and project names that clearly describe what you are creating.Needed Loops: There should be (1) while loop and (3) for loops in this program, with a few if, if-else conditionals. Inside each “for loop” should be a System.out.printf(“*”); statement. But after the loop, how do you do a line-feed so your next print statement doesn’t appear on the same line as your asterisks?
Please Design FirstDividing a larger problem into smaller sub-problems is an important technique in computer programming.It is a good practice to design your software before you write the code. Here are some design tasks you should complete before you start:
Write out a list of variables you think you will need (e.g. int totalGuesses; // count of many guesses altogether scores)
Flow chart (or Pseudo code) the selection statement(s) to decide if the guess was too high, too low, or the equivalent number
Flow chart (or Pseudo code) the loop, include the check for -1 input and update of variables
In other words, have some idea about HOW you are going to solve the problem, BEFORE you try to solve the problem.Part 2 – EXTRA CREDIT – GUI VersionBe sure to complete part one, run it, test it, make sure it is perfect before you start part 2.Read the GUI programming sections at the end of chapters 1 through 4. Create a second version of the program that uses GUI Dialog boxes to input the guesses and to output the results. Same calculations, same results, much of the code may be a copy and paste from part 1, just use a GUI for the input and output of the data.I would create part 2 by adding a NEW main class java file (e.g. GuessingGameGUI) to the existing project. Do not change or delete your part 1 code, I want to see both programs. OBJECT OF THE GAME (not required):When you’ve completed this assignment, see if you can beat the game. The object of the game is to discover the algorithm you can use to never exceed 5 wrong guesses. HINT: The object of the game changes to never exceed 7 wrong guesses when you change the random number from 1-32 to 1-128. There is an algorithm in computer science you are looking for.Something to think about: