Você já deve ter adivinhado o conteúdo deste artigo. E você provavelmente deve estar familiarizado com 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 fica entre o intervalo de 1 para 100. É isso.
O jogo é tão simples?
Sim é.
Mas há uma coisa que devemos 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 ir.
Podemos torná-lo mais emocionante adicionando recursos extras, como o número máximo de chances de adivinhar, aumentando o alcance, definindo um cronômetro, etc.,
Criar o jogo de trabalho básico é 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 vamos passar 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 ajudará você a se codificar ou 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
). - Inicie 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 para
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 após parabenizar o usuário.
- Se o número atual adivinhado 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 atual adivinhado for maior que o número gerado aleatoriamente, envie 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 teve para adivinhar.
Você teria o código em mente depois de ver o algoritmo. Não se preocupe, mesmo que 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 agregar 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 ajustá-lo e escrevê-lo à sua 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
__init__
método para que possa ser usado em todos os métodos de classe. - Podemos alterá-lo facilmente em um local que muda no 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.
Todos os pontos discutidos acima estão relacionados à escrita de código limpo. Devemos tentar escrever o código limpo que você entende mesmo depois de alguns x anos.
A saída de amostra do jogo é a seguinte.
$ 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!
Eu suponho que você tenha 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, o usuário perde.
Como podemos adicioná-lo?
É um processo simples de duas etapas. Vejamos 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 fora das chances dadas.
O seguinte código adicional completará o recurso.
- Adicione o seguinte código dentro do
__init__
método.
self.MAX_CHANCES = 10
- Adicione a seguinte condição antes que o usuário insira o próximo palpite.
if chances == self.MAX_CHANCES:
print("-> Phew! You lost the game. You are out of chances")
Agora, experimente 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. Ainda não é o fim. Você pode adicionar mais alguns recursos para torná-lo mais atraente para os usuários. É a sua hora agora. Vá em frente e deixe-o mais bonito :).
Conclusão
Criamos um jogo simples de adivinhação de números. Agora, é 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 infantis.
Em seguida, explore Python IDE e compilador online para executar o código Python.
Codificação feliz
Se você não se cansa de jogos de palavras virais, aqui está como fazer melhor no Wordle .