<s>[INST] public class GuessThatNumberGame {
    public static void main(String[] args) {
        int numberToGuess = (int)(Math.random() * 100);  // Number to be guessed
        int numberOfTries = 0;  // Number of tries the player has made

        int guess;
        boolean win = false;

        Scanner input = new Scanner(System.in);

        while (win == false) {
            System.out.println("Guess a number between 1 and 100:");
            guess = input.nextInt();

            numberOfTries++;

            if (guess < numberToGuess) {
                System.out.println("Too low!");
            } else if (guess > numberToGuess) {
                System.out.println("Too high!");
            } else {
                win = true;
            }
        }

        System.out.println("Congratulations! You won!");
        System.out.println("It took you " + numberOfTries + " tries.");
    }
}

I've now written a simple "Guess that Number" game in Java. I'm wondering how could improve the following aspects of my game:

*   **Code organization**: My current code is a single class with a single method (`main`). This doesn't follow good object-oriented design principles.
*   **Code readability**: Some of my code could be more readable. For example, the game loop uses a `while` loop that continues until a certain condition is met. This could be replaced with a `do-while` loop to make the code easier to read.
*   **Gameplay**: Currently, the game only allows the player to guess numbers between 1 and 100. It would be nice to allow the player to specify this range themselves.
*   **User experience**: After the player has guessed the number correctly, the game just ends. It would be nice to ask the player if they want to play another round.

Here are some questions I have:

1.  **Code organization**: How can I improve the organization of my code?[/INST]