Home » A Higher-Lower Game in Python

A Higher-Lower Game in Python

Oracle Java Certification
Spring Framework Basics Video Course
Java SE 11 Developer (Upgrade) [1Z0-817]
1 Year Subscription
Java SE 11 Programmer II [1Z0-816] Practice Tests
Java SE 11 Programmer I [1Z0-815] Practice Tests

In this tutorial, we will create a simple Higher-Lower Game using Python.

The game will involve:

  • The computer randomly selecting a number between a predefined range (e.g., 1 to 100).
  • The player attempting to guess the number.
  • The program giving feedback on whether the guess is too high or too low.
  • The game continuing until the player guesses the number correctly.

Let's break the game down step by step.


Step 1: Import the Required Modules

We will need the random module to generate a random number, and we'll use basic input and print functions for user interaction.

import random

Step 2: Define the Game Logic

The main logic of the game involves:

  • Generating a random number.
  • Getting the player's guess.
  • Providing feedback on whether the guess is higher or lower than the target number.
  • Repeating the guessing process until the correct guess is made.

Code Outline:

  1. Generate a random number using random.randint().
  2. Use a while loop to repeatedly ask the player for their guess.
  3. Give hints after each incorrect guess (whether the guess is too high or too low).
  4. End the game when the correct number is guessed.

Step 3: Complete Code

Here’s the complete Python code for the Higher-Lower game:

import random

def higher_lower_game():
    # Step 1: Generate a random number between 1 and 100
    number_to_guess = random.randint(1, 100)
    attempts = 0  # Track the number of attempts

    print("Welcome to the Higher-Lower Game!")
    print("I have selected a number between 1 and 100. Can you guess it?")
    
    # Step 2: Start the guessing loop
    while True:
        try:
            # Step 3: Get the user's guess
            guess = int(input("Enter your guess: "))
            attempts += 1  # Increment the number of attempts
            
            # Step 4: Check if the guess is correct
            if guess < number_to_guess:
                print("Too low! Try again.")
            elif guess > number_to_guess:
                print("Too high! Try again.")
            else:
                print(f"Congratulations! You've guessed the number {number_to_guess} in {attempts} attempts.")
                break  # End the game when the correct guess is made
        
        except ValueError:
            print("Please enter a valid integer.")  # Handle non-integer input

# Step 5: Run the game
higher_lower_game()

Step-by-Step Explanation:

  1. random.randint(1, 100):
    • This generates a random number between 1 and 100, which the player must guess.
  2. while True::
    • The game runs in an infinite loop until the player guesses the correct number. This ensures that the guessing process continues until the player wins.
  3. Player's Guess Input:
    • int(input(“Enter your guess: “)): This prompts the player to input their guess. The input is converted to an integer.
    • Error handling: The try-except block ensures that if the player enters something other than a number (e.g., a string), the program will catch the error and prompt the user to enter a valid integer.
  4. Feedback:
    • If the player's guess is too low (guess < number_to_guess), the program prints “Too low! Try again.”
    • If the guess is too high (guess > number_to_guess), the program prints “Too high! Try again.”
    • When the player guesses correctly, the program prints a congratulatory message, including the number of attempts it took.
  5. Attempts Counter:
    • The variable attempts is used to keep track of how many guesses the player has made.
  6. End of the Game:
    • The loop terminates when the player guesses the correct number, and the break statement is used to exit the loop.

Example Run

Python 3.7.9 (bundled)
>>> %Run hilo.py
Welcome to the Higher-Lower Game!
I have selected a number between 1 and 100. Can you guess it?
Enter your guess: 50
Too low! Try again.
Enter your guess: 75
Too high! Try again.
Enter your guess: 63
Too low! Try again.
Enter your guess: 69
Too high! Try again.
Enter your guess: 66
Too low! Try again.
Enter your guess: 67
Congratulations! You've guessed the number 67 in 6 attempts.

Customizing the Game

Here are a few ideas to enhance or customize the Higher-Lower game:

  • Change the range: You can modify the range of numbers (e.g., between 1 and 1000) to make the game harder or easier.
    number_to_guess = random.randint(1, 1000)
    
  • Limit the number of attempts: You could limit the number of guesses allowed to increase difficulty.
    max_attempts = 10
    while attempts < max_attempts:
        # Game logic
    
  • Provide hints: After a certain number of incorrect guesses, provide additional hints, such as whether the number is even or odd.

Conclusion

In this tutorial, we built a Higher-Lower Game in Python using basic concepts like:

  • Random number generation (random.randint()).
  • Loops (while True).
  • Conditional statements (if-elif-else).
  • Exception handling (try-except).

 

You may also like

Leave a Comment

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More