In diesem Kapitel wird gezeigt, wie man eine Sektion von Daten strukturiert anlegt. Beispielsweise möchte man gerne für ein Spiel mehrere Einheiten definieren, die verschiedene Attribute haben (Name, Stärke usw.). Oftmals speichert man diese Informationen durch XML ab. Aber auch Operno besitzt ähnliche Funktionen.
Folgendes Beispiel zeigt, wie man verschiedene Tiere definiert, die jeweils eigene Merkmale haben:
tiere{
katze{
beschreibung = "Eine graue Katze"
ton = "miau"
}
hund{
beschreibung = "Ein Hund"
ton = "wuff"
}
kuh{
beschreibung = "Eine gefleckte Kuh"
ton = "muh"
}
}
Der obige Code definiert eine Gruppe namens tiere
mit den Untergruppen katze
, hund
und kuh
. Diese Untergruppen besitzen jeweils zwei Attribute (beschreibung
und ton
).
Nun wollen wir eine Funktion definieren, die für jedes Tier beschreibung + "macht" + ton
ausgibt:
lass sprechen(tier&){
out tier\beschreibung + " macht " + tier\ton + "!"
}
Nun müssen wir diese Funktion nur noch für jedes Tier aufrufen:
lass sprechen(katze)(hund)(kuh)
>>> : Eine graue Katze macht miau!
>>> : Ein Hund macht wuff!
>>> : Eine gefleckte Kuh macht muh!
Fügen wir jedoch ein neues Tier in die Gruppe tiere
hinzu, so müssen wir jedoch die Zeile mit dem Aufruf von lass sprechen
mit dem neuen Tier ergänzen. Um uns dies zu erspaaren, können wir die for
-Schleife verwenden, indem wir jedes Unterobjekt der Gruppe tiere
durchlaufen:
tiere:children for[tier]{ lass sprechen(tier) }
children
gibt eine Liste aller Unterobjekte als Adresse zurück.