________________________________________________________________________
[<<] [Inhalt] [>>] III. Beispiele

11. Aufzählungen und Beschreibungen

11.1.   Die Beschreibung eines Objekts
11.2.   Gruppieren von Objekten
11.3.   Ein Objekt als Gruppe von Objekten
11.4.   Objekte, die gleich sind

11.1. Die Beschreibung eines Objekts

Die Beschreibung eines Objekts folgt ähnlich den Raumbeschreibungen einem bestimmten Schema:

  1. Der Besch-Text des Objekts wird ausgegeben. Besitzt das Objekt keinen Besch-Text, sondern nur einen Text zum Lesen, so wird dieser ausgegeben.

  2. Wenn das Objekt ein offener oder transparenter Behälter, eine Ablage oder eine transparente Person ist, dann wird der Inhalt des Objekts ausgegeben.

  3. Wenn bislang noch nichts ausgegeben wurde, und sich das Objekt in einem Zustand befindet, der beschrieben werden kann, so wird 'Das Objekt ist Zust.' ausgegeben.

  4. Wenn immer noch nichts ausgegeben wurde, erscheint der Satz: 'Ich kann an dem Objekt nichts Besonderes finden.'

Zusätzliche Beschreibungen sollten in einer NachAusf angefügt werden, wobei man beachten sollte, daß die Punkte 3. und 4. nur in den Puffer geschrieben werden:

        Obj     Amulett
        Name    'Amulett' n
        [...]
        Besch   'Es ist ein Bronze-Amulett, das ich von meinem
                Meister Sha-Yan zur bestandenen Beschwörerprüfung
                bekommen habe.'
        NachAusf
          (untersuchen) Wenn (Drache hier) oder (Ork hier) dann
                          Text 'Das Amulett strahlt einen starken
                               roten Glanz aus.'
                        sonst
                          Wenn (Drache nebenan) oder
                          (Ork nebenan) dann
                            Text 'Das Amulett leuchtet schwach
                                 rötlich.'
                          Ende
                        Ende
        EndeAusf

Grundsätzliche Änderungen der Beschreibung sollten in der VorAusf in gewohnter Weise abgefangen werden:

        Obj     Pflanze
        Name    'fleischfressend^ Pflanze' f
        [...]
        Besch   'Diese Venus-Fliegenfalle hat mit meine Kusine einmal
                geschenkt, sie ist aus dem Botanischen Garten von
                Neustadt. Trotz ihrer Reißzähnchen sieht sie irgendwie
                putzig aus und ist außerdem praktisch, weil sie das
                Ungeziefer fernhält.'
        VorAusf
          (untersuchen) Bed /(Pflanze_gewachsen)
                            'Oh weh! Das putzige kleine Pflänzchen hat
                            sich durch meinen vielleicht allzu grünen
                            Daumen in ein wahres Monstrum verwandelt.
                            In unregelmäßigen Abständen schnappt sie
                            nach mir!'
        EndeAusf

Natürlich gibt es auch die Möglichkeit, Aktionen aus Besch heraus aufzurufen oder bestimmte Zustände bereits im Besch-Text zu beschreiben.

11.2. Gruppieren von Objekten

Mit einer Plural-Angabe bei Objektklassen können Objekte in Listen, wie sie zum Beispiel im Inventar oder bei der Liste der Objekte in einem Raum auftreten, gruppiert werden. Zum Beispiel ein Stapel Tarot-Karten:

        ObjKlasse Karte
        Plural  'Tarotkarten' p
        vor     'tarot'
        subst   'karte' f  'karten' p
        Ort     auf Salontisch
        Besch   'Diese Karte zeigt [den selbst].'

        Obj     As (Karte)
        Name    'As der Münzen' n 4
        subst   'as' n   'münzen' n

        Obj     Narr (Karte)
        Name    'Narr~' m 4
        subst   'narr' m   'narren' m

        Obj     Mäßigkeit (Karte)
        Name    'Mäßigkeit' f 4
        subst   'mässigkeit' f

        Synonym 'der münzen' 'münzen'

Mit dieser Definition werden drei Karten definiert, die alle einzeln mit ihrem Namen angesprochen werden können. In der Raumbeschreibung werden sie aber gruppiert und mit dem Plural der Klasse versehen:

        Auf dem Salontisch siehst du drei Tarotkarten (das As der
        Münzen, den Narren und die Mäßigkeit) und einen Brieföffner.

Wenn der Spieler nun zwei Karten wegnimmt, so bleibt nur noch eine übrig, die dann nicht mehr gruppiert wird:

        Auf dem Salontisch siehst du das As der Münzen und einen
        Brieföffner.

(Das Synonym wurde hier nur definiert, damit der Parser von dem zusätzlichen Artikel nicht verwirrt wird. Ein Artikel bedeutet für ihn den Anfang eines neuen Objekts. Mit dem Synonym wird der Artikel elegant entfernt. Da TAG keinen Genitiv kennt, macht es keine Probleme, da 'der Münzen' sowieso in keinem anderen Zusammenhang auftreten kann.)

Der Plural muß übrigens nicht immer im Plural stehen, wie im folgenden Beispiel:

        ObjKlasse Nahrung
        Plural  'Wegzehrung' f 3
        vor     'weg'
        Subst   'zehrung' f  'verpflegung' f

        Obj     Sandwich (Nahrung)
        Name    'Käse-Thunfisch-Sandwich' n
        Vor     'käse' 'thunfisch' 'käse-thunfisch'
        Subst   'sandwich' n  'brot' n  'käse' m  'thunfisch' m
        Ort     BeiMir
        Besch   'Ein Spezial-Sandwich "nach Art des Hauses".'

        Obj     Banane (Nahrung)
        Name    'Banane' f
        Subst   'banane' f
        Ort     BeiMir
        Besch   'Gelb und krumm.'

Dann gibt die Inventarliste folgendes aus:

        Du hast etwas Wegzehrung (ein Käse-Thunfisch-Sandwich und eine
        Banane).

Eine weitere Besonderheit von Listen ist, daß die einzelnen Objekte einen Listennamen haben können, der in der Definition mit lName angegeben wird. Dieser Name ist ein kurzer Name, der sich meist auf den Plural der Klasse bezieht:

        ObjKlasse Ball
        Plural  'kleine Bälle' p 4
        Subst   'ball' m   'bälle' p
        [...]

        Obj     grün_Ball (Ball)
        Name    'klein^ grün^ Ball' m
        lName   'grün^' m
        Adj     'grün'
        [...]

        Obj     schwarzer_Ball (Ball)
        Name    'klein^ schwarz^ Ball' m
        lName   'schwarz^' m
        [...]

        Obj     weisser_Ball (Ball)
        Name    'klein^ weiß^ Ball' m
        lName   'weiß^' m
        [...]

Die Objektklasse Ball hat einen Plural, also werden die Bälle in Listen als eine Gruppe in Klammern ausgegeben. Damit es nicht zu unschönen Wiederholungen kommt, wird in der Klammer der kurze Listenname verwendet:

        Hier sind drei kleine Bälle (ein grüner, ein schwarzer und ein
        weißer).

Hätten die Objekte keinen Listennamen, so würde diese Liste so aussehen:

        Hier sind drei kleine Bälle (ein kleiner grüner Ball, ein
        kleiner schwarzer Ball und ein kleiner weißer Ball).

Es lohnt sich also, bei Objekten, die gruppiert werden, einen Listennamen anzugeben. Dieser Listenname wird übrigens auch in der Nachfrage des Parsers verwendet:

        Welche Tür? Die gläserne, die aus Mahagoni, die blaue Holztür
        oder das große Portal?

11.3. Ein Objekt als Gruppe von Objekten

Manchmal möchte man eine Gruppe von Objekten als ein Objekt darstellen. Diese Objekte sind alle gleich und können untereinander nicht unterschieden werden. Zum Beispiel eine Streichholzschachtel, die eine Anzahl von Streichhölzern enthält. Dabei sollen die Streichhölzer nur ein Objekt sein:

        Flagge Holz_an 0

        Obj     Schachtel
        Name    'Streichholzschachtel' f
        Vor     'streichholz' 'zündholz'
        Subst   'schachtel' f
        Attr    Behälter
        Zust    geschlossen
        Ort     BeiMir
        VorAusf
          (öffnen)      Bed (Streichholz in Nirgendwo)
                                'Du solltest erst das einzelne
                                Streichholz abbrennen lassen.'
        EndeAusf

        Obj     Streichhölzer
        Name    'Streichholz' n
        Plural  'Streichhölzer' p
        Vor     'streich' 'zünd'
        Subst   'holz' n   'hölzer' p
        Anz     5
        Ort     in Schachtel
        Besch   'In der Schachtel [ist selbst] [ein].'
        VorAusf
          (nehmen anmachen)
                        Bed /(Streichholz BeiMir)
                                'Das Streichholz brennt doch schon.'
                        Bed (Streichhölzer.Anz > 0)
                                'Die Schachtel ist leider leer, du
                                Feuerteufel.'
                        Sei Holz_an 3
                        ObjZust Streichholz ein
                        ObjZust Schachtel geschlossen
                        ObjNach Streichholz beiMir
                        Dekr selbst.Anz
                        Wenn (selbst.Anz = 0) dann
                          Text  'Du nimmst das letzte Streichholz,'
                        sonst
                          Text  'Du nimmst ein Streichholz,'
                        Ende
                        Stop    'schließt die Schachtel und reißt es
                                an der rauhen Fläche an.'
        EndeAusf

        Obj     Streichholz
        Name    'brennend^ Streichholz' n
        Adj     'brennend' 'einzeln'
        Vor     'streich' 'zünd'
        Subst   'holz' n
        Attr    Licht
        Besch   'Langsam flackernd brennt das Streichholz ab..'
        VorAusf
          (untersuchen) Bed (Streichhölzer.Anz > 0)
                                'Es ist das letzte Streichholz, das
                                langsam herunterbrennt.'
          (anmachen)    Stop    'Das Streichholz brennt bereits.'
          (hinlegen ausmachen)
                        ObjNach selbst nirgendwo
                        Stop    'Du wedelst das Streichholz aus und
                                wirfst den glimmenden Rest weg.'
        EndeAusf

        Aktion *
        Ausf
          Wenn (Streichholz BeiMir) dann
            Wenn (Holz_an) dann
              Dekr Holz_An
              Bed (Holz_An)
                'Das Streichholz ist bald abgebrannt.'
            sonst
              Text  'Das Streichholz flackert langsam aus.'
              Text  'Du wirfst den schwach glimmenden Rest weg.'
              ObjNach Streichholz Nirgendwo
            Ende
          Ende
        EndeAusf

Mit dieser Definition kann immer nur ein Streichholz aus der Schachtel geholt und angezündet werden. Die Schachtel wird automatisch zugemacht, damit der Spieler das brennende Streichholz als Streichholz eindeutig ansprechen kann, aber trotzdem 'nimm Streichholz' verstanden wird, wenn das einzelne Hölzchen gerade nicht vor Ort ist.

Diese Definition ist relativ lang, da man verschiedene Situationen abfangen muß: Es darf immer nur ein Streichholz und in Sicht sein, ist das Streichholz aus, wird es sofort weggeworfen, damit das nächste Streichholz genommen werden kann usw. Eine solche Vorgehensweise bietet sich nur an, wenn man die Objekte immer nur als Gruppe benutzt, wie z.B. Münzen als Zahlungsmittel oder Streichhölzer.

11.4. Objekte, die gleich sind

Manche Objekte ähneln einander wie ein Ei dem anderen, befinden sich aber unter Umständen an verschiedenen Orten und können einzeln angesprochen werden. Die Definition aus dem vorigen Abschnitt funktioniert also hier nicht.

In einem solchen Fall kann man in TAG eine Objektklasse definieren, die einen Plural und ein Vokabular besitzt. Um die Objekte in dieser Klasse nicht unter- scheidbar zu machen, darf man kein eigenes Vokabular bei ihnen definieren, so daß sie nur das von der Klasse geerbte Vokabular benutzen:

        ObjKlasse Münze
        Name    'Münze' f
        Plural  'Münzen' p
        Besch   'Eine Münze wie jede andere.'

        Obj     M1 (Münze)
        Ort     BeiMir

        Obj     M2 (Münze)
        Ort     in Beutel

        Obj     M3 (Münze)
        Ort     in Beutel

Diese Definition bewirkt, daß die Münzen bei Aufzählungen immer zusammengefaßt werden: 'Der Lederbeutel enthält zwei Münzen.' Wenn der Spieler nun 'nimm die Münze aus dem Beutel' eingibt, so wählt der Parser eine beliebige der beiden aus.

Die einzelnen Münzen müssen verschiedene Bezeichner besitzen, auch wenn sie vielleicht nie benutzt werden. Für das Programm sind sie schon verschieden, und vielleicht sollen sie sich ja auch im Verlauf des Spiels ändern:

        Obj     Flüssigkeit
        Name    'grün^ Flüssigkeit'
        [...]
        Besch   'Diese grüne Flüssigkeit brodelt etwas verdächtig in
                einem Glaskolben.'
        Darin   'Unten in der Flüssigkeit, durch die Blasen und
                milchigen Schlieren kaum zu erkennen, befinde[t 0]
                sich [liste 0].'
        VorAusf
          (empfangen)   Bed /(aObj Zaubermünze)
                                '[Der aObj] [ist] doch schon
                                verwandelt.'
                        Bed (aObj Münze)
                                'Besser nicht!.'
          (freigeben)   Bed (Zange Beimir)
                                'Mit bloßen Händen solltest du nicht
                                in diese dermatologisch recht
                                bedenkliche Flüssigkeit greifen.'
        EndeAusf
        NachAusf
          (empfangen)   Jenach aObj
                          (M1)  Sei iObj Kupfermünze
                          (M2)  Sei iObj Silbermünze
                          (M3)  Sei iObj Goldmünze
                          (M4)  Sei iObj Bleimünze
                          (M5)  Sei iObj Ebenholzmünze
                          [...]
                        Ende
                        Tausche aObj iObj
                        Text 'Die Flüssigkeit brodelt heftig als die
                             Münze darin versinkt. Als der Dampf etwas
                             verflogen ist, siehtst du, daß die Münze
                             in [ein iObj] umgewandelt wurde.'
        EndeAusf

Dabei muß das Objekt umgetauscht werden, es kann nicht bloß verändert werden, da ein unveränderliches Objekt während des ganzen Spiels unverändert bleibt. (Das Vokabular eines Objekts kann sich normalerweise nicht ändern, und die Parserroutinen werden bei der Unveränderlichkeit nicht berücksichtigt.)

Obwohl die Münzen nicht unterscheidbar sind, so sind sie doch verschieden und im Beispiel wird eine normale Münze immer in dieselbe einzigartige Münze umgewandelt. Wenn man also eine Münze im Gartenhäuschen findet, so ist es immer die noch nicht verwandelte Bleimünze, der Spieler hat keine Chance, daß es zufällig doch die goldene ist.

Martin Oehm, 04.02.2000 Vorheriges KapitelInhaltsverzeichnisNächstes Kapitel