0
🪙 0
Szene 1/12
Szene 0 · Prolog
Ankunft in Codemondo
Nach dem Intro beginnt hier der Story-Prolog.
Deine Aufgabe

Deine Aufgabe: Bringe jedes Ei zurück in die passende Umgebung. Achte auf Muster, Farben und Energiesignale – sie verraten dir oft den richtigen Ort. Wenn du die Zuordnung korrekt triffst, beginnen die Eier zu glühen, und der Element-Code pulsiert wieder im Rhythmus der Welt. So stabilisiert sich das Netzwerk von Codemondo Schritt für Schritt.

Wasser
Luft
Erde
Feuer
Nest
Nest
Nest
Nest
Nest
Nest
Nest
Nest
Nest
Nest
Nest
Nest
Nest
Nest
Nest
Nest
Nest
Nest
Nest
Nest
💧 Wasser
Aquamon, Wavemon, Tropmon, Marilo, Seaflo
🌪️ Luft
Aeriomon, Windmon, Breezo, Skymon, Luftro
🌍 Erde
Terramon, Steinmon, Mudmon, Gravlo, Bramon
🔥 Feuer
Flammon, Pyromon, Glutmon, Flaro, Cindor
Szene 1 · Einstieg
Ein Geheimnis wartet...
Bevor ein Wesen erschaffen werden kann, braucht es eine Blaupause. In der Programmierung nennen wir das eine Klasse.
Ei
Was steckt im Ei?
Erstelle eine Klasse, um dein Codemon auszubrüten.
Was ist eine Klasse?

Eine Klasse ist wie ein Bauplan. Sie beschreibt, welche Eigenschaften (Attribute) und Fähigkeiten (Methoden) ein Objekt haben wird — ähnlich wie ein Steckbrief für ein neues Gerät, in dem schon festgelegt ist, welche Funktionen es haben soll, noch bevor das Gerät überhaupt gebaut wird.

Szene 2 · Klassen & Attribute
UML-Klassendiagramm
Erkunde durch interaktive Geschichten, welche Attribute deine Codemon-Klasse braucht. Das UML-Diagramm füllt sich automatisch.
📖 Attribut-Entdeckung

Stelle dir vor, du findest ein mysteriöses Ei im Wald. Was würdest du über das Wesen wissen wollen, das daraus schlüpft?

UML-Klassendiagramm (Live)
Codemon
— Entdecke die Attribute durch Geschichten —
— noch leer —
💡 Sichtbarkeiten

+ public — von überall zugänglich
- private — nur innerhalb der Klasse
# protected — Klasse + Unterklassen

Objektansicht
Ei
Dieses Ei ist dein erstes Objekt in Vorbereitung. In den naechsten Szenen wird es zum Codemon.
Szene 3 · Konstruktor
Objekt-Erzeugung
Der Konstruktor ist eine spezielle Methode, die automatisch aufgerufen wird, wenn ein Objekt erstellt wird. Er initialisiert die Attribute mit Startwerten.
1. Parameter verstehen

Der Konstruktor braucht zwei Informationen: 1. Den Namen des Wesens (z.B. "Flamox") 2. Eine Liste der möglichen Typen, aus der zufällig ein Typ gewählt wird.

Welche Parameter sind für den Konstruktor verpflichtend?

name und typenliste
Nur name
Alle Attribute (name, hunger, alter, level, typ, typenliste)
Nur typenliste
UML-Klassendiagramm
Codemon
+ name: str
- hunger: int
- alter: int
- level: str
- typ: str
— noch leer —
💡 Konstruktor

__init__ ist der Konstruktor
Wird automatisch bei obj = Klasse() aufgerufen
Initialisiert alle Attribute mit Startwerten

Deine Objekte
0 / 0
Szene 4 · Konstruktor-Aufruf
Aufruf des Konstruktors in Python
Jetzt nutzt du den Konstruktor aktiv, um weitere Objekte über Python-Code zu erzeugen.
Wie wird der Konstruktor aufgerufen?

Der Konstruktor __init__ wird automatisch aufgerufen, sobald du ein Objekt der Klasse erzeugst. Du schreibst also nicht __init__ direkt, sondern erstellst ein Objekt mit Klassenname und Parametern.

Funktionen im UML (z. B. __init__) kannst du anklicken, um den Quellcode direkt darunter einzublenden. Auch die Objekte rechts sind anklickbar, um den zugehoerigen Quellcode darunter anzuzeigen.

Quest: Weitere Objekte anlegen

Lege dir von jedem Typ mindestens ein Objekt an: Feuer, Wasser, Luft und Erde. Insgesamt sind maximal 5 Objekte erlaubt.

UML-Klassendiagramm
Codemon
+ name: str
- hunger: int
- alter: int
- level: str
- typ: str
— noch leer —
Deine Objekte
0 / 0
Szene 5 · Vitalwerte auslesen
Dem Codemon geht es nicht gut
Lies die Lebenswerte aus und finde heraus, wie ernst die Lage ist.
Einleitung

Als du heute den Kreaturenstall betrittst, blickt dich dein Codemon nur noch müde an. Sein Leuchten ist schwächer als sonst und jeder Schritt wirkt schwer.

Keine Panik: Mit sauberem OOP-Code kannst du helfen. Wir lesen jetzt die Lebenswerte aus, prüfen die Vitalwerte und entscheiden danach, was dein Codemon braucht.

UML-Klassendiagramm
Codemon
+ name: str
- hunger: int
- alter: int
- level: str
- typ: str
— noch leer —
Deine Objekte
0 / 0
Szene 6 · Getter implementieren
Vom Verstehen zum eigenen Getter-Code
Erst verstehen, dann quizzen, dann schreiben: So baust du Getter Schritt für Schritt.
1) Was ist ein Getter?

Ein Getter ist eine Methode, die einen Wert aus einem privaten Attribut zurückgibt, ohne dass man direkt von außen auf das Attribut zugreift.

Beispiel: In einer ganz anderen Klasse könnte ein Getter den Buchtitel liefern.

class Buch: def get_titel(self): return self.__titel

Aufbau: 1) Methodenname get_... mit self im Kopf, 2) darunter eine return-Zeile, die genau das private Attribut zurückgibt.

UML-Klassendiagramm
Codemon
+ name: str
- hunger: int
- alter: int
- level: str
- typ: str
— noch leer —
Deine Objekte
0 / 0
Szene 7 · Problem einordnen
Die Ursache ist gefunden
Du hast erkannt, welches Attribut das Problem beschreibt. Die nächste Szene nutzt wieder das gewohnte 3-Spalten-Layout.
Analyse

Das kritische Attribut war __hunger. Genau dieser Wert erklärt, warum das Codemon geschwächt wirkt.

Attributwerte werden kontrolliert über Setter verändert, z. B. mit einer Methode wie set_hunger(...). Setter definierst du nur dann, wenn ein Wert wirklich von außen veränderbar sein soll. Dabei sind Prüfungen auf sinnvolle Werte wichtig, zum Beispiel Grenzen wie 0 bis 100 für Hunger oder nur erlaubte Typen für Textwerte.

Quiz: Welche Attribute brauchen Setter?
UML-Klassendiagramm
Codemon
+ name: str
- hunger: int
- alter: int
- level: str
- typ: str
— noch leer —
Objektübersicht
0 / 0