Projeto Prático
Simulador de Bichinho Virtual
Desenvolva um bichinho virtual em Python no terminal salvando dados e usando Orientação a Objetos.
- Nível
- médio
- Categoria
- Programação
- Tecnologias
- Python
Sobre o projeto
Crie um simulador completo de Bichinho Virtual que roda no terminal! Você vai cuidar das necessidades do seu pet (fome, energia, felicidade), realizar ações diárias e garantir que o estado dele seja salvo em arquivo para continuar jogando depois.
O que você vai praticar
- Orientação a Objetos: Criar a classe
Petcom atributos de estado e métodos de ação (alimentar, brincar, dormir). - Dunder Methods: Implementar
__init__para inicialização,__str__para exibir o status do pet formatado e__len__para representar a idade ou nível de satisfação. - Manipulação Avançada de Strings: Formatar relatórios e barras de status usando f-strings,
strip(),join()ereplace(). - Manipulação de Arquivos: Gravar e ler o histórico/estado do pet em arquivos
.txtusando gerenciadores de contexto (with). - Tratamento de Exceções: Validar entradas do usuário no terminal e tratar erros na leitura de arquivos com blocos
try/except/finally. - Comprehensions: Processar rapidamente listas de itens do inventário e relatórios de atividades.
- Módulos Padrão: Utilizar
datetimepara registrar data/hora das ações,ospara manipular arquivos erandompara eventos surpresa. - Ambientes Virtuais (venv): Configurar e isolar o ambiente de desenvolvimento do projeto.
Arquitetura e Fluxo do Programa
Em vez de escrever o código de uma vez, estruture o seu projeto seguindo esta arquitetura em etapas:
1. Modelagem da Classe PetCrie a classe com atributos iniciais no __init__ (nome, fome, energia, felicidade) e defina os dunder methods (__str__ para exibir o painel do pet e __len__ para o total de ações/dias vividos).
Implemente métodos como alimentar(), brincar() e dormir(). Garanta que cada ação altere os atributos (ex: alimentar diminui a fome, mas brincar gasta energia) e registre um log no histórico do pet com data/hora via datetime.
Crie uma função para gravar o estado do pet e o histórico em um arquivo de texto usando with open(), e outra para carregar esses dados ao iniciar o programa, tratando exceções (try/except) caso o arquivo esteja corrompido ou não exista.
Monte um laço de repetição (while True) que exibe o menu de opções, lê a escolha do usuário, executa o método correspondente do pet e limpa o terminal/atualiza o status a cada turno.
Desafios pra ir além
- Adicionar um menu de inventário usando List Comprehensions para filtrar itens disponíveis (ex: comidas que curam mais ou menos fome).
- Criar uma biblioteca/módulo separado para gerenciar a lógica dos minigames do pet.
- Configurar um
venve adicionar suporte a bibliotecas externas comocoloramapara deixar a interface do terminal colorida.