it-praxisportal/06_abschlussprojekt_tamagotchi/aufgabe.py

129 lines
5.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
Kapitel 06: Abschlussprojekt – Tamagotchi (Virtuelles Haustier)
==============================================================
Programmiere hier die Klasse 'Tamagotchi'.
"""
class Tamagotchi:
# ==========================================================================
# TODO 1: Konstruktor __init__(self, name, tierart="Drache")
#
# Initialisiere die folgenden Attribute:
# - self.name = name
# - self.tierart = tierart
# - self.hunger = 50 (0 = pappsatt, 100 = verhungert)
# - self.muedigkeit = 20 (0 = fit, 100 = erschöpft)
# - self.glueck = 80 (0 = traurig, 100 = super glücklich)
# - self.alter_tage = 0
# - self.ist_lebendig = True
# ==========================================================================
def __init__(self, name, tierart="Drache"):
# Schreibe hier deinen Code für TODO 1:
pass
# Hilfsmethode (optional, aber sehr nützlich):
# Hält einen Wert zwischen minimal 0 und maximal 100.
def _begrenze(self, wert):
return max(0, min(100, wert))
# ==========================================================================
# TODO 2: Methode "fuettern(self, menge=20)"
#
# Regeln:
# 1. Wenn not self.ist_lebendig:
# - Gib zurück: f"{self.name} reagiert nicht mehr..."
# 2. Wenn lebendig:
# - Verringere 'self.hunger' um 'menge' (darf nicht unter 0 fallen).
# - Erhöhe 'self.glueck' um 5 (darf nicht über 100 steigen).
# - Erhöhe 'self.muedigkeit' um 5 (darf nicht über 100 steigen).
# - Gib zurück: f"{self.name} mampft genüsslich! (Hunger: {self.hunger}/100)"
# ==========================================================================
def fuettern(self, menge=20):
# Schreibe hier deinen Code für TODO 2:
pass
# ==========================================================================
# TODO 3: Methode "spielen(self, spass=25)"
#
# Regeln:
# 1. Wenn not self.ist_lebendig:
# - Gib zurück: f"{self.name} reagiert nicht mehr..."
# 2. Wenn 'self.muedigkeit' > 80 ist:
# - Zu müde zum Spielen! Ändere keine Werte und gib zurück:
# f"{self.name} ist zu müde zum Spielen und gähnt nur..."
# 3. Wenn fit genug:
# - Erhöhe 'self.glueck' um 'spass' (max 100).
# - Erhöhe 'self.hunger' um 15 (max 100).
# - Erhöhe 'self.muedigkeit' um 20 (max 100).
# - Gib zurück: f"{self.name} hatte riesigen Spaß beim Spielen! (Glück: {self.glueck}/100)"
# ==========================================================================
def spielen(self, spass=25):
# Schreibe hier deinen Code für TODO 3:
pass
# ==========================================================================
# TODO 4: Methode "schlafen(self)"
#
# Regeln:
# 1. Wenn not self.ist_lebendig:
# - Gib zurück: f"{self.name} reagiert nicht mehr..."
# 2. Wenn lebendig:
# - Setze 'self.muedigkeit' auf 0.
# - Erhöhe 'self.hunger' um 15 (max 100).
# - Erhöhe 'self.alter_tage' um 1.
# - Gib zurück: f"{self.name} hat tief geschlafen und ist ausgeruht! Ein neuer Tag bricht an."
# ==========================================================================
def schlafen(self):
# Schreibe hier deinen Code für TODO 4:
pass
# ==========================================================================
# TODO 5: Methode "zeit_vergeht(self)"
# Simuliert das Verstreichen von Zeit.
#
# Regeln:
# 1. Wenn not self.ist_lebendig:
# - Mach nichts, gib False zurück.
# 2. Wenn lebendig:
# - Erhöhe 'self.hunger' um 10 (max 100).
# - Erhöhe 'self.muedigkeit' um 10 (max 100).
# - Verringere 'self.glueck' um 10 (min 0).
# - Prüfe, ob das Haustier stirbt:
# Wenn self.hunger >= 100 oder self.glueck <= 0:
# self.ist_lebendig = False
# - Gib self.ist_lebendig zurück (True wenn noch am Leben, False wenn gestorben).
# ==========================================================================
def zeit_vergeht(self):
# Schreibe hier deinen Code für TODO 5:
pass
# ==========================================================================
# TODO 6: Dunder-Methode "__str__(self)"
# Gibt eine hübsche Statusübersicht als mehrzeiligen String zurück.
#
# Format (wenn lebendig):
# "=== {self.name} ({self.tierart}, {self.alter_tage} Tage alt) ===\n"
# "Hunger: {self.hunger}/100\n"
# "Müdigkeit: {self.muedigkeit}/100\n"
# "Glück: {self.glueck}/100"
#
# Format (wenn tot / not self.ist_lebendig):
# "=== {self.name} ({self.tierart}) - RIP 🪦 ==="
# ==========================================================================
def __str__(self):
# Schreibe hier deinen Code für TODO 6:
pass
# ==============================================================================
# Schneller Testlauf:
# ==============================================================================
if __name__ == "__main__":
pet = Tamagotchi("Yoshi", "Dino")
print(pet)
print()
print(pet.fuettern())
print(pet.spielen())
print(pet.schlafen())
print(pet)