Anhang A Lösungen zu den Aufgaben
Raum Vor_dem_Haus ... Rein Im_Haus Raum Im_Haus ... Raus Vor_dem_Haus Rein und Raus sind in normal.adv definiert. Raum Vor_dem_Haus Name 'Vor dem Haus' Std nur_N_oder_O NO Gegen_Wand SO Gegen_Wand O Im_Haus N Lichtung Besch ... Raum Im_Haus Std Gegen_Wand W Vor_dem_Haus Name 'In dem kleinen Haus' Besch ... Antwort nur_N_oder_O Besch 'Dort ist das Gebüsch zu dicht. Es geht nur nach Norden oder nach Osten ins Haus.' Antwort Gegen_Wand Besch 'Dort ist leider eine Wand.' Obj Taschenmesser Name 'Taschenmesser' m 5 vor 'taschen' 'klapp' subst 'messer' m Zust geschlossen Ort BeiMir Besch 'Dein Taschenmesser hat einen Hirschhorngriff und ist im Moment [Taschenmesser.Zust].'Einer der Zustände offen, geschlossen oder abgeschlossen bewirkt, dass man diesen Gegenstand öffnen und schließen kann. Die 5 hinter dem m für Maskulinum bewirkt, dass das Messer nicht »das Taschenmesser«, sondern »dein Taschenmesser« heißt. Mehr dazu im Handbuch. Der Ausdruck in eckigen Klammern bedeutet, dass der Zustand im Klartext, also »offen« oder »geschlossen«, je nach dem momentanen Zustand des Messers ausgegeben wird. (Das ist ein Vorgriff auf Kapitel 6.) Obj Dose Name 'Brotdose' f vor 'brot' 'blech' subst 'dose' f Ort in Rucksack Zust geschlossen Attr Behälter Obj Tomate Name 'Tomate' f subst 'tomate' f Ort in Dose Attr essbar Besch 'Die Tomate ist rot, rund, bißfest und sie hat oben einen kleinen grünen Kranz. das unterscheidet sie nicht von anderen Tomaten. (Wer jetzt hier eine Bemerkung über Tomaten aus Holland erwartet hat - Pech gehabt.)' Obj Ei Name 'hartgekocht^ Ei' n adj 'hart' 'gekocht' 'hartgekocht' vor '8-Minuten' subst 'ei' n Ort in Dose Attr essbar Besch 'Hartgekocht, acht Minuten ungefähr.'
Obj Anorak Name 'Anorak' m adj 'rot' vor 'wind' subst 'anorak' m 'jacke' f Ort in Rucksack Attr Kleidung Besch 'Eine rote, wind- und wetterfeste Jacke aus Mega-Duro-Tex [[tm]].'
Obj Einmachglas Name 'Einmachglas' n vor 'einmach' 'einweck' subst 'glas' n Ort in Rucksack Attr Behälter transparent Zust geschlossen Besch 'Von meiner Oma.' Darin 'In der trüben Brühe im Einmachglas schwimm[t 0] [liste 0].' Obj Gurke Name 'Gewürzgurke' f vor 'gewürz' subst 'gurke' f 'gürkchen' n Ort in Einmachglas Attr essbar Besch 'Diese Spezialität aus dem Spreewald ist grün und picklig, aber trotzdem nicht abstoßend.' Raum Keller ... Besch 'Dieser Keller riecht modrig, die feuchten Wände sind mit Moos bewachsen. Das, was von den verfaulten Regalen übriggeblieben ist, ist meist leer. Eine intakte Holztreppe führt zurück nach oben.' Attr dunkel Obj Regale Name 'halbverfault^ Regale' p adj 'faulig' 'faul' 'verfault' 'modrig' subst 'regale' p 'regal' n Ort Keller Attr fest Darauf 'Auf einem der verfaulten Regale [ist] [liste 0].'
Obj Tisch ... Vol 80 Obj Rucksack ... Vol 40 Gew 3 Obj Wanderstab Name 'Wanderstab' m vor 'wander' Subst 'stab' m 'stecken' m Ort beimir Gew 2 Vol 60 Besch 'Der Wanderstab ist gut einen Meter sechzig lang. Zwei Plaketten sind an den Stab genagelt: ein Edelweiß und eine mit der Aufschrift "Internationale Volkswanderung Kahler Asten 1982"' Klar, der Trick ist, dass der Stab ein größeres Volumen hat als der Rucksack, aber kein größeres als der Tisch. Obj Klappstuhl Name 'Klappstuhl' m vor 'klapp' Subst 'stuhl' m Attr Sitz Standfläche Zust offen Ort Keller Besch 'Ein blauer Klappstuhl aus der Serie "Luleå".' Deko Bäume Name 'Bäume' p Subst 'baum' m 'bäume' p 'eichen' p 'birken' p Subst 'eiche' f 'birke' f Ort Lichtung Besch 'Die Bäume hier sind hauptsächlich Eichen und Birken. (Das hättest Du aber schon aus der Raumbeschreibung erfahren können, du Naseweis.)' Deko Wand Name 'Wand' f subst 'wand' f 'wände' p 'decke' f 'boden' m Ort Im_Haus Keller Besch 'Die Wand ist ein vertikales, ebenes Konstrukt. Es gibt hier vier Wände. Die begrenzenden Ebenen oben und unten heißen Decke und Boden.' Obj Pilz Name 'eigenartig^ Pilz' m adj 'eigenartig' 'grün' 'weiß' 'giftig' vor 'gift' 'knollenblätter' subst 'pilz' m 'kappe' f 'hut' m 'punkte' p Ort Lichtung Besch 'Der Pilz hat eine grüne Kappe mit kleinen, weißen Punkten.' Erst 'Ein eigenartiger grüner Pilz wächst mitten auf der Lichtung.' VorAusf (essen) Wenn (proz 20) dann Text 'Du beißt herzhaft in den Pilz. Aber erstens schmeckt der rohe Pilz ziemlich bescheiden und zweitens ist er hochgiftig.' Gestorben Ende EndeAusf NachAusf (nehmen) Wenn /(Pilz bewegt) Text 'Mit einem leisen "Plopp!" ziehst du den Pilz aus dem lockeren Waldboden.' EndeAusf ObjAttr probiert Obj Pilz ... VorAusf (essen) Wenn (Pilz probiert) dann Text 'Du beißt herzhaft in den Pilz. Aber erstens schmeckt der rohe Pilz ziemlich bescheiden und zweitens ist er hochgiftig.' Gestorben sonst Text 'Du knabberst ein wenig an dem Pilz. Irgenwie schmeckt er eigenartig, aber du kannst nicht genau sagen, warum.' AttrHin Pilz probiert Ende Stop EndeAusf Obj Pilz ... VorAusf (nehmen) Bed (Taschenmesser beiMir) 'Der Pilz sitzt fest im Boden, du kannst ihn nicht einfach herausziehen.' Bed (Taschenmesser offen) 'Gute Idee, aber das Messer ist noch zu.' ... EndeAusf NachAusf (nehmen) Text 'Du schneidest den Pilz mit deinem Taschenmesser sauber knapp über dem Boden ab.' EndeAusf Obj Blechkasten Name 'Blechkasten' m vor 'blech' subst 'kasten' m 'kiste' m Ort Keller Attr Behälter Zust geschlossen Besch 'Vorne auf dem Blechkasten ist ein großer, roter Knopf.' Darin '[Liste 0] [ist] im Blechkasten.' VorAusf (öffnen schließen öffnen_mit aufschließen) Stop 'Das geht so nicht.' EndeAusf Obj roter_Knopf Name 'rot^ Knopf auf dem Blechkasten' m adj 'rot' 'groß' Subst 'knopf' m Ort auf Kasten VorAusf (drücken) Wenn (Blechkasten offen) dann ObjZust Blechkasten geschlossen Text 'Klick! Der Kasten schnappt wieder zu!' sonst ObjZust Blechkasten offen Text 'Klick! Der Kasten schnappt auf!' Ende Stop EndeAusf Obj Wäscheschacht Name 'Wäscheschacht' m vor 'wäsche' subst 'schacht' m Ort Im_Haus Attr immobil Behälter Besch 'Schwarz und großmäulig, so schluckt der Wäscheschacht alles, was man ihm gibt.' Erst 'In der Nordwand ist eine gähnende, schwarze Öffnung - ein Wäscheschacht.' NachAusf (empfangen) Text 'Du legst [den aObj] in den Schacht, und [er] rutsch[t] bald außer Sichtweite.' ObjNach aObj Keller EndeAusf
Obj Wäschekorb Name 'Weidenkorb' m vor 'weiden' 'wäsche' subst 'korb' m 'körbchen' n Attr Liege Sitz In_Obj Behälter Vol 100 Ort Keller Besch 'Der Korb ist für einen Wäschekorn verhältnismäßig groß. (War vielleicht als Gondel für einen Fesselballon gedacht.)' VorAusf (nehmen) Stop 'Der Korb ist sehr groß und sehr schwer. Lass ihn besser stehen.' EndeAusf Dann eine Änderung beim Wäscheschacht: Obj Wäscheschacht ... NachAusf (empfangen) Text 'Du legst [den aObj] in den Schacht, und [er] rutsch[t] bald außer Sichtweite.' ObjNach aObj in Wäschekorb EndeAusf
Obj Mingvase Name 'Ming-Vase' f Adj 'schön' 'wertvoll' 'prachtvoll' Adj 'unbezahlbar' 'teuer' 'chinesisch' Adj 'unermeßlich' 'sündhaft' 'wunderschön' Adj 'selten' 'rar' 'verziert' 'einmalig' vor 'ming' Subst 'vase' f 'rarität' f Vol 4 Attr Behälter Ort auf Tisch Besch 'Diese Ming-Vase ist eine der letzten aus der zweiten Ming-Dynastie und ist eine unbezahlbare Rarität. Jeder halbwegs gescheite Archäologe würde sich nach diesem Stück die Finger lecken.' VorAusf (zerstören werfen) Text 'Die Vase zersplittert in tausend Scherben. Gut gemacht!' Tausche Mingvase Scherben ObjNach Scherben aRaum EndeAusf Obj Scherben Name 'tausend Scherben' p 2 adj 'ehemalig' 'einstig' vor 'ex' subst 'scherben' p 'vase' f Besch 'Diese Scherben waren eine der leztzten Vasen aus der zweiten Ming-Dynastie und waren eine unbezahlbare Rarität. Jeder halbwegs gescheite Archäologe würde sich den Idioten in die Finger wünschen, der sie zerstört hat.' Obj Mingvase ... VorAusf (hinlegen hineinlegen) Bed (aObj2 = Tisch) 'Dort sollte ich ein so wertvolles Artefakt nicht abstellen.' EndeAusf Bef xyzzy Name 'Das Wort "xyzzy" sagen' Verb 'xyzzy' Ausf Bed /(aRaum = Im_Haus) 'Nichts passiert...' Text 'Dir wird kurz schwindlig, und deine Umgebung verschwimmt. Du befindest Dich plötzlich woanders:[#]' GeheZu Im_Haus EndeAusfHier können natürlich keine Befehle in runden Klammern angegeben werden, da es sich um den Hauptausführungsblock des Befehls selbst handelt. Bef debug_status * Name 'status' Verb 'status' Syntax dasObj (Allg) Ausf Text '[aObj] Gewicht: [aObj.Gew] [x]Volumen: [aObj.Vol] [x]' Wenn (aObj fest immobil) Text 'unbeweglich[x]' Wenn (aObj Behälter) Text 'Behälter[x]' Wenn (aObj Ablage) Text 'Ablage[x]' Wenn /(aObj normal) Text '[Zust aObj][x]' | Aus normal.adv geklaut Text 'Ort:' Wenn (aObj BeiMir) Text 'in der Hand' Wenn (aObj Angezogen) Text 'angezogen' Wenn (aObj in Nirwana) Text 'im Nirwana' Wenn (aObj in Nirgendwo) Text 'nirgendwo' MutterObj xObj aObj Wenn (xObj = 0) dann StammRaum xRaum aObj Wenn (xRaum > 0) und (xRaum < Nirwana) Text '[xRaum]' sonst Wenn (aObj auf xObj) Text 'auf [dem xObj]' Wenn (aObj in xObj) Text 'in [dem xObj]' Wenn (aObj bei xObj) Text 'bei [dem xObj]' Wenn (aObj an xObj) Text 'an [dem xObj]' Ende Text '[x]' Wenn (aObj bewegt) Text 'Bereits bewegt.[x]' Text '[x]' EndeAusfDer Stern nach dem Befehlsnamen definiert ihn als Steuer- oder Meta-Befehl. Er gehört dann nicht zum Spiel selbst, verbraucht keinen Spielzug und kann nicht rückgängig gemacht werden. Andere Meta-Befehle sind z.B. »Ende«, »speichern«, »Knapp«, »Punkte« oder »Manuskript«. Der Zusatz (Allg) in der Syntax-Zeile heißt, dass das Objekt an jedem beliebigen Ort sein kann, der Spieler muss es nicht sehen können. Dieser Zusatz wird im Allgemeinen für Gesprächsthemen oder ähnliches benutzt. Obj Tisch ... VorAusf (empfangen) Bed /(aObj = Scherben) 'Der Tisch ist auschließlich für intakte Mingvasen gedacht.' Bed (aObj = Mingvase) 'Der Tisch ist auschließlich für die Mingvase gedacht.' EndeAusf ObjAttr Wirkung_bekannt ObjKlasse Zaubertrank Plural 'Zaubertränke' p vor 'zauber' subst 'trank' m 'elixier' n Var Wirkung 2 Besch Ausf Wenn (selbst Wirkung_bekannt) dann Text '[Der selbst]' Jenach selbst.Wirkung (1) Text '[hat] eine heilende Wirkung.' (2) Text '[ist] ein Gift.' (3) Text 'still[t] den Hunger.' (sonst) Text '[hat] eine mir unbekannte Wirkung.' Ende sonst Text 'Du hast noch nicht herausgefunden, was [der selbst] bewirkt.' Ende EndeAusf VorAusf (trinken) Text 'Du trinkst [den selbst].' Jenach selbst.Wirkung (1) Text 'Du fühlst dich besser.' Inkr Gesundheit (2) Text 'Du fühlst dich auf einmal ziemlich schlecht.' Dekr Gesundheit Wenn (Gesundheit = 0) dann Text 'In der Tat so schlecht, dass du auf den Boden fällst, und dir den Magen hälst. Kurz darauf stirbst du an dem Gift.' Gestorben Ende (3) Text 'Du fühlst dich satt.' Wenn (Hunger > 0) Dekr Hunger (sonst) Text 'Du fühlst dich... Ja, wie eigentlich? (Hey, du zweitklassiger Programmierer, Wirkung kann nur 1, 2 oder 3 sein!)' Ende ObjNach selbst Nirwana AttrHin selbst Wirkung_bekannt Stop EndeAusf Obj blauer_Trank (Zaubertrank) Name 'blau^ Zaubertrank' m lName 'blau^' m Adj 'blau' Var Wirkung 1 Ort beiMir Obj milchig_Trank (Zaubertrank) Name 'milchig^ Zaubertrank' m lName 'milchig^' m Adj 'milchig' Var Wirkung 3 Ort in SafeDie Hauptsache ist hier wohl die Vor-Ausführung für trinken, die die Wirkung der Heiltränke benutzt. Mit dieser Klassendefinition fallen dann die einzelnen Objektblöcke relativ übersichtlich aus. Als Vokabular muss hier nur die Farbe angegeben werden. Zur Abrundung gibt es ein paar Extras: Anstatt eines Strings kann man für Besch auch einen Ausführungsblock angeben. Das funktioniert auch bei Text, Erst und den Listen Darin, Darauf und Dabei und bei Besch und Name für Räume. Die Bewandtnis von Plural und lName wird genau im Abschnitt 8.4. des Tutoriums beschrieben. Wie man die Wirkung der Tränke herausfindet, ohne sie zu trinken, wird hier leider nicht beschrieben. ObjKlasse rostige_Münze Name 'rostig^ Münze' f Plural 'rostig^ Münzen' p Adj 'rostig' Subst 'münze' f 'münzen' p Besch 'Man kann nicht erkennen, was für eine Münze es einmal war. Ein guatemaltekischer Quetzal? Ein Maria-Theresien-Taler? Oder eine Öresund-Öre von 1782? - Wer weiß.' Obj rostig1 (rostige_Münze) Ort beimir Obj rostig2 (rostige_Münze) Ort in Wäschekorb ... Obj Krügerrand Name 'krügerrand' m Vor 'krüger' Subst 'rand' m 'münze' f Besch 'Unter einem springenden Gnu steht der Wahlspruch "Soli Deo Gloria".' Obj Halfpenny Name 'Halfpenny' m Adj 'halb' Vor 'half' Subst 'penny' m Besch 'Obwohl es nur ein Halfpenny ist, hat er die Form eines ganzen Kreises. Das britische Wappen prangt auf der Rückseite.' Obj Lösungsmittel Name 'Glas mit Lösungsmittel' n Vor 'lösungs' 'rost' Ort Keller Subst 'glas' n 'gefäß' n 'mittel' n Subst 'chemikalie' f Besch 'In dem Glas schwimmt eine türkise Chemikalie, die relativ aggressiv aus/-/ sieht. Laut Etikett ein Rostlösemittel.' VorAusf (empfangen) Bed (aObj rostige_Münze) 'Es ist ein Rostlösemittel. Du tust am besten nur rostige Sachen hinein.' Bed (Handschuhe angezogen) 'Ohne Handschuhe packe ich nicht in diese Brühe!' Jenach aObj (rostig1) Sei xObj Krügerrand (rostig2) Sei xObj Halfpenny (rostig3) Sei xObj Zloty (rostig4) Sei xObj Zechine ... Ende Text 'Du hältst die rostige Münze für einige Zeit in die türkise Lösung. Nachdem der gröbste Rost weg ist, siehst du, dass die Münze [ein xObj] ist.' Tausche aObj xObj EndeAusf Obj Handschuhe Name 'Paar Handschuhe' n subst 'handschuhe' p 'handschuh' m 'paar' n Attr Kleidung Ort angezogen Besch 'Knallgelb, ziemlich dick, und aus Gummi.'Mit der Münzenklasse werden zunächst alle rostigen Münzen erzeugt. Parallel dazu werden die individuellen Münzen erzeugt, die aber im nirgendwo sind. Eine rostige Münze tauscht mit der individuellen den Ort, wenn sie ins Rostlösebad gehalten wird. Dabei ist die Münze, die anfangs bei mir ist, immer der Rand, die im Korb immer der Halfpenny und so weiter. Die Handschuhe sind natürlich nur zum Schutz des Spielers gedacht und haben mit der ursprünglichen Aufgabenstellung nichts zu tun. Flagge Troll_bezahlt Obj Troll Name 'Troll' m Subst 'troll' m Ort Im_Haus Attr Person Besch 'Der Troll ist häßlich, so wie man es von einem Troll erwartet.' Erst 'Ein grimmiger Troll steht hier mitten im Raum.' Dabei 'Er spielt mit [liste 2].' VorReakt (gehen) Bed /(aRitg = r) oder (Troll_bezahlt) '"Halt, Freundchen!", grunzt der Troll, "Wenn Du dort hinunter gehen willst, musst du mir was zum Naschen geben."' EndeAusf VorAusf (gegeben) Bed (aObj Verpflegung) '"Das ist nichts zum Essen. Ich will es nicht", schnarrt der Troll.' ObjNach aObj bei Troll Text '"Danke!", sagt der Troll relativ freundlich.' Setze Troll_bezahlt Stop (fragen erzählen) Stop 'Der Troll brummelt nur vor sich hin.' EndeAusf BefAusf (sonst) Text 'Der Troll brummt unverständliches Zeug.' EndeAusf Flagge Dämon Aktion * Ausf Inkr Dämon Jenach Dämon (4) Wenn (Wanderer hier) Text 'Der Wanderer geht nach Süden' ObjNach Wanderer Vor_dem_Haus Wenn (Wanderer hier) Text 'Der Wanderer kommt aus dem Wald geschlendert.' (6) Wenn (Wanderer hier) Text '"Schöne Blumen!", fühlt sich der Wandersmann ermuntert zu sagen.' (12) Wenn (Wanderer hier) Text 'Der Wanderer betritt das Haus.' ObjNach Wanderer Im_Haus Wenn (Wanderer hier) Text 'Der Wanderer kommt von draußen herein.' ... (46) Wenn (Wanderer hier) Text 'Der Wanderer saugt demonstrativ die frische Waldluft ein.' Ende wenn (Dämon = 48) lösche Dämon EndeAusfSo funktioniert's: Für jeden Zug, in dem etwas geschehen soll, einen Jenach-Block schreiben. Bei der Textausgabe muss man natürlich darauf achten, dass der Wanderer am selben Ort ist, wie der Spieler. Wenn Dämon bis 48 hochgezählt wurde, fängt das ganze Spiel von vorne an. Dabei sollte sichergestellt sein, dass der Wanderer wieder auf der Lichtung ist. Zählvariablen, die jeden Zug hoch- oder herunterzählen, heißen Dämonen, und deshalb habe ich unsere Flagge auch so genannt. Die meisten Systeme haben ein ausgereifteres Konzept dazu, aber was einfach ist, muss ja nicht unbedingt schlecht sein. Wichtig ist, dass man daran denkt, den Dämon in jeder Runde um eins zu erhöhen.
|
Einleitung |