Abschlussprojekt

Dein eigenes Tamagotchi (Virtuelles Haustier) 🥚🐣

Kombiniere alle gelernten OOP-Konzepte in einem interaktiven, voll funktionsfähigen Konsolenspiel!

📂 Dateien dieser Einheit:
💻 In Web-IDE öffnen → 📄 aufgabe.py (Startercode) 🧪 test_aufgabe.py (Tests) 💡 musterloesung.py (Lösung) 🎮 tamagotchi_spiel.py 📖 README.md

1. Das große Finale! 🏆

Du hast alle Grundlagen gemeistert: Klassen & Konstruktoren, Methoden, __str__ und Objekt-Beziehungen. Jetzt bauen wir ein komplettes, virtuelles Haustier (Tamagotchi), das du im Terminal füttern, schlafen legen und mit dem du spielen kannst!

2. 🤖 Vollständiges Beispiel: Ein Roboter mit Lebenszyklus

Bevor du das Tamagotchi baust, schau dir dieses vollständige Beispiel an. Es zeigt, wie Attribute begrenzt werden (Clamping 0-100) und wie ein Status überprüft wird:

Python (Komplettes Beispiel: roboter.py)
class Roboter:
    def __init__(self, name):
        self.name = name
        self.energie = 100          # 100% Start-Energie
        self.ist_aktiv = True

    # Hilfsmethode, um Werte zwischen 0 und 100 zu halten:
    def _begrenzen(self, wert):
        return max(0, min(100, wert))

    def arbeiten(self, dauer_stunden):
        if not self.ist_aktiv:
            return f"{self.name} ist ausgeschaltet!"

        verbrauch = dauer_stunden * 20
        self.energie = self._begrenzen(self.energie - verbrauch)
        
        if self.energie == 0:
            self.ist_aktiv = False
            return f"{self.name} hat keine Energie mehr und schaltet sich ab!"
        
        return f"{self.name} hat {dauer_stunden}h gearbeitet. Restenergie: {self.energie}%"

    def aufladen(self):
        self.energie = 100
        self.ist_aktiv = True
        return f"{self.name} ist wieder voll aufgeladen!"

    def __str__(self):
        status = "Aktiv ⚡" if self.ist_aktiv else "Ausgeschaltet 💤"
        return f"[{self.name}] Energie: {self.energie}% | Status: {status}"


# Ausprobieren:
if __name__ == "__main__":
    bot = Roboter("Wall-E")
    print(bot)
    print(bot.arbeiten(3))  # Verbraucht 60% -> 40% übrig
    print(bot.arbeiten(3))  # Energie auf 0 -> schaltet ab
    print(bot)
    print(bot.aufladen())

3. 🎯 Deine Aufgaben in aufgabe.py

💡 Lösungshinweise (Aufklappen bei Bedarf)

🔍 Tipp zur Werte-Begrenzung (Clamping)

Damit Werte nicht unter 0 fallen oder über 100 steigen, nutze max(0, min(100, wert)):

self.hunger = max(0, min(100, self.hunger - menge))

4. 🕹️ Das interaktive Spiel starten!

Sobald alle Unittests grün sind, kannst du das Spiel live spielen:

Terminal
python3 tamagotchi_spiel.py
🎉 Du hast es geschafft!
Herzlichen Glückwunsch zum erfolgreichen Abschluss der Python OOP Übungsreihe!