if-de :: Forum Foren-Übersicht
Autor Nachricht
<  I7: Deutsche Extension -- aktuelle Beta-Version
Mario Donick
BeitragVerfasst am: So, 15 Feb 2009 - 13:52  Antworten mit Zitat
Wasserträger
Wasserträger


Anmeldungsdatum: 14.02.2009
Beiträge: 49
Wohnort: Rostock

Ein paar Fehler gibt es wohl. Zum Beispiel in "A pointless example", direkt nach dem Start gebe ich ein:

Code:

>Nimm die Katze. Stecke die Katze in den Karton.

[** Programming error: tried to write to -->30 in the array "orig_parse", which has entries 0 up to 29 **]

[** Programming error: tried to write to -->31 in the array "orig_parse", which has entries 0 up to 29 **]

[** Programming error: tried to write to -->32 in the array "orig_parse", which has entries 0 up to 29 **]

[** Programming error: tried to write to -->33 in the array "orig_parse", which has entries 0 up to 29 **]
In Ordnung.

Du legst die Katze in Schrödingers Karton.



Eine Variation dieses Fehlers:

Code:

>nimm die katze. stecke sie in den karton.

[** Programming error: tried to write to -->30 in the array "orig_parse", which has entries 0 up to 29 **]
In Ordnung.

Du legst die Katze in Schrödingers Karton.


Dann gibt es ab und zu Fälle, in denen Objekte nur ohne Artikel verstanden werden.

Ich finde die Extension wirklich gut, und wenn Ihr solche Fehler in den Griff bekommt, schwenke ich von Alan auf Inform7 GerX. :)

Mario
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
ChristianB
BeitragVerfasst am: So, 15 Feb 2009 - 18:44  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg

Hey Mario, danke fürs Melden. Ich habe gestern auch noch was entdeckt: Die Himmelsrichtungen haben noch keine deutschen Namen (zumindest nicht immer). Da war auf meiner Liste aber schon ein Haken dran, na mal sehen ...

Zu dem von Dir gemeldeten Programming-Error: Wenn das Beispiel nach Z-Code (v5 oder v8) compiliert, dann funktioniert alles. Mit Glulx gibt es offenbar Probleme. Ich darf also annehmen, dass Du in Deinen Tests nach Glulx compilierst?

Könntest Du mir bitte ein Beispiel zukommen lassen, in dem ein Objekt nur ohne Artikel ansprechbar ist? Die Artikel sollten allesamt als Deskriptoren überlesen werden. Aber vielleicht habe ich der Glulx-Abteilung da auch zu wenig Aufmerksamkeit geschenkt.

Ich werde mich gleich mal dranmachen.

Vielen Dank und beste Grüße,
CB
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ChristianB
BeitragVerfasst am: So, 15 Feb 2009 - 20:17  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg

So, das von Mario angesprochene Problem mit dem Array orig_parse ist vorerst umgangen. Die Sache mit den Artikeln konnte ich hier noch nicht reproduzieren.

Update: GerX Beta 4.06 vom 15.02.2009.

[Edit: Martin hat's mir erklärt und jetzt basieren die Dimensionen der buffer- und parse-Arrays in Glulx auf sinnvollen Werten.

Update: GerX Beta 4.06.01 vom 15.02.2009. ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mario Donick
BeitragVerfasst am: So, 15 Feb 2009 - 23:15  Antworten mit Zitat
Wasserträger
Wasserträger


Anmeldungsdatum: 14.02.2009
Beiträge: 49
Wohnort: Rostock

Hallo Christian,

danke für die schnelle Reaktion :) Ja, glulx ist als Format gewählt.

Das mit dem Artikel kann ich jetzt gar nicht mehr nachvollziehen, aber evtl. habe ich es auch damit verwechselt, dass ich zwar sagen kann "betrachte den karton", aber nicht "betrachte Schrödingers Karton", d.h. "Schrödingers Karton" erkennt er nicht.

Edit: Ich glaube, ich weiß, woran das liegt. In dem Beispiel steht

Code:
Schrödingers Karton is a container in Lagerraum. It is male. It is openable.


Aber laut Doku stände dort besser:

Code:
Schroedingers Karton is a container in Lagerraum. It is male. It is openable. The printed name of Schroedingers Karton is "Schrödingers Karton".


:-)

Mario
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
ChristianB
BeitragVerfasst am: So, 15 Feb 2009 - 23:37  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg

Mario, Du hast vollkommen Recht! Das "Pointless"-Beispiel stammt noch aus einer Zeit, wo noch nicht so ganz klar war, wie die Extension am Ende mal funktionieren soll. Beim nächsten Update werde ich das korrigieren.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Martin
BeitragVerfasst am: Mo, 16 Feb 2009 - 8:52  Antworten mit Zitat
Experte
Experte


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

Hallo, I7-Enthusiasten!

Für diejenigen, die schnell einen Überblick darüber bekommen wollen, wie Inform 7 aussieht, denen Schrödingers Katze aber etwas zu pointless ist, habe ich das (auch nicht gerade bahnbrechende) Jade-Beispiel für Inform 7 umgesetzt.

Oh, und ein paar Gedanken zu Projektarbeit mit Textadventures im Schulunterricht gibt's auch. Schade, dass die Seite mit den textadventures aber leer ist. Wahrscheinlich braucht der neue Jahrgang den Platz.
_________________
Every silver lining has a cloud.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mario Donick
BeitragVerfasst am: Mo, 16 Feb 2009 - 9:42  Antworten mit Zitat
Wasserträger
Wasserträger


Anmeldungsdatum: 14.02.2009
Beiträge: 49
Wohnort: Rostock

Hallo Martin,

interessante Zusammenfassung des Schulprojektes. Ich denke, es kommt darauf an, wozu man IF nutzen will. Selbst IF zu erstellen ist m.E. nicht sinnvoll, wenn nicht vorher IF intensiv aktiv rezipiert wurde -- es ist, als wollte man eine Kurzgeschichte schreiben, hätte vorher aber nur Märchen gelesen und würde nun mit "Es war einmal ..." anfangen und dabei alle Merkmale einer Kurzgeschichte ignorieren.

Ich halte IF aber geeignet, 1. selbst als Literaturform thematisiert zu werden und 2. als Unterrichtsmaterial neben anderen (!) für bestimmte Themenfelder genutzt zu werden. Lernziele, die hinter dem selber-schreiben von IF steht, wird vermutlich im Rahmen eines Halbjahres nicht erreichbar sein. Im Informatik-Unterricht (Leistungskurs evtl.) könnte ich mir das noch vorstellen. Aber normale Schüler im Deutschkurs werden vermutlich froh sein, wenn sie überhaupt verstehen, wie sie "Hypertexte" mit IF-Systemen erstellen können.

Mario
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
ChristianB
BeitragVerfasst am: Mo, 16 Feb 2009 - 14:40  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg

Danke, Martin, für das Jade-Beispiel und die Kommentare dazu. (Dein neues Homepage-Design ist sehr ansprechend.) Ich würde das Beispiel gerne in die Extension mit aufnehmen, damit man da auch mal was etwas Elaborierteres ausprobieren kann.

Wenn man keine story headline angibt, so wie im Jade-Beispiel, dann steht in der Titelunterschrift momentan noch "An Interactive Fiction von Martin Oehm".

Edit: Das mit der Default-Story-Headline ist kniffliger als ich zunächst dachte. Die Konstante Headline wird in Output.i6t zwar als Default mit dem Wert 0 angelegt, aber compiliert wird die Konstante direkt von Natural Inform (NI), dem Compiler, der den temporären I6-Code erzeugt. Wenn keine story headline vom Autor angegeben wird, bekommt die Konstante Headline den Wert "An Interactive Fiction" -- und zwar irgendwo an einer unzugänglichen Stelle. Oder gibt es eine Geheimtür?

Ich habe verschiedene Dinge probiert: Headline mit einem anderen Default-Wert definiert, nämlich "Ein Textadventure". Das wird von NI galant ignoriert; in der Banner-Routine Headline testen, ob es den englischen Text enthält und dann den deutschen Text ausgeben. War auch nichts. Und noch ein paar Versuche, story headline veränderbar zu machen sind gescheitert. Story headline ist zwar eine "text variable", lässt sich aber nicht ändern, wenn ein Wert erst einmal zugewiesen ist. Molto strano. Eine Konstante that varies, aber eben not really.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Martin
BeitragVerfasst am: Di, 17 Feb 2009 - 10:15  Antworten mit Zitat
Experte
Experte


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

ChristianB hat folgendes geschrieben:
Ich würde das Beispiel gerne in die Extension mit aufnehmen, damit man da auch mal was etwas Elaborierteres ausprobieren kann.

Ja gerne, obwohl es so elaboriert ja auch nicht ist. Immerhin ist ein bisschen mehr "Action" dabei; die bisherigen Beispiele konzentireren sich doch eher auf die Ein- und Ausgabedefinitionen.

ChristianB hat folgendes geschrieben:
Wenn man keine story headline angibt, so wie im Jade-Beispiel, dann steht in der Titelunterschrift momentan noch "An Interactive Fiction von Martin Oehm".

Okay, das ziehe ich noch nach.

Wie man die Default-Headline ändert, ist mir auch schleierhaft. Sie wird wohl von NI gesetzt, und dort steht sie auch drin. Wenn ich in ni.exe den String "An Interactive Fiction" durch "Ein Textadventure\0...." ersetze ("\0" ist das Null-Byte), dann klappt's, aber das kann ja nun nicht die Lösung sein.

Die ganzen "Bibliographic Constants" werden mit
Code:
{-call:compile_bibliographic_i6_constants}

erzeugt, das kommt direkt vor der Headline. Dabei werden aber wohl nur die Definitionen der NI-Source herangezogen, denn wenn ich die Konstante vorher definiere, gibt's hinterher einen Fehler, weil der Aufruf oben ebenfalls Constant und nicht etwa Default erzeugt. Und da ab dort die Headline definiert ist, nutzen auch nachfolgende Defaults nicht mehr.

Die Strings beim Drucken des Spielbanners zu überprüfen, ginge gewiss, aber wenn, dann nicht so:
Code:
if (Headline == "An Interactive Fiction) ...

Das ist immer falsch, weil hier ein neuer String "An Interactive ..." erzeugt wird und mit == die Adressen verglichen werden. Man müsste die Zeichen einzeln vergleichen und dazu den String in einen Hilfspuffer ausgeben, was unter z-Code und Glulx leider wieder anders aussieht. Gewiss gibt es eine solche Funktion schon (eine Schnellsuche mach 'strcmp' - so heißt diese Funktion in C - erzielt jedenfalls einen Treffer), aber da jetzt genau durchzusteigen, da ist es gewiss besser, dass man die Autoren dazu anhält, eine eigene Headline zu definieren.
_________________
Every silver lining has a cloud.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ChristianB
BeitragVerfasst am: Di, 17 Feb 2009 - 10:32  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg

Martin hat folgendes geschrieben:
Ja gerne, obwohl es so elaboriert ja auch nicht ist.

Merci. Leider zeigt I7 Kommentare im Beispiel-Code nicht an (Windows). Deshalb gebe ich in der Kopfzeile einen Hinweis auf Deine kommentierte Fassung.

Martin hat folgendes geschrieben:
Gewiss gibt es eine solche Funktion schon (eine Schnellsuche mach 'strcmp' - so heißt diese Funktion in C - erzielt jedenfalls einen Treffer), aber da jetzt genau durchzusteigen, da ist es gewiss besser, dass man die Autoren dazu anhält, eine eigene Headline zu definieren.

Tja, da wird es dem Inform-Übersetzer nicht leicht gemacht. Strcmp (aus der I6-Extension istring.h) hatte ich ich schon herangezogen, aber das funktionierte nicht wie gewünscht.

Ich werde vorerst den Hinweis, das der Autor eine individuelle story headline erstellen muss, in die Dokumentation mit aufnehmen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Martin
BeitragVerfasst am: Di, 17 Feb 2009 - 11:45  Antworten mit Zitat
Experte
Experte


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

Okay, ich habe einen Weg gefunden. Im Block "Banner" habe ich folgendes definiert:
Code:
Constant GERMAN_HEADLINE "Ein Textadventure";

Array HLAuxBuffer1 buffer 128;
Array HLAuxBuffer2 buffer 24;

[ __Print_Headline     l1 l2 i;
    VM_PrintToBuffer(HLAuxBuffer1, 128, Headline);
    VM_PrintToBuffer(HLAuxBuffer2, 24,
        "An Interactive Fiction");
   
    l1 = HLAuxBuffer1-->0;
    l2 = HLAuxBuffer2-->0;
   
    if (l1 ~= l2) {
        print (string) Headline;
        return;
    }
    for (i = 0 : i < l1 : i++) {
        if (HLAuxBuffer1->(i + 4) ~= HLAuxBuffer2->(i + 4)) {
            print (string) Headline;
            return;
        }
    }
    print (string) GERMAN_HEADLINE;
];

und wo vorher "print (string) Headline;" stand, rufe ich diese neue Routine jetzt auf. Ganz ideal ist das alles aber noch nicht, denn ich definiere zwei weitere Textpuffer und blähe den eh schon nicht sehr schlanken I7-Code auf. Man könnte hier gewiss zwei schon genügend groß definierte Puffer, die es schon gibt, hernehmen.

Der zweite Puffer muss nur "An Interactive Fiction" aufnehmen können. Der erste Puffer kann aber theoretisch nicht groß genug sein, wie jeder feststellt, der folgendes einmal einsetzt:
I7 hat folgendes geschrieben:
The story headline is "Ein interaktiver Versuchsballon, der nur gestartet wurde, um mal zu sehen wie das so ist mit den Headlines und so und der allen heimlichen GEZ-Hinterziehern gewidmet ist"

Außerdem steht in den iFiction-Metadaten weiterhin "An Interactive Fiction", wobei ich mir da eh nicht so sicher bin, wie man diese Daten auf Deustch sinnvoll belegt. Nimmt man eigene Deutsche Schlüsselwörter, kann man nicht mehr sprachübergreifend vergleichen. Nimmt man die englischen Schlüsselwörter, steht halt wieder irgendwas Englisches auf meinem schönen deutschen Textadventure. Vielleicht:
Code:

<genre>Mystery (Krimi)</genre>
<forgiveness>mild (nachsichtig)</forgiveness>

Oder halt genau andersherum: Krimi (Mystery). Oder Piktogramme, wie beim Fett- und Proteingehalt auf Lebensmitteln.

Okay, nach dieser kleinen Abschweifung wieder zurück zur Headline: Es ist, denke ich, besser Autoren dazu anzuhalten, eine Headline explizit anzugeben und in einem Aufwasch auch direkt alle anderen Metadaten brav in die Büchereikarte einzutragen.
_________________
Every silver lining has a cloud.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ChristianB
BeitragVerfasst am: Di, 17 Feb 2009 - 12:49  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg

Martin hat folgendes geschrieben:
Okay, ich habe einen Weg gefunden.

Ah, so sieht das also aus, wenn man's richtig macht. Das ist doch eine ausgezeichnete Lösung, die ich gern aufnehmen möchte, bis es eine offizielle Möglichkeit gibt, die Default-Headline anzuzapfen. Dass dadurch zusätzliche Ressourcen verschleudert werden, finde ich nicht ganz so wichtig wie eine bequeme Benutzung der Extension, besonders für Einsteiger.

Edit: Ich werde zur Sicherheit erst einmal die von Dir neu definierten Puffer nehmen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ChristianB
BeitragVerfasst am: Di, 17 Feb 2009 - 21:41  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg

Update: GerX Beta 4.07 vom 17.02.2009.

- Die Default-Story-Headline lautet nun "Ein Textadventure". Dank an Martin für den I6-Code.
- Martins "Jade"-Beispiel eingefügt.
- Die angezeigten Namen der Himmelsrichtungen nachgebessert.
- Die Dokumentation ergänzt.

Die limitierte Länge der Story-Headline finde ich erstmal nicht weiter schlimm.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ChristianB
BeitragVerfasst am: Mi, 18 Feb 2009 - 23:30  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg

Update: GerX Beta 4.08 vom 18.02.2009.

- Die Beispiele in der Doku können nun per Mausklick in den Quellcode eingefügt werden.
- "Z" (für WARTE) und einige englische Metabefehle wieder als Vokabeln zugelassen.
- [^] ist jetzt die einzige Möglichkeit, die flexible Adjektiv-Endung anzugeben. Die etwas inkonsequenten [-e] und [e] sind gestrichen, da die Adjektiv-Endung für alle möglichen korrekten Endungen stehen kann, und das drückt das unbestimmte [^] ganz gut aus.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mario Donick
BeitragVerfasst am: Sa, 21 Feb 2009 - 16:39  Antworten mit Zitat
Wasserträger
Wasserträger


Anmeldungsdatum: 14.02.2009
Beiträge: 49
Wohnort: Rostock

Hallo,

ich bin auf ein kleines Problem gestoßen:

Code:

Seitenstraße
Eine dunkle Straße.

Du siehst hier einen Müllcontainer (der geschlossen ist).

>öffne den container.
Du öffnest den Müllcontainer und findest eine alte Zeitung darin.

>betritt den container.
Du steigst in den Müllcontainer.

In dem Müllcontainer siehst du eine alte Zeitung.

>verlasse den container.
Aber du bist gar nicht auf dem Müllcontainer.

>klettere aus dem container heraus.
Aber du bist gar nicht auf dem Müllcontainer.


Das heißt, ich kann in meinen Müllcontainer reinklettern, aber komme nicht wieder heraus. Woran liegt das? Hier die Definition des Müllcontainers:

Code:

A Muellcontainer is a male container in Seitenstrasse. It is fixed in place. It is openable, enterable and closed. The printed name is "Müllcontainer". Understand "Container" as Muellcontainer.


Das gleiche passiert übrigens auch im "Pointless Example", wenn ich in den Schrank gehe und ihn wieder verlassen will. :-)

Mario
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Alle Zeiten sind GMT + 1 Stunde (MEZ)

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