Intro | Guide | Shell | Draft |
---|
Você deve implementar um simulador de bichinho virtual. Ele poderá brincar, dormir e tomar banho. E eventualmente morrerá, se você não cuidar bem dele.
Seu sistema deverá:
- Classe
Tamagochi
- É responsável por armazenar os dados relativos ao bichinho, controlar os limites permitidos para os atributos e registrar a morte.
- Construtor
- Recebe energia máxima
energyMax
e limpeza máximacleanMax
do pet que representam os valores máximo de energia e limpeza. - Energia
energy
e limpezaclean
devem ser iniciados no máximo. - Idade
age
inicia em zero e aumenta a cada turno. - Vivo
alive
inicia comotrue
porque o bichinho inicia vivo.
- Recebe energia máxima
- Os métodos
set
alteram os valores dentro dos limites de 0 até o máximo permitido e se o valor em algum momento for 0, muda o valor de vivo para false.
- Classe
Game
- É responsável por armazenar o bichinho.
- É onde estão localizadas as lógicas sobre as ações de brincar
play
, dar banhoshower
e dormirsleep
. - Cada operação causa aumento e reduções nos atributos utilizando-se os métodos
set
eget
doTamagotchi
. - Antes de qualquer ação, é necessário verificar se o bicho está vivo. Pois brincar com bichos mortos não é recomendado.
#TEST_CASE inicio
# O comando "$init energia limpeza" recebe os valores do pet.
# O pet inicia com 0 de idade.
# Toda vez que $init é chamado, um novo pet é criado.
$init 20 15
# O comando "$show" mostra os parâmetros do Pet na seguinte ordem
# Energia/Max, Limpeza/Max, Idade
$show
E:20/20, L:15/15, I:0
$init 10 50
$show
E:10/10, L:50/50, I:0
$end
#TEST_CASE play - Brincar
# O comando "$play" altera em -2 energia, -3 limpeza, +1 idade.
$init 20 15
$play
$show
E:18/20, L:12/15, I:1
$play
$play
$show
E:14/20, L:6/15, I:3
#TEST_CASE dormir
# O Comando "$sleep" aumenta energia até o máximo e idade aumenta do número de turnos que o pet dormiu.
$sleep
$show
E:20/20, L:6/15, I:9
#TEST_CASE tomar banho
# O comando "$shower" alteram em -3 energia, MAX na limpeza, +2 na idade.
$shower
$show
E:17/20, L:15/15, I:11
#TEST_CASE dormir sem sono
# Para dormir, precisa ter perdido pelo menos 5 unidades de energia
$sleep
fail: nao esta com sono
#TEST_CASE morrer
# Se algum atributo atingir 0, o pet morre e não poderá executar nenhuma ação
$play
$play
$play
$play
$show
E:9/20, L:3/15, I:15
$play
fail: pet morreu de sujeira
$show
E:7/20, L:0/15, I:16
$play
fail: pet esta morto
$shower
fail: pet esta morto
$sleep
fail: pet esta morto
$end
#TEST_CASE fraqueza
$init 5 10
$play
$play
$play
fail: pet morreu de fraqueza
#TEST_CASE morto de fraqueza
$play
fail: pet esta morto
$show
E:0/5, L:1/10, I:3
$end
- cpp
- java
- ts