Forum moved to if-forum.org
Autor Nachricht
<  Nachträgliches ändern des Special indefinite article
Strainer
BeitragVerfasst am: Fr, 19 Feb 2010 - 0:55  Antworten mit Zitat
Wasserträger
Wasserträger


Anmeldungsdatum: 25.01.2010
Beiträge: 37
Wohnort: Wien

Hallo!

Bin heute auf ein Neues Problem gestoßen das ich kurz schildern möchte:

Ich möchte Objekte in meinem Spiel haben, welche, nachdem sie betrachtet wurden, mit dem direkten Artikel angesprochen werden. (dies macht z.B. bei bereits durchschrittenen Türen sinn)

Folgendes Beispiel:

Code:
The Laptop is a male thing. It is in the Library.
The description of the Laptop is "Irgendein Laptop steht in der Ecke.".

After examining the Laptop for the first time:
say "Das ist ja mein Laptop! Wer hat den denn umlackiert?";
now the special indefinite article of the Laptop is DEFINITE ARTICLE;
now the description of the Laptop is "Mein Laptop, schändlich umlackiert, steht in der Ecke.".


Dieser Code sollte an sich genau das oben beschriebene durchführen, leider kommt dabei folgender Run-time error heraus:

*** Run-time problem P11: Although der Laptop is allowed to have the property "special indefinite article", no value was ever given, so it can't now be used.

Folgendes wird zusätzlich noch angezeigt:

Code:
P12 - Never-set property

Most problems are detected when Inform translates the source text, but this is one of the exceptions, a "run-time problem" which emerges only during play.

It sometimes happens that - although something could in principle have a given property - in fact it doesn't. That makes it impossible to use.

For instance, although every thing is allowed to have a description property, it will only be given one if the source text says so explicitly. That makes writing the description of the noun (say) a little chancy, because it assumes the noun will be a thing which has a description - which might not always be true. If you would like to make sure everything does have a description property, you can always write a sentence like The description of a thing is usually 'Dull.'.


Das ergibt auch Sinn, das Problem hierbei ist aber, dass es kein "nothing" setting für special indefinite article gibt, womit ein Satz wie
Code:
The special indefinite article of a thing is usually "nothing".
nicht funktioniert.

Ich bin für jeden Tipp dankbar.

MfG

Strainer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ChristianB
BeitragVerfasst am: Fr, 19 Feb 2010 - 12:14  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg

Zitat:
Code:
now the special indefinite article of the Laptop is DEFINITE ARTICLE;


Die Eigenschaft special indefinite article kann in Deinem Beispiel nicht verändert werden, weil sie noch gar nicht vergeben wurde. Und, wie Du richtig beschrieben hat, kann sie nur die Werte des Typs special article annehmen, also DEFINITE ARTICLE, YOURS und NO ARTICLE. Man kann also nicht so einfach eine "leere" Eigenschaft bei der Definition des Objekts vergeben, die dann nachträglich verändert wird. Mit einem I6-Hack ist das aber möglich:

Include (- with special_article, -) when defining the Laptop.

Ein indefinite article kann dann aber nicht mehr verwendet werden, weil dieser von der Eigenschaft special indefinite article überschrieben wird (auch wenn diese NULL ist). Ansonsten müsste alles so laufen, wie Du es möchtest.

Edit: Ich bin mir jetzt gar nicht sicher: Ist das ein Fall, der öfter auftritt? Dann würde es vielleicht Sinn machen, wenn man einen zusätzlichen Wert für den special indefinite article zulassen würde, z.B. PENDING. Der Wert wäre nur Platzhalter und ließe dann (nach entsprechender Änderung der Routine IndefArt() auch einen indefinite article zu -- so lange, bis man dann einen der drei anderen Werte YOURS, DEFINITE ARTICLE oder NO ARTICLE zuweist. Mir mangelt's gerade an Übersicht, deshalb frage ich die Autoren, die derzeit I7/GerX benutzen: Wäre das nützlich?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Strainer
BeitragVerfasst am: Fr, 19 Feb 2010 - 17:15  Antworten mit Zitat
Wasserträger
Wasserträger


Anmeldungsdatum: 25.01.2010
Beiträge: 37
Wohnort: Wien

Ich glaube schon das es durchaus nützlich wäre, da es bestimmt Sinn Macht, viele mehrfach benutzte Dinge wie Türen nach einer Weile mit bestimmten Artikeln anzusprechen. ("eine Glastür" macht beim dritten durchschreiten als Bezeichnung einfach wenig Sinn)

Verstehe ich es richtig, dass durch das Attribut "PENDING" wieder der indirekte Artikel zugewiesen würde? Oder wäre PENDING dann nur als Standardattribut und Platzhalter zu verstehen bis schließlich einer der 3 special indefinite article vergeben wird?

Also ich persönlich fände es schon praktisch, habe aber auch kein Problem damit es mit deiner vorher beschriebenen i6 Variante zu machen, hauptsache es klappt.

MfG
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ChristianB
BeitragVerfasst am: Fr, 19 Feb 2010 - 17:24  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg

Strainer hat folgendes geschrieben:
Verstehe ich es richtig, dass durch das Attribut "PENDING" wieder der indirekte Artikel zugewiesen würde?

PENDING macht gar nichts, außer den special indefinite article für die spätere Änderung bei einem Objekt vorzumerken. Es würde also bei der Ausgabe mit unbestimmten Artikel auch dieser herangezogen werden. Beispiel:

The Buch is a neuter thing in Labor. The special indefinite article of the Buch is PENDING.

After examining the Buch for the first time: now the special indefinite article of the Buch is YOURS; say "Erst jetzt erkennst du, dass dies dein Tagebuch ist."


Mein Testspiel hat folgendes geschrieben:
Labor
Du siehst hier einen Laptop und ein Buch.

>u buch
Du siehst nichts Besonderes an dem Buch.

Erst jetzt erkennst du, dass dies dein Tagebuch ist.

>l
Labor
Du siehst hier einen Laptop und dein Buch.

>
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Strainer
BeitragVerfasst am: Fr, 19 Feb 2010 - 18:26  Antworten mit Zitat
Wasserträger
Wasserträger


Anmeldungsdatum: 25.01.2010
Beiträge: 37
Wohnort: Wien

Um dein Beispiel weiter zu führen:

Würde folgendes funktionieren(auch wenn man es nicht oft brauchen wird):


After giving the Buch to Peter: now the special indefinite article of the Buch is PENDING; say "Du übergibst dein Buch an Peter."

Und die Ausgabe wäre wieder im indirekten Artikel?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ChristianB
BeitragVerfasst am: Fr, 19 Feb 2010 - 18:38  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg

Ja, ganz genau. Mit PENDING kann man den special indefinite article auch wieder wirkungslos machen.

Edit: Für alle Interessierten gibt es HIER eine Version zum Ausprobieren des PENDING-Werts (der, wie alle anderen Werte auch, je nach Geschmack auch klein geschrieben werden kann; ich bevorzuge jedoch die Schreibweise in Versalien, damit man die Werte besser im Quelltext von anderen Eigenschaften unterscheiden kann).

Edit 2:Ich habe jetzt eine neue Version mit angepasster Kurzdoku hochgeladen, mit der es jetzt möglich ist, den special indefinite article flexibler einzusetzen. Danke an Strainer für den Hinweis.
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 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