Como criar um jogo de adivinhação de números em Python?

Você já deve ter adivinhado o conteúdo deste artigo. E você provavelmente deve estar familiarizado com a adivinhação de números e procurando uma maneira de construí-lo usando Python.

Vamos aprender a criar um jogo de adivinhação de números do zero.

Jogo de adivinhação de números

O jogo é simples. O usuário tem que adivinhar o número gerado aleatoriamente que está entre o intervalo de 1 a 100. É isso.

O jogo é tão simples?

Sim é.

Mas, há uma coisa que temos que fornecer aos usuários para adivinhar o número. Isso é dicas. Temos que fornecer uma mensagem ao usuário dizendo que o número atual adivinhado é menor que o número correto ou o número atual adivinhado é maior que o número correto. Para que os usuários saibam em que direção devem seguir.

Podemos torná-lo mais empolgante adicionando recursos extras, como número máximo de chances de adivinhar, aumentando o alcance, definindo um cronômetro, etc.,

Criar o jogo básico de trabalho é obrigatório. Depois disso, podemos adicionar mais recursos conforme discutido. Então, vamos criar a versão básica do jogo nesta seção. E então passaremos para adicionar novos recursos.

Eu quero que você tente criar o jogo sem copiar cegamente o código. Então, vou explicar o algoritmo primeiro. Isso o ajudará a codificar você mesmo ou a entender o código rapidamente.

Vamos ver o algoritmo para criar o jogo de adivinhação de números.

Algoritmo

Certifique-se de entender o algoritmo antes de passar para a parte de codificação.

  • Defina o intervalo dos números. Por padrão, é 1-100, mas você pode alterá-lo como preferir.
  • Gere um número inteiro aleatório do intervalo acima (1-100).
  • Comece o jogo exibindo ao usuário uma mensagem dizendo “Adivinhe o número de X a Y”. Você pode atualizar a mensagem como desejar.
  • Inicialize uma variável com 0 para contar o número total de chances que o usuário teve para adivinhar o número corretamente.
  • Escreva um loop infinito.
    • Peça ao usuário para adivinhar o número.
    • Se o número atual adivinhado for igual ao número gerado aleatoriamente, parabenize o usuário com uma mensagem como desejar. Um exemplo seria “-> Viva! Você conseguiu em 5 passos!”.
    • Quebre o loop depois de parabenizar o usuário.
    • Se o número estimado atual for menor que o número gerado aleatoriamente, envie uma mensagem ao usuário dizendo “-> Seu número é menor que o número aleatório” ou uma mensagem personalizada com o mesmo significado.
    • Se o número adivinhado atual for maior que o número gerado aleatoriamente, dê uma mensagem ao usuário dizendo “-> Seu número é maior que o número aleatório” ou um costume com o mesmo significado.
    • Por fim, incremente as chances que o usuário aproveitou para adivinhar.
  Como Vender Seu Mac

Você teria código em sua mente depois de ver o algoritmo. Não se preocupe, mesmo que você não obtenha o código completo. Mas, certifique-se de entender o algoritmo acima.

É hora de colocar nossas mãos para trabalhar com código. Entre no código sem mais delongas.

Código

Você tentou escrever o código?

Se sim e completou. É ótimo. Confira o código e entenda-o para adicionar mais perspectivas ao seu conhecimento.

Não se preocupe, mesmo que você não tenha escrito o código. Veja o código abaixo e entenda. Tente ajustar e escrevê-lo em sua própria maneira para melhor compreensão.

Então, vamos ver o código.

import random


class NumberGuessingGame:

    def __init__(self):
        ## define the range
        self.LOWER = 1
        self.HIGHER = 100

    ## method to generate the random number
    def get_random_number(self):
        return random.randint(self.LOWER, self.HIGHER)

    ## game start method
    def start(self):
        ## generating the random number
        random_number = self.get_random_number()

        print(
            f"Guess the randomly generated number from {self.LOWER} to {self.HIGHER}")

        ## heart of the game
        chances = 0
        while True:
            user_number = int(input("Enter the guessed number: "))
            if user_number == random_number:
                print(
                    f"-> Hurray! You got it in {chances + 1} step{'s' if chances > 1 else ''}!")
                break
            elif user_number < random_number:
                print("-> Your number is less than the random number")
            else:
                print("-> Your number is greater than the random number")
            chances += 1

## instantiating and starting the game
numberGuessingGame = NumberGuessingGame()
numberGuessingGame.start()

Há algumas coisas que você entende do código.

  • O intervalo é definido dentro do método __init__ para que possa ser usado nos métodos de classe.
  • Podemos alterá-lo facilmente em um local que muda em todo o aplicativo de acordo.
  • Existe um método separado para gerar o número aleatório que segue o princípio de “separar as preocupações”. Aqui, nosso método tem pouco código, mas pode aumentar no futuro.
  • Por fim, usamos a classe para que todos os métodos relacionados ao jogo residam dentro dela. E pode ser facilmente reutilizado em alguns outros aplicativos.
  Soluções locais e baseadas em nuvem

Todos os pontos discutidos acima estão relacionados à escrita de código limpo. Devemos tentar escrever o código limpo que você entenda mesmo depois de alguns X anos.

A saída de amostra do jogo tem a seguinte aparência.

$ python number_guessing_game.py 
Guess the randomly generated number from 1 to 100
Enter the guessed number: 50
-> Your number is less than the random number
Enter the guessed number: 75
-> Your number is less than the random number
Enter the guessed number: 90
-> Your number is greater than the random number
Enter the guessed number: 85
-> Your number is greater than the random number
Enter the guessed number: 80
-> Hurray! You got it in 5 steps!

Suponho que você tenha o Python instalado para tentar o código acima.

Recurso Extra

Vamos adicionar o número máximo de chances que um usuário consegue adivinhar o número. Se o usuário não adivinhar o número dentro do número de chances, ele perde.

Como adicionamos?

É um processo simples de duas etapas. Vamos ver os passos.

  • Defina o número máximo de chances que o usuário tem de adivinhar o número.
  • Verifique se o usuário tem chances ou não antes de solicitar a entrada. E termine o jogo se o usuário estiver sem chances.

O código adicional a seguir completará o recurso.

  • Adicione o seguinte código dentro do método __init__.
self.MAX_CHANCES = 10
  • Adicione a seguinte condição antes que o usuário insira a próxima estimativa.
if chances == self.MAX_CHANCES:
                print("-> Phew! You lost the game. You are out of chances")

Agora, tente o jogo sem adivinhar o número correto. Você deve ver uma saída semelhante à seguinte.

$ python number_guessing_game.py 
Guess the randomly generated number from 1 to 100. You have 10 chances to guess.
Enter the guessed number: 1
-> Your number is less than the random number
Enter the guessed number: 2
-> Your number is less than the random number
Enter the guessed number: 3
-> Your number is less than the random number
Enter the guessed number: 4
-> Your number is less than the random number
Enter the guessed number: 5
-> Your number is less than the random number
Enter the guessed number: 6
-> Your number is less than the random number
Enter the guessed number: 7
-> Your number is less than the random number
Enter the guessed number: 8
-> Your number is less than the random number
Enter the guessed number: 9
-> Your number is less than the random number
Enter the guessed number: 10
-> Your number is less than the random number
-> Phew! You lost the game. You are out of chances

Viva! adicionamos um recurso extra ao nosso jogo. Não é o fim embora. Você pode adicionar mais alguns recursos para torná-lo mais atraente para os usuários. É a sua vez agora. Vá em frente e torná-lo mais bonito :).

  SEO para pequenas empresas: um breve guia

Conclusão

Criamos um jogo simples de adivinhação de números. Agora, é a sua vez de pensar nos jogos que você jogava quando era jovem. Faça-os usando linguagem de programação e compartilhe com seus amigos. Podemos digitalizar a maioria dos nossos jogos de infância.

Em seguida, explore o Python IDE e o compilador online para executar o código Python.

Boa codificação 🙂

Se você não se cansa de jogos de palavras virais, veja como se sair melhor no Wordle.

Gostou de ler o artigo? Que tal compartilhar com o mundo?