IF-Forum

» IF-Forum - Autorencafé - Schreiben! - I7 und GerX Fragen
AntwortenNeues ThemaNeue Umfrage
» Mehrere Seiten: 12

I7 und GerX Fragen

Geschrieben um 16:03 am 24.11.2010 | Zitat | Editieren | Löschen
jorl
Mitglied
Master Gumby
Beiträge: 99

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: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.

Geschrieben um 14:46 am 28.11.2010 | Zitat | Editieren | Löschen
jorl
Mitglied
Master Gumby
Beiträge: 99

Ich habe Probleme beim Zusammenfassen von Aktionen. Ich wollte gern etwas wie folgendes machen:



    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.
Geschrieben um 15:43 am 28.11.2010 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

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.

blue

Geschrieben um 11:20 am 29.11.2010 | Zitat | Editieren | Löschen
jorl
Mitglied
Master Gumby
Beiträge: 99

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.

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

jorl:

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:

blue

Irgendwann begreife ich I7 vielleicht auch noch mal. Irgendwann.

Geschrieben um 12:11 am 29.11.2010 | Zitat | Editieren | Löschen
Mikawa
Avatar
Mitglied
Prof Gumby
Beiträge: 327

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


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

Geschrieben um 23:25 am 29.11.2010 | Zitat | Editieren | Löschen
jorl
Mitglied
Master Gumby
Beiträge: 99
<td valign="top"><div class="post"><p>Danke. Wieder etwas gelernt.</p> <p>Ich habe nun endlich blue in meinen eigenen Aktionen nachgetragen. Dabei hat sich das Verhalten des Parsers, aber auch unerwünscht geändert.```Sparkling it with is an action applying to two things.</p> <p>Understand &quot;giess &#91;something&#93; mit &#91;dativ&#93; &#91;other thing&#93;&quot; as sparkling it with.</p> <p>Understand &quot;giess &#91;something&#93; auf &#91;other thing&#93;&quot; as sparkling it with &#40;with nouns reversed&#41;.</p> <p>Does the player mean sparkling the vegetable patch with the old bucket&#58;</p> <p>   it is very likely.```</p> <p>Ohne blue führt: &quot;giess beet&quot; korrekt zu:</p> <p>blue</p> <p>Nun passiert aber folgendes:</p> <p>blue</p> <p>Es wird jetzt offenbar die zweite &quot;Understand&quot;-Version bevorzugt. Was zum Tauschen der Substantive führt und damit greift auch die &quot;likely&quot;-Anweisung nicht mehr korrekt. Das ist zumindest meine Vermutung. Die Frage ist nun, wie kann ich das beeinflussen?</p></div></td>
Geschrieben um 23:33 am 29.11.2010 | Zitat | Editieren | Löschen
jorl
Mitglied
Master Gumby
Beiträge: 99

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



Understand "grab &#91;something&#93; mit &#91;dativ&#93; &#91;other thing&#93;" as digging it with.

Understand "grab &#91;something&#93; um mit  &#91;dativ&#93; &#91;other thing&#93;" as digging it with.

Understand "grab &#91;something&#93; mit &#91;dativ&#93; &#91;other thing&#93; 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.
Geschrieben um 00:59 am 30.11.2010 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Fall 1:

jorl:

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"):

blue

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

Mein Testspiel:

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 ...

blue

... 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:

blue

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 :

blue

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

Fall 2:

jorl:

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:

blue

Dann sollte es funktionieren.

Geschrieben um 12:32 am 30.11.2010 | Zitat | Editieren | Löschen
jorl
Mitglied
Master Gumby
Beiträge: 99

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.

blue

Geschrieben um 12:59 am 30.11.2010 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

jorl:

Lohnt sich das Einarbeiten in Inform 6?

Man kann mit I6 und deform gut arbeiten. Aber auch hier ist Programmiererfahrung nicht immer von Vorteil, denn es gibt schon ein paar eigenwillige Dinge, mit denen man sich arrangieren muss. Und man hat auch nicht alles fest in der Hand, aber insgesamt mehr als in I7.

I6-Kenntnisse sind auch für die Arbeit mit I7 vorteilhaft, denn ganz oft kann man nur richtig tricksen, indem man I6-Code einbindet. Den kann man dann als I7-Phrase tarnen (z.B. bei so etwas wie "set the definite suffixes from the noun;"). So haben wir es in GerX ein paarmal gemacht.

jorl:

Verstehe ich das richtig, dass die Vervollständigung nur klappt wenn das fehlende Objekt, das zweite ist (also das am weitesten rechts im Satz)?

Wenn man nur "grab" eingibt und die passenden Objekte in Sicht sind, sollten auch zwei Objekte ergänzt werden.

grab

(das Beet mit dem Spaten)

OK.

jorl:

Kann man auch "Einschubwörter" als optional kennzeichnen?

Dazu fällt mir auch nur eine I6-lastige Lösung mit einem Understand-Token "[um]" ein:

blue

Understand "grab [something] um/--" as ... funktioniert leider (noch) nicht.

Geschrieben um 14:08 am 30.11.2010 | Zitat | Editieren | Löschen
jorl
Mitglied
Master Gumby
Beiträge: 99

ChristianB:

jorl:

Verstehe ich das richtig, dass die Vervollständigung nur klappt wenn das fehlende Objekt, das zweite ist (also das am weitesten rechts im Satz)?

Wenn man nur "grab" eingibt und die passenden Objekte in Sicht sind, sollten auch zwei Objekte ergänzt werden.

Die Frage war eher so gemeint: Wenn eines der beiden Wörter fehlt, dann muss es das "rechtere" sein. Die Frage hat sich aber eigentlich schon von selbst geklärt. Wenn es nicht so wäre, wäre ja blue unnötig.

Geschrieben um 13:03 am 21.12.2010 | Zitat | Editieren | Löschen
jorl
Mitglied
Master Gumby
Beiträge: 99

Ich hätte gern die Anzahl der getragenen Objekte des Spielers, aber let N be the number of thing the player wears;funktioniert nicht. Wie macht man das denn richtig?

Geschrieben um 14:26 am 21.12.2010 | Zitat | Editieren | Löschen
StJohn Limbo
Mitglied
Master Gumby
Beiträge: 104

Folgendes funktioniert:

the number of things worn by the player

» Mehrere Seiten: 12
AntwortenNeues ThemaNeue Umfrage
Powered by Spam Board SVN © 2007 - 2021
Impressum / Datenschutz