Geschrieben um 10:20 am 21.01.2015 | Zitat | Editieren | Löschen | |
Mitglied Prof Gumby Beiträge: 600 |
|
Geschrieben um 14:35 am 21.01.2015 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 1062 | Ich kann das Verhalten hier nicht reproduzieren: Das Testspiel (Z5):
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
Du siehst nichts Besonderes an dem Schrank.
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. |
Geschrieben um 17:55 am 21.01.2015 | Zitat | Editieren | Löschen | |
Mitglied Prof Gumby Beiträge: 600 | 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! |
Geschrieben um 11:28 am 22.01.2015 | Zitat | Editieren | Löschen | |
Mitglied Prof Gumby Beiträge: 600 | 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. |
Geschrieben um 12:39 am 22.01.2015 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 1062 | Was passiert, wenn du in German.h die CG-Puffergröße von 8 z.B. auf 16 anhebst? (Nur mal so als Experiment.)
|
Geschrieben um 13:45 am 22.01.2015 | Zitat | Editieren | Löschen | |
Mitglied Prof Gumby Beiträge: 600 | Leider keine Verbesserung. |
Geschrieben um 15:27 am 22.01.2015 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 734 | 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. ----- |
Geschrieben um 15:51 am 22.01.2015 | Zitat | Editieren | Löschen | |
Mitglied Prof Gumby Beiträge: 600 | Inform 6.32 verhält sich identisch. Auf Englisch tritt der Fehler logischerweise nicht auf, weil es bei normalen Objekten gar keinen Genus gibt. |
Geschrieben um 17:16 am 22.01.2015 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 734 | Hannes:
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. ----- |
Geschrieben um 17:25 am 22.01.2015 | Zitat | Editieren | Löschen | |
Mitglied Prof Gumby Beiträge: 600 | 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. |
Geschrieben um 21:38 am 22.01.2015 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 734 | 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: ----- |
Geschrieben um 23:47 am 06.05.2015 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 1062 | 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:
|
Geschrieben um 12:58 am 08.05.2015 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 734 | ChristianB:
Also sowas ist ja wohl in alle Ewigkeit akut... Ich habs jetzt mit oben verlinktem Beispiel mit I6.33 und 500 Objekten kompiliert ausprobiert:
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!!! ----- |
Geschrieben um 20:54 am 08.05.2015 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 1062 | proc:
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:
Hier wird getestet, was das Zeug hält. Du siehst hier einen Schrank.
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
Du siehst nichts Besonderes an dem Schrank.
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
Du siehst nichts Besonderes an dem Schrank.
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. |
Geschrieben um 10:47 am 09.05.2015 | Zitat | Editieren | Löschen | |
Mitglied Prof Gumby Beiträge: 600 | 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! |
Geschrieben um 11:04 am 09.05.2015 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 734 | ChristianB:
Ja, etwas verwirrend so dass ich es nochmal mit Schränken nachvollzogen habe. Es geht wohl um Genusangaben bei Synonymen. Ich habe jetzt mal vier Schränke (male) mit zusätzlichen Synonymen für alle identisch in folgender Art ausprobiert, was dann seltsames Pronomen-Verhalten zeigt. Vielleicht ist das ja auch ein Denkfehler oder falscher Code, ich zeig einfach mal alles:
----- |
Geschrieben um 11:58 am 09.05.2015 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 1062 | Ahh, ich denke, dafür ist das 9-Stellen-Limit der Z-Code-Vokabeln verantwortlich, welches Martin Oehm übrigens in Zeta elegant auf 18 erweitert hat, indem dort zwei Wörterbucheinträge für eine Vokabel verwendet werden. Von 'holzschrank' landen die ersten 9 Stellen im Wörterbuch: 'holzschra'. Und von 'holzschraenkchen' auch. Das bedeutet, dass der Parser den Holzschrank nicht vom Holzschränkchen unterscheiden kann, und sich für das erste passende Synonym in der name-Property entscheiden wird. Abhilfe schafft da die Verwendung des Compound-Heads-Mechanismus. Man legt eine Tabelle an:
|
Geschrieben um 12:12 am 09.05.2015 | Zitat | Editieren | Löschen | |
Mitglied Retired Gumby Beiträge: 734 | ChristianB:
ja, das wars, funktioniert mit CompoundHeads super! Pronomen für den Hauptgender zu setzen ist okay, ich hatte mich beim Herumspielen nur etwas gewundert. Danke für die Korrektur!!! ----- |