IF-Forum

» IF-Forum - Autorencafé - Schreiben! - Überschreiben deutscher (GerX) understand Definitionen
AntwortenNeues ThemaNeue Umfrage

Überschreiben deutscher (GerX) understand Definitionen

Geschrieben um 00:22 am 19.04.2016 | Zitat | Editieren | Löschen
Wilson
Mitglied
Baby Gumby
Beiträge: 8

Hallo Alle,

"lies [something]" is in GerX umgeleitet auf examining. Was muss ich tun, damit inform "lies Buch" und "untersuche Buch" als zwei verschiedenen Aktionen auffassen kann?

ich habe "reading is an action applying to one thing. understand "lies [something]" as reading" versucht und check und carry out rules für reading definiert. "lies Buch" leitet aber immer auf die standard examining rule um. Wie kann ich sozusagen meiner "lies" Definition Vorrang verschaffen?

Danke

Wilson

Geschrieben um 01:22 am 19.04.2016 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Moin Wilson,

Das Verb "lies" und dessen Synonym "les" werden für eine ganze Reihe von Satzmustern verwendet, wie du im Index der Inform-Umgebung nachsehen kannst.

Alle Satzmuster zu löschen ist wohl wenig sinnvoll, da auch "lies etwas auf" (-> Nehmen) und die ganzen Consult-Satzmuster der Löschung zum Opfer fielen. Trotzdem könntest du alle Satzmuster für das Verb "lies" so löschen:

blue

Um etwas chirurgischer vorzugehen, empfiehlt es sich in deinem Fall wohl eher, nur die Satzmuster, die die Aktion Examining triggern, zu ändern:

blue

In diesem Fall braucht "les" nicht als Synonym zu "lies" definiert werden, deshalb habe ich es auskommentiert, aber zur Erinnerung noch mal dazu geschrieben. Die [dativ]-Token sind wichtig, damit der Parser im Falle einer unvollständigen Spielereingabe die Nachfrage korrekt formulieren kann, z.B. "Worin willst du lesen?" anstatt "Worein willst du lesen?".

Ich hoffe, das hilft.

Viele Grüße

Christian

Geschrieben um 02:01 am 19.04.2016 | Zitat | Editieren | Löschen
Wilson
Mitglied
Baby Gumby
Beiträge: 8

Vielen Dank!

Allerdings funktioniert es bei mir nicht. Ich habe Folgendes geschrieben:

Understand the command "lies [something]" as something new.

Understand "lies [something]" as reading.

reading is an action applying to one thing.

Check reading the closed letter:

say "Der Brief ist noch verschlossen. Du kannst den Inhalt auch durch den Umschlag nicht erkennen." instead.

Carry out reading the open letter:

Increase score by 100.

Wenn ich nun "lies den Brief" eingebe, dann bekomme ich als Antwort die description von letter; das ist die standard examination rule, nicht meine reading rule.

(letter is a thing that is either open or closed).

Der Index enthält nun auch beide actions:

"lies [something]" - Examining

"lies [something]" - reading

Die erste Definition von GerX, die zweite von mir. Die Verweisung auf examining is anscheinend nicht entfernt worden.

Was mache ich falsch?

Geschrieben um 09:37 am 19.04.2016 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Na gut, das scheint so nicht zu gehen. Man kann tatsächlich nur ganze Verb-Blöcke überschreiben, was beim Verb "lies" schon eine Zumutung ist.

Vielleicht gibt es ja noch eine schönere Lösung, hier erst mal die Definitionen von lies:

blue

Geschrieben um 11:43 am 19.04.2016 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Anstatt wie oben an der Syntax zu schrauben und alles neu zu definieren, könntest du auch die Semantik für das Lesen von bestimmten Objekten verfeinern:

blue

Das ist vielleicht die bessere Variante, weil dann auch "lies" für andere Objekte verstanden wird, z.B. "lies die Spuren".

Geschrieben um 16:58 am 19.04.2016 | Zitat | Editieren | Löschen
Wilson
Mitglied
Baby Gumby
Beiträge: 8

Vielen, vielen Dank!

Das war eine super schnelle und sehr gute Antwort.

Letzterer Post bedeutet, dass Inform eine speziellere Understand-Definition einer allgemeineren vorzieht?

Geschrieben um 17:08 am 19.04.2016 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Wilson:

Letzterer Post bedeutet, dass Inform eine speziellere Understand-Definition einer allgemeineren vorzieht?

Ja, genau. Das gilt grundsätzlich: Der Parser arbeitet sich vom speziellsten Fall hoch zum allgemeinsten. Auch die Regelbücher (rulebooks) funktionieren so, wenn ich mich richtig erinnere. Die Regelwerke für die Aktionen sind aber auch noch mal unterteilt in Standard-Regelbücher (Check, Carry out, Report), die für jede Aktion definiert sind (oder für neue Aktionen definiert werden müssen) und die analog dazu existierenden Regelbücher für Spezialfälle im Spiel (Before, Instead, After).

AntwortenNeues ThemaNeue Umfrage
Powered by Spam Board SVN © 2007 - 2021
Impressum / Datenschutz