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.
últimas postagens
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.
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.
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 :).
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?