Build a number guessing game in Ruby

In this article I will show you how to create a simple number guessing game in Ruby. The game will be a command line application that will ask the user to guess a number between 0 to 9. If the user guesses correctly, the game will print a message and exit. If the user guesses incorrectly, the game will print a message and ask the user to guess again.

Prerequisites

You will need to have Ruby installed on your computer. If you don’t have Ruby installed, you can download it from ruby-lang.org.

Getting started

To get started, create a new file called guessing_game.rb and open it in your favorite text editor. We will start by printing a welcome message to the user.

puts "Welcome to the guessing game!"
Enter fullscreen mode

Exit fullscreen mode

Next, we will generate a random number between 0 to 9 and store it in a variable called secret_num.

secret_num = rand(0 .. 9)
Enter fullscreen mode

Exit fullscreen mode

The rand method will generate a random number between 0 to 9. The .. operator will create a range from 0 to 9.

Next, we will create a initialize the following variables:

  • guess – this will store the user’s guess
  • guess_count – this will store the number of guesses the user has made
  • guess_limit – this will store the maximum number of guesses the user can make
  • out_of_guesses – this will store a boolean value indicating if the user has reached the maximum number of guesses
guess = nil
guess_count = 0
guess_limit = 3
out_of_guesses = false
Enter fullscreen mode

Exit fullscreen mode

Next, we will create a while loop that will run as long as the user has not reached the maximum number of guesses and the user has not guessed the secret number.

while guess != secret_num and !out_of_guesses
    # if guess count is less than guess limit then increment guess count
    if guess_count < guess_limit
        puts "Enter your guessed number"
        guess = gets.chomp.to_i
        guess_count += 1;
    else 
        # if guess count is greater than guess limit then set out_of_guesses to true
        out_of_guesses = true
        break
    end
end
Enter fullscreen mode

Exit fullscreen mode

The gets method will read a line from the user’s input. The chomp method will remove the newline character from the end of the string. The to_i method will convert the string to an integer.

The if statement will check if the user has reached the maximum number of guesses. If the user has reached the maximum number of guesses, the out_of_guesses variable will be set to true and the while loop will exit.

Next, we will check if the user has reached the maximum number of guesses. If the user has reached the maximum number of guesses, we will print a message to the user and exit the game. If the user has not reached the maximum number of guesses, we will print a message to the user and ask them to guess again.

if out_of_guesses
    puts "You lose!"
    puts "You have reached the maximum number of guesses."
    puts "The secret number was #secret_num"
else
    puts "Congratulations! You won!"
    puts "You guessed the secret number #secret_num and you did it in #guess_count guesses."
end
Enter fullscreen mode

Exit fullscreen mode

Finally, your code should look like this:

puts "Welcome to the number guessing game!"

secret_num = rand(0 .. 9)
guess = nil
guess_count = 0
guess_limit = 3
out_of_guesses = false

while guess != secret_num and !out_of_guesses
    # if guess count is less than guess limit then increment guess count
    if guess_count < guess_limit
        puts "Enter your guessed number"
        guess = gets.chomp.to_i
        guess_count += 1;
    else 
        # if guess count is greater than guess limit then set out_of_guesses to true
        out_of_guesses = true
        break
    end
end

if out_of_guesses
    puts "You lose!"
    puts "You have reached the maximum number of guesses."
    puts "The secret number was #secret_num"
else
    puts "Congratulations! You won!"
    puts "You guessed the secret number #secret_num and you did it in #guess_count guesses."
end
Enter fullscreen mode

Exit fullscreen mode

To run the game, open a terminal and navigate to the directory where you saved the guessing_game.rb file. Then run the following command:

ruby guessing_game.rb
Enter fullscreen mode

Exit fullscreen mode

Conclusion

In this article, we created a simple number guessing game in Ruby. The game will ask the user to guess a number between 0 to 9. If the user guesses correctly, the game will print a message and exit. If the user guesses incorrectly, the game will print a message and ask the user to guess again.

Follow me

If you enjoyed this article, please follow me on