📂 Dateien dieser Einheit:
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:
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!