Forum moved to if-forum.org
Autor Nachricht
<  "Du öffnest zuerst die Eingang" und andere Fragen
Mario Donick
BeitragVerfasst am: Mo, 29 Nov 2010 - 11:26  Antworten mit Zitat
Wasserträger
Wasserträger


Anmeldungsdatum: 14.02.2009
Beiträge: 49
Wohnort: Rostock

Mein Problem ist vielleicht nur meiner Blödheit geschuldet, aber folgender Code produziert "die Eingang":

Code:

The PostEntryDoor is a scenery door, south of the PostMainHall and north of the GentryStreet. "Eine gläserne Eingangstür." The printed name of the PostEntryDoor is "Eingang". The PostEntryDoor is closed and female. Understand "Glastuer [f]" and "Eingang [m]" as the PostEntryDoor.

Instead of going south when location is PostMainHall:
   if the PostEntryDoor is closed:
      say "Die Tür ist verschlossen. Da kommst Du nicht durch.";
      stop the action;
   otherwise:
      say "Du gehst durch die Tür";
      move the player to the GentryStreet.

Instead of entering the PostEntryDoor:
   if the PostEntryDoor is closed:
      say "Die Tür ist verschlossen. Da kommst Du nicht durch.";
      stop the action;
   otherwise:
      say "Du gehst durch die Tür";   
      move the player to the GentryStreet.


Ausgabe:

Zitat:

Gentry Street
Das erste Mal G.Str.

>n
(Du öffnest zuerst die Eingang.)

Schalterhalle
Post das allererste Mal besucht


(Bitte nicht von den Platzhaltern für die Beschreibungen irritieren lassen, mir geht es hier um den markierten Teil "die Eingang". Ich habe ja die entsprechende Tür eigentlich als männlich markiert.

Liegt das Problem darin, dass sowohl der printed name als auch das Synonym beide "Eingang" heißen, aber der printed name für ein weibliches Objekt "door" steht?


Zuletzt bearbeitet von Mario Donick am Mo, 29 Nov 2010 - 14:50, insgesamt 3-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
ChristianB
BeitragVerfasst am: Mo, 29 Nov 2010 - 11:47  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg

Hallo Mario!

Bei der Ausgabe des Objektnamens (hier: "die Eingang") wird immer der angegebene Genus des Objekts und der Text des printed name verwendet. PostEntryDoor in deinem Beispiel ist female, der printed name ist "Eingang", also wird erwartungsgemäß "die Eingang" ausgegeben. Deshalb sollte der Objektgenus mit dem angezeigten Namen übereinstimmen.

Vokabeln werden grundsätzlich nicht für die Ausgabe des Objektnamens herangezogen. Sie dienen dazu, die Eingabe des Spielers zu verstehen. Die Genus-Kennzeichnungen bei den Vokabeln, z.B. "Eingang [m]" werden ausschließlich vom Canging-Gender-Mechanismus (CG) verwendet, der die Pronomen für Synonyme mit vom Objektgenus abweichendem Genus korrekt setzt. Also z.B.:

>u tür
Diese Tür ist der Eingang.

>öffne eingang
Der Weg ist jetzt frei.

>schließe ihn
Du schließt die Tür.

In deinem Beispiel bräuchtest du also nur female durch male bei der Definition von PostEntryDoor zu ersetzen und den abweichenden Genus der Vokabel "Glastuer" mit "[f]" zu kennzeichnen. Die Vokabel Eingang benötigt keine CG-Markierung, weil der Genus von "Eingang" dann mit dem Objektgenus (male) übereinstimmt.

Viele Grüße,
Christian
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Martin
BeitragVerfasst am: Mo, 29 Nov 2010 - 11:47  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 25.08.2002
Beiträge: 677
Wohnort: München

Mario Donick hat folgendes geschrieben:
Mein Problem ist vielleicht nur meiner Blödheit geschuldet, aber folgender Code produziert "die Eingang"

Na, Deiner Blödheit gewiss nicht, vielleicht eher der Unübersichtlichkeit von I7. Du schreibst:

The PostEntryDoor is closed and female.

Und damit heißt es dann "die Eingang"; der Eingang ist weiblich. Das [m] in Understand "Eingang [m] as PostEntryDoor bezieht sich nur auf die Eingabe. Wenn Du den Eingang male machst, sollte es richtig "der Eingang" heißen und Du kannst Dir das dann redundante [m] in der Vokabel sparen. (Dort muss man den Genus nur angeben, wenn er vom Genus des Objekts verschieden ist.)

Mario hat folgendes geschrieben:
Liegt das Problem darin, dass sowohl der printed name als auch das Synonym beide "Eingang" heißen, aber der printed name für ein weibliches Objekt "door" steht?

Ja. Die lange Beschreibung "Eine gläserne Eingangstür", die die weibliche "Tür" erwähnt, benötigt keinen Genus, weil sie immer ungebeugt als Block ausgegeben wird.

Die Tür selbst hat den printed name "Eingang". Das ist der Name, der in allen automatisch generierten Ausgabetexten, also zum Beispiel mit [den noun], verwendet wird, und der braucht halt den passenden Genus male.

(Du denkst dort vielleicht auch ohne es zu wollen an die Tür, da Dein Objekt PostEntryDoor heißt.)
_________________
Every silver lining has a cloud.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mario Donick
BeitragVerfasst am: Mo, 29 Nov 2010 - 13:26  Antworten mit Zitat
Wasserträger
Wasserträger


Anmeldungsdatum: 14.02.2009
Beiträge: 49
Wohnort: Rostock

Danke für die Hinweise. Jetzt geht es, mit

Code:

The PostEntryDoor is a scenery door, south of the PostMainHall and north of the GentryStreet. "Eine gläserne Eingangstür."

The printed name of the PostEntryDoor is "Eingang". The PostEntryDoor is closed and male.

Understand "Glastuer [f]", "Tuer [f]", "Eingangstuer [f]" and "Eingang" as the PostEntryDoor.


In der Tat verwirrt mich Inform 7 ziemlich oft, vor allem, wenn ich nach einem halben Jahr Pause wiederkomme. :D
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Mario Donick
BeitragVerfasst am: Mo, 29 Nov 2010 - 14:53  Antworten mit Zitat
Wasserträger
Wasserträger


Anmeldungsdatum: 14.02.2009
Beiträge: 49
Wohnort: Rostock

Und erneut habe ich eine Frage zu Türen (wahrscheinlich kommen die Tage noch diverse, denn ich habe gerade Urlaub ...)

Folgender Code:

Code:

The SchoolYardNorthernDoor is a scenery door, south of the SchoolHall and north of the SchoolYard. "Eine hölzerne Tür zum Hof."

The printed name of the SchoolYardNorthernDoor is "Tür zum Hof". The SchoolYardNorthernDoor is closed and female.

Understand "Hoftuer", "Tuer" and "Tuer zum Hof" as the SchoolYardNorthernDoor.


produziert u.a. folgendes Ergebnis:

Zitat:

>s
Die Tür zum Hof ist verschlossen. Da komme ich nicht durch.

>öffne tür
Was meinst du, den Eingang oder die Tür zum Hof?

>öffne die tür zum hof
So etwas kann ich hier nicht sehen


Wieso?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
ChristianB
BeitragVerfasst am: Mo, 29 Nov 2010 - 15:15  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg

Verschmelzungen von Präpositionen und Artikeln werden vor dem Parsen aufgelöst, d.h. "zum" in der Spielereingabe wird nach "zu dem" umgewandelt.

Understand "Tuer zu dem Hof" as SchoolYardNorthernDoor.

Verstanden werden nun U TÜR ZUM HOF und U TÜR ZU DEM HOF.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mario Donick
BeitragVerfasst am: Di, 30 Nov 2010 - 9:10  Antworten mit Zitat
Wasserträger
Wasserträger


Anmeldungsdatum: 14.02.2009
Beiträge: 49
Wohnort: Rostock

Danke!

Hier kommt die nächste Frage:

Code:

CharWhitemoore is a woman. "Eine alte Frau." The printed name of CharWhitemoore is "Mrs Whitemoore". Understand "Frau", "Alte Frau", "Frau Whitemoore", "Mrs Whitemoore" and "Whitemoore" as CharWhitemoore.

Instead of asking CharWhitemoore about "[CharWhitemoore]":
   say "Ich bin eine alte, müde Frau.".

Instead of asking CharWhitemoore about "[CharAnn]":
   say "Ann? Das ist Ihre Schwester. Ich erinnere mich gut daran, wie sie als Kind Blätter von dem Baum im Schulhof abgerissen hat.".

CharAnn is a woman. "Eine junge Frau." The printed name of CharAnn is "Ann". Understand "Ann", "Frau", "Junge Frau" and "Meine Schwester" as CharAnn.



Während die Eingabe von "frage frau whitemoore nach frau whitemoore" so funktioniert, wie gedacht (dass sie nämlich über sich selbst sagt, nur eine alte, müde Frau zu sein), geht das mit Ann nicht.

Und erneut frage ich mich, wieso? Ich könnte natürlich "Ann" einfach so hinschreiben, aber mit dem Verweis auf CharAnn will ich dem Nutzer erlauben, die diversen Synonyme für Ann zu nutzen ... (auch wenn es sicher noch schwierig wird, "Frau" und "Frau" auseinanderzuhalten, wie ich gerade sehe).
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Mikawa
BeitragVerfasst am: Di, 30 Nov 2010 - 9:37  Antworten mit Zitat
Abenteurer
Abenteurer


Anmeldungsdatum: 03.09.2009
Beiträge: 453
Wohnort: Cham

Ehrlich gesagt, wundert es mich, warum das überhaupt geht.
Es funktioniert immer, wenn das Objekt der Gefragte ist. Sonst nicht.

[CharAnn] gibt in say-texten den printed name des Objekts in Klammern aus. Als understand-Definition habe ich das so noch nie gesehen.

Eine saubere Implementierung des Fragens nach Objekten kannst Du nur mit einer Neudefinition des ganzen Frage- und Antwortmechanismus erreichen.

Dazu gibt es aber schon Extensions, die das handeln, z.B. "Conversation Framework" von Eric Eve. Hier werden neue Aktionen definiert, die das Fragen nach Objekten ermöglichen.

http://inform7.com/extensions/Eric%20Eve/Conversation%20Framework/index.html

Die korrekte Schreibweise wäre nach Einbinden der Extension z.B.:

Instead of quizzing CharAnn about CharAnn:
say "...";

Das hat den großen Vorteil, dass alle Synonyme mit abgedeckt sind, so wie es Deine Absicht ist.

-- MI
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mario Donick
BeitragVerfasst am: Di, 30 Nov 2010 - 9:52  Antworten mit Zitat
Wasserträger
Wasserträger


Anmeldungsdatum: 14.02.2009
Beiträge: 49
Wohnort: Rostock

Oh, das ist eine interessante Antwort, und wenn das so ist, dann wundert mich das Funktionieren bei Mrs. Whitemoore auch. Ich werde mal deinen Hinweis mit der Extension beherzigen. :)

Edit: Hm, okay, so einfach ist es dann doch nicht, weil die Extension ja auf Englisch ist und der Spielerbefehl "frag nach" dann nicht so einfach funktioniert ... Mal gucken.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
ChristianB
BeitragVerfasst am: Di, 30 Nov 2010 - 11:17  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg

Mikawa hat folgendes geschrieben:
Ehrlich gesagt, wundert es mich, warum das überhaupt geht.
Es funktioniert immer, wenn das Objekt der Gefragte ist. Sonst nicht.


"[CharWhitemoore]" wird in Marios Beispiel als Understand-Token (Noun-Filter) interpretiert, erlaubt sind aber, wenn man keine Conversation-Extensions benutzt, nur Topics (Texte). Eigentlich darf NI das nicht durchwinken und es sollte ein Problem-Bericht ausgegeben werden. Das sieht nach einem I7-Bug aus.

Hier hat sich Inform 7 anscheinend selbst ausgetrickst: Die Schreibweise "[CharWhitemoore]" wird in say-Texten zur Ausgabe des Objektnamens ohne Artikel verwendet; dann ist es eine Textersetzung (eine Print-Routine). Die gleiche Schreibweise wird auch für Understand-Tokens benutzt:

Understand "Ann", "Frau", and "jung" as "[CharAnn]".

Zudem verwendet I7 für Topics, Teile der Spielereingabe (Snippets), Ausgabetexte und Vokabeln die gleiche Schreibung mit Anführungszeichen ("Ann"), obwohl es sich hinter den Kulissen um völlig unterschiedliche Dinge handelt.

Compiler verwirrt. Autor auch.

Mikawa hat folgendes geschrieben:
Dazu gibt es aber schon Extensions, die das handeln, z.B. "Conversation Framework" von Eric Eve.


Gibt es schon irgendwo eine Übersetzung des "Conversation Frameworks"?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mario Donick
BeitragVerfasst am: Di, 30 Nov 2010 - 11:53  Antworten mit Zitat
Wasserträger
Wasserträger


Anmeldungsdatum: 14.02.2009
Beiträge: 49
Wohnort: Rostock

Zitat:
Compiler verwirrt. Autor auch.


:-) Vielleicht hat das auch mit der Umgewöhnung zu tun - ich bin normale Programmiersprachen gewohnt, mit einer abstrakten Syntax, bei der man genau weiß, was geht und was nicht.

Inform 7 verleitet dazu, Sachen schreiben zu wollen, die nicht unbedingt Sinn machen. Die eingebaute Doku ist da auch nicht immer hilfreich, da sie sich eher an komplett Unerfahrene richtet und das, was ich wissen will, schwer zu finden ist ("Inform 7 for Programmers" von Ron Newcomb hilft da aber gegen.)

Mittlerweile experimentiere ich mit der Schrägstrich-Schreibweise, die in der Inform 7 Doku u.a. für Topic-Tabellen genutzt wird:

Aber so richtig klappt das auch nicht, z.B. erlaubt mir

Code:

Ask CharWhitemoore about "Ann/Schwester/meiner Schwester"


den Befehl:

"Frage die Frau nach meiner Schwester", aber nicht "Frage die Frau nach Ann".


Schreibe ich hingegen

Code:

Ask CharWhitemoore about "Ann/Schwester"


dann kann ich sowohl nach "Ann" als auch nach "Schwester" fragen.


Es scheint also entweder ein Limit zu geben bzgl. der Länge des Strings, oder der Anzahl der durch / getrennten Begriffe, oder der Nutzung von Leerzeichen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
jorl
BeitragVerfasst am: Di, 30 Nov 2010 - 12:03  Antworten mit Zitat
Wasserträger
Wasserträger


Anmeldungsdatum: 02.11.2010
Beiträge: 90
Wohnort: Schkeuditz

Mario Donick hat folgendes geschrieben:
Code:

Ask CharWhitemoore about "Ann/Schwester/meiner Schwester"


So kannst Du fragen nach:
Ann Schwester
Schwester Schwester
meiner Schwester

Durch das Leerzeichen muss die zweite Schwester immer dabei sein.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mikawa
BeitragVerfasst am: Di, 30 Nov 2010 - 12:11  Antworten mit Zitat
Abenteurer
Abenteurer


Anmeldungsdatum: 03.09.2009
Beiträge: 453
Wohnort: Cham

was nicht wirklich Sinn macht. Du musst wohl oder übel die Zeile komplett trennen:

Code:


Instead of asking CharWhitemoore about "Ann/Schwester":
   say "Ann? Das ist Ihre Schwester. Ich erinnere mich gut daran, wie sie als Kind Blätter von dem Baum im Schulhof abgerissen hat.".

Instead of asking CharWhitemoore about "meiner Schwester":
   say "Ann? Das ist Ihre Schwester. Ich erinnere mich gut daran, wie sie als Kind Blätter von dem Baum im Schulhof abgerissen hat.".



oder eben besagte Erweiterung verwenden oder eine eigene schreiben. Konversation ist das komplexeste Element in Textadventures.

-- MI
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
jorl
BeitragVerfasst am: Di, 30 Nov 2010 - 13:04  Antworten mit Zitat
Wasserträger
Wasserträger


Anmeldungsdatum: 02.11.2010
Beiträge: 90
Wohnort: Schkeuditz

Gibt es keine Möglichkeit das Leerzeichen irgendwie zu maskieren?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
StJohn Limbo
BeitragVerfasst am: Mi, 1 Dez 2010 - 5:09  Antworten mit Zitat
Wasserträger
Wasserträger


Anmeldungsdatum: 08.11.2010
Beiträge: 48
Wohnort: Lüneburger Heide

Man kann ein neues Token definieren (wie Christian schon geschrieben hat) und dabei zur Verkürzung die Schrägstrich-Variante plus or plus "Wort1 Wort2" nehmen:

Code:
Understand "Ann/Schwester" or "meine/meiner Schwester" or "junge/junger Frau" as "[ThemaAnn]".

[Dieses neue Token kann jetzt in Regeln benutzt werden:]

Instead of asking CharWhitemoore about "[ThemaAnn]":
   say "'Ann? Das ist Ihre Schwester. Ich erinnere mich gut daran, wie sie als Kind Blätter von dem Baum im Schulhof abgerissen hat.'".

[Das Token ist natürlich wiederverwendbar, das spart Tipperei:]

Instead of asking CharNochEinNPC about "[ThemaAnn]":
   say "'Ich habe Ann schon lange nicht mehr gesehen,' sagt der Mann wehmütig.".


Vgl. Dokumentation Kap. 7.6 (Bsp. 91, "Sybil 1") und Kap. 16.13.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Alle Zeiten sind GMT + 1 Stunde (MEZ)

Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Seite 1 von 1
if-de :: Forum Foren-Übersicht  >  Inform & Glulx

Neues Thema eröffnen   Neue Antwort erstellen


 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.



Kontakt: Administrator

Powered by phpBB and NoseBleed v1.05