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 Pet com 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() e replace().
  • Manipulação de Arquivos: Gravar e ler o histórico/estado do pet em arquivos .txt usando 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 datetime para registrar data/hora das ações, os para manipular arquivos e random para 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 Pet

Crie 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).

2. Métodos de Ação e Lógica de Negócio

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.

3. Persistência de Dados (Arquivos)

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.

4. Loop Principal de Interação (CLI)

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 venv e adicionar suporte a bibliotecas externas como colorama para deixar a interface do terminal colorida.
Boa sorte ;)