Criando um jogo da adivinhação em Python: aprendendo lógica de programação
Projetos simples são uma das melhores formas de aprender programação.
Mesmo aplicações pequenas ajudam bastante no entendimento de:
- lógica;
- estruturas condicionais;
- loops;
- entrada e saída de dados;
- organização de código.
Neste tutorial vamos criar um jogo da adivinhação utilizando Python.
O objetivo é desenvolver uma aplicação simples onde o jogador tenta descobrir um número aleatório gerado pelo sistema.
O que vamos aprender?
Durante o projeto vamos explorar conceitos importantes como:
- variáveis;
- funções;
- condicionais;
- loops;
- números aleatórios;
- tratamento básico de entrada.
Como funciona o jogo?
O sistema irá:
- gerar um número aleatório;
- pedir tentativas ao jogador;
- informar se o número é maior ou menor;
- encerrar quando o jogador acertar.
Fluxo do jogo
flowchart TD
Inicio[Inicio]
Numero[Gerar Numero Aleatorio]
Tentativa[Receber Tentativa]
Comparar[Comparar Valores]
Acertou{Acertou?}
Fim[Fim]
Inicio --> Numero
Numero --> Tentativa
Tentativa --> Comparar
Comparar --> Acertou
Acertou -->|Sim| Fim
Acertou -->|Nao| Tentativa
Instalando o Python
Antes de começar, é necessário ter o Python instalado.
Verificando instalação
python --version
Criando o arquivo do jogo
Crie um arquivo chamado:
jogo.py
Importando bibliotecas
Vamos utilizar o módulo random para gerar números aleatórios.
Exemplo
import random
Gerando um número aleatório
Agora podemos gerar um número entre 1 e 100.
Exemplo
numero_secreto = random.randint(1, 100)
O que é randint?
A função randint() gera um número inteiro aleatório dentro de um intervalo.
Estrutura
random.randint(inicio, fim)
Recebendo entrada do usuário
Agora precisamos permitir que o jogador faça tentativas.
Exemplo
tentativa = input('Digite um número: ')
Convertendo valores
A função input() retorna texto.
Por isso, precisamos converter para inteiro.
Exemplo
tentativa = int(input('Digite um número: '))
Estruturas condicionais
Agora precisamos comparar a tentativa com o número secreto.
Exemplo
if tentativa == numero_secreto:
print('Você acertou!')
Comparando valores
Também podemos informar se o número é maior ou menor.
Exemplo
if tentativa > numero_secreto:
print('O número é menor')
else:
print('O número é maior')
Fluxo de comparação
flowchart TD
Tentativa[Tentativa]
Maior{Maior?}
Menor[Numero Menor]
MaiorNumero[Numero Maior]
Tentativa --> Maior
Maior -->|Sim| Menor
Maior -->|Nao| MaiorNumero
Loops
Precisamos repetir as tentativas até o jogador acertar.
Para isso utilizamos loops.
Exemplo com while
while tentativa != numero_secreto:
print('Tente novamente')
Estrutura completa do loop
while tentativa != numero_secreto:
tentativa = int(input('Digite um número: '))
Código completo
Exemplo funcional
import random
numero_secreto = random.randint(1, 100)
tentativa = 0
while tentativa != numero_secreto:
tentativa = int(input('Digite um número: '))
if tentativa == numero_secreto:
print('Você acertou!')
elif tentativa > numero_secreto:
print('O número é menor')
else:
print('O número é maior')
Executando o jogo
Comando
python jogo.py
Melhorando o jogo
Depois da versão inicial, podemos adicionar novas funcionalidades.
Exemplos
- níveis de dificuldade;
- limite de tentativas;
- pontuação;
- interface gráfica;
- sons;
- multiplayer.
Adicionando dificuldade
Exemplo
nivel = input('Escolha: fácil, médio ou difícil: ')
Limitando tentativas
for i in range(5):
print('Tentativa')
Trabalhando com funções
Uma boa prática é separar responsabilidades utilizando funções.
Exemplo
def jogar():
print('Iniciando jogo')
Organização do código
flowchart LR
Inicio[Inicio]
Funcoes[Funcoes]
Regras[Regras do Jogo]
Resultado[Resultado]
Inicio --> Funcoes
Funcoes --> Regras
Regras --> Resultado
Tratando erros
Usuários podem digitar valores inválidos.
Exemplo
try:
tentativa = int(input('Digite um número: '))
except:
print('Valor inválido')
Conceitos importantes aprendidos
Mesmo um projeto simples ajuda bastante no aprendizado de:
- lógica de programação;
- estruturas condicionais;
- loops;
- funções;
- entrada e saída de dados;
- organização de código.
Jogos simples e aprendizado
Projetos pequenos são extremamente importantes para iniciantes.
Eles ajudam a desenvolver:
- raciocínio lógico;
- resolução de problemas;
- entendimento de fluxo;
- prática de programação.
Além disso, jogos tornam o aprendizado mais divertido e interativo.
Possíveis evoluções
Depois da versão inicial, várias melhorias podem ser adicionadas.
Algumas ideias
- interface gráfica com Tkinter;
- ranking de jogadores;
- sistema de pontuação;
- modo multiplayer;
- salvamento de partidas.
Conclusão
Criar um jogo da adivinhação é uma ótima forma de começar a aprender programação.
Mesmo sendo um projeto simples, ele ajuda a compreender conceitos extremamente importantes relacionados a:
- lógica;
- loops;
- condicionais;
- funções;
- interação com usuário.
Além disso, pequenos jogos ajudam bastante no desenvolvimento de raciocínio computacional.
Com o tempo, projetos simples como esse podem evoluir para aplicações muito maiores e mais complexas.