title: Guess the secret number java
body: <pre><code>package edu.blastermind.model;
  
  import java.util.Random;
  
  /**
   * A NumberGuessingGame represents the rules of a simple "guess the number" type game.
   * 
   * @author 
   *
   */
  public class GuessTheNumberGame {
  
      private int highest;
      private int secret;
  
      /**
       * Creates a new NumberGuessingGame with a secret number between 0 and highest.
       * 
       * @param highest the highest possible number for this game. Must be &gt; 0.
       */
      public GuessTheNumberGame(int highest) {
  
          // TODO 1: perform a precondition check on the parameter highest
          if (highest &lt;= 0) {
              throw new IllegalArgumentException
              ("highest number must be at least 1");
          }
  
          this.highest = highest;
  
          Random rng = new Random();
  
          this.secret = rng.nextInt(highest + 1);
      }
  
      /**
       * Checks to see if we've guessed correctly.
       * 
       * @param guess our guess (must be between 0 and getHighest())
       * @return true if the guess was correct, false otherwise
       */
      public boolean isGuessCorrect(int guess) {
  
          // TODO 2: perform a precondition check on the variable guess
          if (guess &gt; this.highest || guess &lt; 0) {
              throw new IllegalArgumentException
              ("Guess must be between 1 and 100");
          }
  
          return this.secret == guess;
      }
  
      /**
       * Checks to see if our guess is higher than the secret.
       * 
       * @param guess our guess (must be between 0 and getHighest())
       * @return true if our guess is higher than the secret, false otherwise
       */
      public boolean isGuessHigher(int guess) {
  
          // TODO 3: perform a precondition check on the variable guess
          if (guess &gt; this.highest || guess &lt; 0) {
              throw new IllegalArgumentException
              ("Guess must be between 1 and 100");
          }
  
          return this.secret &lt; guess;
      }
  
      /**
       * Returns the highest value in the range of valid guesses.
       * 
       * @return the highest value in the range of valid guesses
       */
      public int getHighest() {
          return this.highest;
      }
  }
  
  package edu.blastermind.controllers;
  
  import java.util.Scanner;
  
  import edu.westga.blastermind.model.GuessTheNumberGame;
  
  public class GuessTheNumber {
  
      public static void main(String[] args) {
  
          GuessTheNumberGame game = new GuessTheNumberGame(100);
          int turns = 1;
  
          Scanner kb = new Scanner(System.in);
  
          System.out.println("Guess a nummber between 0 and 100");
          int guess = kb.nextInt();
  
          // TODO 4: loop as long as the guess is not correct
          while (!game.isGuessCorrect(guess)) {
              guess++;
          if (game.isGuessHigher(guess)){
              System.out.println("You guessed too high!");
              turns++;
          }
              else if (!game.isGuessCorrect(guess)){
                  System.out.println("You guessed too low!");
              }
              int GuessTheNumber = kb.nextInt();
          }
              turns++;
  
          // TODO 5: in the loop, check guesses and give hints
  
          System.out.printf("You guessed the number in %d turns\n", turns);
      }
  }
  </code></pre>
  
  <p>Hey everyone> I am writing a guess the secret number program in java and I am having some problems.  I keep getting that my guess is too high when I run the program the first time and after I terminate the program and run it again it says my guess is too low.  In the while loop it is suppose to loop as long as the guess is the wrong number which I believe it is doing but I am obviously doing something wrong.  Any help is appreciated, thanks in advance.</p>