Forum moved to if-forum.org
Autor Nachricht
<  deform: Pronomen
Hannes
BeitragVerfasst am: Mi, 21 Jan 2015 - 9:20  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 25.03.2010
Beiträge: 660

Code:
Object cabinet "Schrank"
    has male
    with name 'schrank' 'schraenkchen' 'n.'

B SCHRANK setzt korrekt "er" und "ihn". B SCHRAENKCHEN hat keinerlei Auswirkungen auf die Pronomen.

Ist schonmal jemand über das Problem gestolpert? Oder liegt meinerseits ein Denkfehler vor?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ChristianB
BeitragVerfasst am: Mi, 21 Jan 2015 - 13:35  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg

Ich kann das Verhalten hier nicht reproduzieren:

Das Testspiel (Z5) hat folgendes geschrieben:
>pronomen
Die Pronomen beziehen sich im Moment auf Folgendes:
"er": der Schrank
"sie": die Decke
"es": nicht gesetzt
"ihn": der Schrank
"ihm": der Schrank
"ihr": die Decke
"ihnen": nicht gesetzt
"damit", "darauf", usw.: der Schrank
"ihm/r": der Schrank

>u schränkchen
Du siehst nichts Besonderes an dem Schrank.

>pronomen
Die Pronomen beziehen sich im Moment auf Folgendes:
"er": der Schrank
"sie": die Decke
"es": der Schrank
"ihn": der Schrank
"ihm": der Schrank
"ihr": die Decke
"ihnen": nicht gesetzt
"damit", "darauf", usw.: der Schrank
"ihm/r": der Schrank

Funktioniert. Für den Schrank habe ich deinen Code verwendet.

EDIT: Oder meintest du die Ausgabe der Pronomen? Da greift der Changing Gender nämlich nicht. Er wird vor der Ausgabe zurückgesetzt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Hannes
BeitragVerfasst am: Mi, 21 Jan 2015 - 16:55  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 25.03.2010
Beiträge: 660

Spannend. Tatsächlich kann ich das korrekte Verhalten bei einem Minimalspiel auch nachvollziehe, das Problem taucht also nicht auf. Ich werde wohl nochmal einen Tag investieren müssen zwecks Isolierung. Vielen Dank schonmal fürs Testen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Hannes
BeitragVerfasst am: Do, 22 Jan 2015 - 10:28  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 25.03.2010
Beiträge: 660

Es liegt nicht am Code, sondern an der Größe. Wenn ich ein Drittel der Objekte einfach rauslasse ist alles in Ordnung. Ich habe den exakten Punkt identifiziert: Wenn ich von dan ein weiteres Objekt hinzufüge oder einem bestehenden Objekt zwei neue Worte zum Namen hinzufüge, tritt der Fehler auf.

Ich kompiliere mit der s-Flag und da ist keiner der Werte kritisch an einer Grenze. Die mir interessant scheinenden Memory-Compilervariablen (MAX_DICT_ENTRIES, MAX_STATIC_DATA) lösen die Sache ebenfalls nicht. Bin ratlos, was ich weiter vrrsuchen könnte.

Nach Glulx zu kompilieren löst es, aber möchte ich eigentlich nicht. Das Spiel passt knapp in Z5! Z8 wäre in Ordnung, aber hat auch den Bug. Ich kenne mich zu wenig mit den Unterschieden zwischen Z und Glulx aus, um gezielt weiterzusuchen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ChristianB
BeitragVerfasst am: Do, 22 Jan 2015 - 11:39  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg

Was passiert, wenn du in German.h die CG-Puffergröße von 8 z.B. auf 16 anhebst? (Nur mal so als Experiment.)

Code:
!Constant MAX_CG_STACK = 8;
Constant MAX_CG_STACK = 16;
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Hannes
BeitragVerfasst am: Do, 22 Jan 2015 - 12:45  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 25.03.2010
Beiträge: 660

Leider keine Verbesserung.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
proc
BeitragVerfasst am: Do, 22 Jan 2015 - 14:27  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 08.12.2009
Beiträge: 923
Wohnort: Berlin

Hast du es schon mit einer anderen Compiler-Version (oder hier) versucht? Auch wenn es unwahrscheinlich anmutet, kann im neuen I6.33 ein Bug stecken. Da der Fehler bereits in der englischen Version aufscheint, darf die Library als Fehlerquelle versuchsweise mal ausgeschlossen werden.
_________________
interactive fiction database
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Hannes
BeitragVerfasst am: Do, 22 Jan 2015 - 14:51  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 25.03.2010
Beiträge: 660

Inform 6.32 verhält sich identisch. Auf Englisch tritt der Fehler logischerweise nicht auf, weil es bei normalen Objekten gar keinen Genus gibt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
proc
BeitragVerfasst am: Do, 22 Jan 2015 - 16:16  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 08.12.2009
Beiträge: 923
Wohnort: Berlin

Hannes hat folgendes geschrieben:
Inform 6.32 verhält sich identisch. Auf Englisch tritt der Fehler logischerweise nicht auf, weil es bei normalen Objekten gar keinen Genus gibt.

Die 6.32-Downloads hab ich online gar nicht mehr gefunden, wohin ist das denn entschwunden??? Da es in den Fingern juckt, hab ich ein Perlskript geschrieben, das einen Quelltext mit 500 Objekten mit abweichenden Synonymen für n/f erzeugt und mit 6.33 resp. 6.30 kompiliert, der Fehler tritt beides mal auf. Durch Intervallschachtelung kam raus, dass das Pronomen-Handling bei 431 Objekten mit je 4 name-Einträgen noch geht, beim 432. dann nicht mehr (plus Beiwerk wie Raum). Im Englischen können "it/them/him/her" verwendet werden, was in der englischen Lily-Version nicht immer zuverlässig ging.
_________________
interactive fiction database
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Hannes
BeitragVerfasst am: Do, 22 Jan 2015 - 16:25  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 25.03.2010
Beiträge: 660

Keine Ahnung, ich hab 6.32 einfach noch für genau solche Fälle auf dem System. Danke für die Tests - scheint dann ja wohl mindestens seit 10 Jahren so drin zu sein.

Ich habe als Übergang 193/194 Objekte ausgemacht - allerdings mit durchschnittlich sehr viel mehr Namen. DEr Zusammenhang ist allerdings nicht linear (ein Name gegen ein Objekt). Ein zusätzliches Objekt wiegt mehrere Namen auf.

Im Englischen tritt es natürlich bei Singular-/Pluralunterscheidung auf. Aber da gibt es ja auch keine Behandlung diesbezüglich, insofern ist es dort kein Bug, sondern ein fehlendes Feature.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
proc
BeitragVerfasst am: Do, 22 Jan 2015 - 20:38  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 08.12.2009
Beiträge: 923
Wohnort: Berlin

Zur Pronomentabelle: Da hakt wohl eine Konstante bei etwa 1.700 Wörterbucheinträgen, die deform vermurksen könnte. Ich weiß es einfach nicht und poste einfach mal das Beipliel "Heidi" aus dem IBG mit 433 zusätzlichen Objekten "objxyz" mit xyz=0 bis 432, wobei die mit "x mobjxyz" als männliches und "fobjxyz" als weibliches Synonym jeweils mit mit "f"- und "m"-Beginn angesprochen werden können. Ein Ausstieg aus dem Pronomen-Handling ist sicher nicht im Sinne der Erfinder, egal wie viele Objekte ein Spiel beheimatat. Kompiliert wurde mit I6.33 und I6.30, die identische Ergebnisse liefern: Ab Objekt 432 ist Schluss mit dem zu erwartendem Pronomen-Handling, auszuprobieren am Ende der Objektliste mit "!!!". Ich hab das übrigens auch mit dem englischen Versionen Lib 6/11 und 6/12beta ausprobiert, was super funktioniert ("it" zumindest). Die undokumentierte Konstante MANUAL_PRONOUNS spielt dabei keine Rolle. Hier die I6-Datei:
http://forum.ifzentrale.de/pub/Test.inf
_________________
interactive fiction database
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ChristianB
BeitragVerfasst am: Mi, 6 Mai 2015 - 22:47  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg

Ist zwar schon ein Weilchen her, aber ich habe gerade gesehen, dass die Changing-Gender-Tags nicht ganz zuverlässig abgefragt werden: In parserm.h in der Routine WordInProperty() wird darauf gesetzt, dass die Adressen der Tags > 255 sind. Die können aber durch Überlauf auch ab und zu negativ werden, und dann funktioniert das mit der Abfrage nicht mehr.

Hannes, proc, versucht doch mal bitte diese Variante der Routine WordInProperty(), falls das jetzt noch akut ist:

Code:
[ WordInProperty wd obj prop k l m g;
    k = obj.&prop; l = (obj.#prop)/WORDSIZE;
    for (m = 0 : m < l : m++)
        if (wd == k-->m) {
         g = IsGenderAttribute(k-->(m+1));
            if (m < l-1 && g) {
                GenderNotice(obj, g);
         }
            rtrue;
        }
    rfalse;
];

Damit scheint es hier zuverlässig zu laufen. Die Routine StringInProperty() müsste wohl auch entsprechend geändert werden, aber die wird in der offiziellen deform-Version gar nicht benutzt, glaube ich.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
proc
BeitragVerfasst am: Fr, 8 Mai 2015 - 11:58  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 08.12.2009
Beiträge: 923
Wohnort: Berlin

ChristianB hat folgendes geschrieben:
falls das jetzt noch akut ist:

Also sowas ist ja wohl in alle Ewigkeit akut...

Ich habs jetzt mit oben verlinktem Beispiel mit I6.33 und 500 Objekten kompiliert ausprobiert:

Code:
>u obj1
Objekt: obj1 (n), mobj1 (m), fobj1 (f).

>pronomen
Die Pronomen beziehen sich im Moment auf Folgendes:
    "er": nicht gesetzt
    "sie": nicht gesetzt
    "es": das obj1
    "ihn": nicht gesetzt
    "ihm": das obj1
    "ihr": nicht gesetzt
    "ihnen": nicht gesetzt
    "damit", "darauf", usw.: das obj1
    "ihm/r": das obj1

>u mobj2
Objekt: obj2 (n), mobj2 (m), fobj2 (f).

>pronomen
Die Pronomen beziehen sich im Moment auf Folgendes:
    "er": das obj2
    "sie": nicht gesetzt
    "es": das obj2
    "ihn": das obj2
    "ihm": das obj2
    "ihr": nicht gesetzt
    "ihnen": nicht gesetzt
    "damit", "darauf", usw.: das obj2
    "ihm/r": das obj2

>u fobj3
Objekt: obj3 (n), mobj3 (m), fobj3 (f).

>pronomen
Die Pronomen beziehen sich im Moment auf Folgendes:
    "er": das obj2
    "sie": das obj3
    "es": das obj3
    "ihn": das obj2
    "ihm": das obj3
    "ihr": das obj3
    "ihnen": nicht gesetzt
    "damit", "darauf", usw.: das obj3
    "ihm/r": das obj3

Funktioniert mit dem Patch an sich super, unbefriedigend ist nur, dass "es" und "ihm" offenbar immer unabhängig vom Genus auf das letzte angesprochene Objekt gesetzt werden. Da gäbe es noch etwas Verbesserungspotential. Immerhin funktioniert schon einiges mehr als zuvor, Danke!!!
_________________
interactive fiction database
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ChristianB
BeitragVerfasst am: Fr, 8 Mai 2015 - 19:54  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg

proc hat folgendes geschrieben:
... unbefriedigend ist nur, dass "es" und "ihm" offenbar immer unabhängig vom Genus auf das letzte angesprochene Objekt gesetzt werden.

Du meinst, jedes zuletzt angesprochene Objekt, egal, ob Männlein oder Weiblein, bekommt auch noch die Pronomen fürs Neutrum verpasst? Das kann ich hier momentan nicht nachvollziehen:

Das Testlabor hat folgendes geschrieben:
Testlabor
Hier wird getestet, was das Zeug hält.

Du siehst hier einen Schrank.

>pronomen
Die Pronomen beziehen sich im Moment auf Folgendes:
"er": der Schrank
"sie": nicht gesetzt
"es": nicht gesetzt
"ihn": der Schrank
"ihm": der Schrank
"ihr": nicht gesetzt
"ihnen": nicht gesetzt
"damit", "darauf", usw.: der Schrank
"ihm/r": der Schrank

>u schrank
Du siehst nichts Besonderes an dem Schrank.

>pronomen
Die Pronomen beziehen sich im Moment auf Folgendes:
"er": der Schrank
"sie": nicht gesetzt
"es": nicht gesetzt
"ihn": der Schrank
"ihm": der Schrank
"ihr": nicht gesetzt
"ihnen": nicht gesetzt
"damit", "darauf", usw.: der Schrank
"ihm/r": der Schrank

>u schränkchen
Du siehst nichts Besonderes an dem Schrank.

>pronomen
Die Pronomen beziehen sich im Moment auf Folgendes:
"er": der Schrank
"sie": nicht gesetzt
"es": der Schrank
"ihn": der Schrank
"ihm": der Schrank
"ihr": nicht gesetzt
"ihnen": nicht gesetzt
"damit", "darauf", usw.: der Schrank
"ihm/r": der Schrank


Wenn man dann wieder SCHRANK sagt, bleibt im nächsten Zug aber auch das Pronomen für "es" bestehen. Die pronomen werden additiv ergänzt, bis sie irgendwann mit einem aktuelleren Objekt verknüpft werden.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Hannes
BeitragVerfasst am: Sa, 9 Mai 2015 - 9:47  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 25.03.2010
Beiträge: 660

Sieht für mich bestens aus! Wenn man einen Alias referenziert, wird gleichzeitig immer auch das Pronomen des Hauptgeschlechts gesetzt, also im Eingangsbeispiel:

B SCHRAENKCHEN setzt auch "ER" (von "SCHRANK").

Das finde ich aber logisch. Vielen Dank, Christian!
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 1 von 2
Gehe zu Seite 1, 2  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