Forum moved to if-forum.org
Autor Nachricht
<  I7 und GerX Fragen
jorl
BeitragVerfasst am: Mi, 10 Nov 2010 - 12:42  Antworten mit Zitat
Wasserträger
Wasserträger


Anmeldungsdatum: 02.11.2010
Beiträge: 90
Wohnort: Schkeuditz

OK, Danke für den Tipp. Bis jetzt haben meine Tests damit funktioniert. (Chaper 3.24. schränkt die Nutzung auch ziemlich auf tragbare/bewegbare Dinge ein, aber das passt ja bei meinem Beispiel)

Mit scenery ist das aber auch ein ganz schönes Gewurschtel und selbst die Doku sagt
Zitat:
Being immobile, scenery should not be used for portable objects that are meant to be left out of the room description.
Damit hatte es zwar funktioniert, aber wer weiß welche Nebeneffekte ich dabei übersehe.

Ich könnte auch den Apfel als Teil des Baumes machen und dann eine Rule for deciding the concealed possessions schreiben, aber den "Rules"-Abschnitt der Doku habe ich noch nicht gelesen ;-) Ich arbeite mich langsam durch.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ChristianB
BeitragVerfasst am: Mi, 10 Nov 2010 - 12:53  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg

jorl hat folgendes geschrieben:
Mit scenery ist das aber auch ein ganz schönes Gewurschtel und selbst die Doku sagt ...


Och, eigentlich kann man da ganz einfach eingreifen:

The apple is scenery.

Before taking the apple when the apple is scenery: now the apple is not scenery; now the apple is portable.


Damit deckt man auch gleich removing ab.

Edit: "described"/"undescribed" ist aber seit dem letzten I7-Release dokumentiert, habe ich gerade gesehen. Gut möglich, dass Probleme im Zusammenhang mit dieser Eigenschaft behoben wurden.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
jorl
BeitragVerfasst am: Mi, 24 Nov 2010 - 10:58  Antworten mit Zitat
Wasserträger
Wasserträger


Anmeldungsdatum: 02.11.2010
Beiträge: 90
Wohnort: Schkeuditz

Mit ist noch etwas aufgefallen: [a list of visible other things with nominative] liefert bei Teilen von Personen beispielsweise:
Code:
eine Zipfelmütze des Gartenzwergs

Der Zwerg ist ein man und die Mütze ein Teil des Zwerges. Ich würde hier eher erwarten "die(!) Zipfelmütze des Zwerges" so wie "die(!) Nase des Mannes".

Könnte man hier den Standard anpassen oder übersehe ich etwas und sollte lieber die Liste selber bauen?

Außerdem wäre es schön, wenn Dinge die Teil eines anderen Dinges sind, direkt dahinter aufgezählt würden und nicht (scheinbar zufällig) gemischt mit allen anderen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ChristianB
BeitragVerfasst am: Mi, 24 Nov 2010 - 11:52  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg

jorl hat folgendes geschrieben:
Mit ist noch etwas aufgefallen: [a list of visible other things with nominative] liefert bei Teilen von Personen beispielsweise:

eine Zipfelmütze des Gartenzwergs


Das ist völlig korrekt so. [a list of ... ] schreibt eine Liste mit unbestimmtem Artikel, daher das "eine Zipfelmütze". Um eine Liste mit bestimmtem Artikel zu erzeugen, muss [the list of ... ] verwendet werden; das müsste dann "die Zipfelmütze" schreiben (falls nicht, ist das ein Bug!).

Analog dazu gibt es noch die Listen mit großem Anfangsbuchstaben:

[A list of ...]
[The list of ...]


Siehe hierzu auch:

http://ifiction.pageturner.de/inform7/gerxdoku.html#docsec32d
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Martin
BeitragVerfasst am: Mi, 24 Nov 2010 - 13:14  Antworten mit Zitat
Experte
Experte


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

jorl hat folgendes geschrieben:
Der Zwerg ist ein man und die Mütze ein Teil des Zwerges. Ich würde hier eher erwarten "die(!) Zipfelmütze des Zwerges" so wie "die(!) Nase des Mannes".

Beides ist ja denkbar: sowohl eine Zipfelmütze des Zwergs (der Zwerg hat 27 Zipfelmützen) als auch die Zipfelmütze des Zwergs (er hat nur eine, und der Gnom hat eine eigene).

Was genau gemeint ist, kann GerX nicht wissen. Wenn Du statt des unbestimmten Artikels immer einen bestimmten verwenden willst, kannst Du das so machen:

The special indefinite article of the cap is DEFINITE ARTICLE.
_________________
Every silver lining has a cloud.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
jorl
BeitragVerfasst am: Mi, 24 Nov 2010 - 15:03  Antworten mit Zitat
Wasserträger
Wasserträger


Anmeldungsdatum: 02.11.2010
Beiträge: 90
Wohnort: Schkeuditz

Naja, selbst wenn der Gnom auch eine Mütze hätte, dann wären beide jeweils "eine Mütze", aber beim Auflisten eben "die Mütze des Zwerges" und "die Mütze des Gnomes", ebenso im Plural "die Mützen des Zwerges".
Analog zu Körperteilen.

Nur bestimmte Artikel in einer Afzählung wie der folgenden sind auch nicht so schön:
Code:
Hier sind ein Spaten, ein Tor, Rosen, Veilchen, ein Gartenzwerg, ein Apfel und eine Zipfelmütze des Gartenzwergs.

Aber das ist natürlich schon ein sehr spezieller Fall. Ich werde mich mal selbst an einer Liste versuchen. (Ich habe dazu von Christian auch schon einige Anmerkungen per Mail erhalten.)

Edit:
Ich habe nochmal darüber nachgedacht. Du hast Recht. Der Zwerg könnte auch zwei einzelne Mützenobjekte besitzen und damit fällt meine ganze Argumentation.

Ich teste mal: Every zwerg has a mütze.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
jorl
BeitragVerfasst am: So, 28 Nov 2010 - 13:46  Antworten mit Zitat
Wasserträger
Wasserträger


Anmeldungsdatum: 02.11.2010
Beiträge: 90
Wohnort: Schkeuditz

Ich habe Probleme beim Zusammenfassen von Aktionen. Ich wollte gern etwas wie folgendes machen:
Code:
Instead of touching the chair or touching the table:
    say "Du fühlst die Maserung des Holzes.".

Das geht aber nicht. Ich kann das natürlich auch einzeln schreiben, wüßte aber gern wie man das richtig zusammenfassen kann.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ChristianB
BeitragVerfasst am: So, 28 Nov 2010 - 14:43  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg

Man kann zwei Rules nicht in einer einzigen zusammenfassen. Das hat, soweit ich das verstehe, etwas mit der Struktur der Rulebooks zu tun.

Deine Instead-Regel müsste wohl in ein weniger spezielles Regelbuch geschrieben werden, wo dann das Objekt näher betrachtet wird.

Instead of touching something (called the feely): if the feely is the chair or the feely is the table, say "Du fühlst die Maserung des Holzes."; otherwise continue the action.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
jorl
BeitragVerfasst am: Mo, 29 Nov 2010 - 10:20  Antworten mit Zitat
Wasserträger
Wasserträger


Anmeldungsdatum: 02.11.2010
Beiträge: 90
Wohnort: Schkeuditz

Mmh, ich dachte das klappt, weil es das selbe Verb ist. Beim selben Objekt funktioniert es ja (instead of pushing or touching the chair ...). Schade.
Bei "something" ist die Regel dann ziemlich allgemein und da sehe ich trotz action-index irgendwann nicht mehr richtig durch, was eigentlich warum passiert. Für mein einfaches Problem wird es wohl das beste sein ich schreibe das getrennt für Tisch und Stuhl.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ChristianB
BeitragVerfasst am: Mo, 29 Nov 2010 - 10:32  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg

jorl hat folgendes geschrieben:
Mmh, ich dachte das klappt, weil es das selbe Verb ist. Beim selben Objekt funktioniert es ja (instead of pushing or touching the chair ...).


Aha! Das geht also doch. Na dann kannst du es so machen, wie du ursprünglich vorhattest:

Instead of touching when the noun is the bed or the noun is the chair: say "Du fühlst die Maserung des Holzes.".

Irgendwann begreife ich I7 vielleicht auch noch mal. Irgendwann.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mikawa
BeitragVerfasst am: Mo, 29 Nov 2010 - 11:11  Antworten mit Zitat
Abenteurer
Abenteurer


Anmeldungsdatum: 03.09.2009
Beiträge: 453
Wohnort: Cham

Oder ein anderer Vorschlag (falls im Spielverlauf noch mehr Gegenstände dazukommen, die hölzern sind)

Code:


A thing can be wooden.
The chair is a wooden thing.
The table is a wooden thing.

Instead of touching something wooden:
    say "Du fühlst die Maserung des Holzes.".



Nach meiner Erfahrung mit meinem Erstlingswerk passiert das rasend schnell, wenn man an der Geschichte weiterschreibt und irgendwann wird dann die Abfrage nach Einzelobjekten mehrere Zeilen lang und sehr unübersichtlich.

-- MI
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
jorl
BeitragVerfasst am: Mo, 29 Nov 2010 - 22:25  Antworten mit Zitat
Wasserträger
Wasserträger


Anmeldungsdatum: 02.11.2010
Beiträge: 90
Wohnort: Schkeuditz

Danke. Wieder etwas gelernt.

Ich habe nun endlich [dativ] in meinen eigenen Aktionen nachgetragen. Dabei hat sich das Verhalten des Parsers, aber auch unerwünscht geändert.
Code:
Sparkling it with is an action applying to two things.
Understand "giess [something] mit [dativ] [other thing]" as sparkling it with.
Understand "giess [something] auf [other thing]" as sparkling it with (with nouns reversed).

Does the player mean sparkling the vegetable patch with the old bucket:
   it is very likely.


Ohne [dativ] führt: "giess beet" korrekt zu:
(mit dem Eimer)
Du gießt das Gemüsebeet mit dem Eimer.


Nun passiert aber folgendes:
Worauf willst Du das Gemüsebeet gießen?

Es wird jetzt offenbar die zweite "Understand"-Version bevorzugt. Was zum Tauschen der Substantive führt und damit greift auch die "likely"-Anweisung nicht mehr korrekt. Das ist zumindest meine Vermutung. Die Frage ist nun, wie kann ich das beeinflussen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
jorl
BeitragVerfasst am: Mo, 29 Nov 2010 - 22:33  Antworten mit Zitat
Wasserträger
Wasserträger


Anmeldungsdatum: 02.11.2010
Beiträge: 90
Wohnort: Schkeuditz

und noch ein Problem mit einer neuen Aktion bzw. mit der automatischen Vervollständigung von Eingaben des Spielers:

Code:
Digging it with is an action applying to two things.
Understand "grab [something] mit [dativ] [other thing]" as digging it with.
Understand "grab [something] um mit  [dativ] [other thing]" as digging it with.
Understand "grab [something] mit [dativ] [other thing] um" as digging it with.


das funktioniert:
>grabe beet
(mit dem Spaten)
Die Erde ist locker genug.

aber das leider nicht:
>grabe mit spaten
So etwas kannst Du hier nicht sehen.

Irgendwie muss es aber gehen, da z.B. "öffne mit schlüssel" auch zu einer sinnvollen Frage wie "Was willst Du mit dem Schlüssel öffnen?" führt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ChristianB
BeitragVerfasst am: Mo, 29 Nov 2010 - 23:59  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg

Fall 1:

jorl hat folgendes geschrieben:
Ohne [dativ] führt: "giess beet" korrekt zu:
(mit dem Eimer)
Du gießt das Gemüsebeet mit dem Eimer.

Nun passiert aber folgendes:
Worauf willst Du das Gemüsebeet gießen?


Ich habe zum Testen folgende Aktion definiert (ohne das von dir definierte Adjektiv "other"):

Sparkling it with is an action applying to two things.
Understand "giess [something] mit [dativ] [something]" as sparkling it with.
Understand "giess [something] auf [something]" as sparkling it with (with nouns reversed).

Report sparkling: say "Du gießt [den noun] mit [dem second noun]."


Wenn man sich die Grammar-Lines genauer ansieht ...

Mein Testspiel hat folgendes geschrieben:
>showverb giess
Verb 'giess'
* noun 'auf' noun -> A96_sparkling_it_with reverse
* noun 'mit' Routine(23322) noun -> A96_sparkling_it_with

... erkennt man: Das Satzmuster mit "auf" wird als erstes von I7 angelegt, sodass auch diese Syntax zum Erzeugen der Parser-Nachfrage oder zum Vervollständigen des Kommandos (in Klammern) herangezogen wird, wenn ein Substantiv fehlt. Das ist meiner Meinung nach eine der übelsten Einschränkungen, mit der wir uns als GerX-Nutzer so rumplagen müssen! Es gibt für uns keine offizielle Möglichkeit, die Reihenfolge der Grammar-Lines zu beeinflussen, noch nicht zumindest. Es gibt aber einen dreckigen Trick: Man muss Inform mit einer sinnlosen Definition einen Spezialfall vorgaukeln, denn je spezieller das Satzmuster, desto früher wird es angeordnet.

Leider funktioniert das nicht, wenn das Dativ-Token im Spiel ist. Warum das so ist, kann ich mir nicht recht erklären (vielleicht hält I7 das Dativ-Token, das eine "general parsing routine" (GPR) ist, für weniger speziell als ein Objekt). Selbst wenn ich dem System einen simulierten Spezialfall präsentiere ...

Definition: a thing is thingy: yes.

Understand "giess [something thingy] mit [dative] [something]" as sparkling it with.


... ordnet der I7-Compiler die Grammar-Line nicht an erster Stelle ein. Eigenwilliges Biest!

Wie immer, wenn ich an I7 zu verzweifeln drohe, rufe ich Inform 6 zu Hilfe. Da gibt es eine Verben-Erweiterungsoption "first", genau das, was wir brauchen. Also noch mal von vorn:

Sparkling it with is an action applying to two things.
Understand "giess [something] mit [dative] [something preferably held]" as sparkling it with.
Understand "giess [something preferably held] auf [something]" as sparkling it with (with nouns reversed).
Report sparkling: say "Du gießt [den noun] mit [dem second noun]."

The sparkling it with action translates into I6 as "SparkleWith".

Include (-
Extend 'giess' first
* noun 'mit' DATIVE_TOKEN held -> SparkleWith
;
-) before "Flex.i6t". [Dies ist irgendwo nach den I7-Verbendefinitionen.]


Dies fügt die zweite Grammar-Line noch einmal ein, nur an erster Stelle.

Wenn du kein implizites Nehmen durch das held-Token (something preferably held) wünscht, sondern nur [something], "held" durch "noun" ersetzen :

Include (-
Extend 'giess' first
* noun 'mit' DATIVE_TOKEN noun -> SparkleWith
;
-) before "Flex.i6t". [Dies ist irgendwo nach den I7-Verbendefinitionen.]


Das ist eine absolute Notlösung, funktioniert aber. Und nun schnell wieder raus aus dem Grenzgebiet ...


Fall 2:

jorl hat folgendes geschrieben:
das funktioniert:
>grabe beet
(mit dem Spaten)
Die Erde ist locker genug.

aber das leider nicht:
>grabe mit spaten
So etwas kannst Du hier nicht sehen.


Die Satzmuster mit "mit" direkt nach dem Verb fehlen:

Understand "grab mit [something] in [something]" as digging it with.
Understand "grab mit [something] [something]" as digging it with.


Dann sollte es funktionieren.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
jorl
BeitragVerfasst am: Di, 30 Nov 2010 - 11:32  Antworten mit Zitat
Wasserträger
Wasserträger


Anmeldungsdatum: 02.11.2010
Beiträge: 90
Wohnort: Schkeuditz

Diese ausführlichen Erläuterungen zu Fall1 führen mich mal zu der generellen Frage: Lohnt sich das Einarbeiten in Inform 6? Inform7 hat für mich so angezogen, weil es mal etwas anderes ist. Allerdings habe ich nun immer mehr das Gefühl, damit nicht alles in der Hand zu haben (viel Magie im Hintergrund), was ich so vom Programmieren nicht gewöhnt bin.

zu Fall 2: Funktioniert. Danke.
Verstehe ich das richtig, dass die Vervollständigung nur klappt wenn das fehlende Objekt, das zweite ist (also das am weitesten rechts im Satz)?
Kann man auch "Einschubwörter" als optional kennzeichnen? Bei meinem Grabe-Beispiel wäre das das "um". Das ändert nichts an der Wortreihenfolge und muss auch nicht zwingend eingegeben werden.
Understand "grab [something] mit [dativ] [something preferably held]" as digging it with.
Understand "grab [something] um mit [dativ] [something preferably held]" as digging it with.
Understand "grab [something] mit [dativ] [something preferably held] um" as digging it with.
Understand "grab mit [something preferably held] [dativ] [something]" as digging it with (with nouns reversed).
Understand "grab mit [something preferably held] [dativ] [something] um" as digging it with (with nouns reversed).
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Alle Zeiten sind GMT + 1 Stunde (MEZ)

Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Seite 2 von 3
Gehe zu Seite Zurück  1, 2, 3  Weiter
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