Forum moved to if-forum.org
Autor Nachricht
<  Einstieg in Inform/deutsch
Eike
BeitragVerfasst am: Mi, 23 März 2005 - 16:15  Antworten mit Zitat
Neuling
Neuling


Anmeldungsdatum: 23.03.2005
Beiträge: 14

Hallo!

Ich habe vor ein paar Tagen Inform entdeckt und war begeistert.
Jetzt würde ich gerne versuchen, ein deutsches Spiel zu schreiben, aber bis jetzt scheitere ich an technischen Schwierigkeiten.

Mein Compiler meldet sich mit "Inform 6.30 for Linux (27th Feb 2004)", das scheint ja der aktuelle zu sein. Die installierte englische Library ist Version ist Release 6/11.
Zusammen mit der deutschen Library hatte ich Schwierigkeiten (undefinierte Routinen), die wohl darauf zurückzuführen sind, dass sie auf Release 6/10 basiert. (Ist das richtig?)

Also hab ich mir Release 6/10 runtergaladen und trotzdem zwei Fehlermeldungen gekriegt:
line 33: Error: There is no action routine called "DekliniereSub"
line 33: Error: There is no action routine called "DekliniereAllSub"

Würde da ein zusätzliches Include (german.h?) helfen? Wenn ja: Wo include ich das?

Ich hab jetzt erstmal das Verb Dekliniere, das ja anscheinend eh nur für den Autor gedacht ist, auskommentiert. Wenn ich jetzt ein minimales Programm mit einem Raum und einem Gegenstand kompiliere, stosse ich (nach erfolgreichem Kompilieren) auf folgendes Problem:

[quote]
Du siehst hier ein Löwe.

>nimm alles
Löwe: Du trägst
[** Programming error: tried to test "has" or "hasnt" of nichts **]

[** Programming error: tried to test "has" or "hasnt" of nichts **]

[** Programming error: tried to test "has" or "hasnt" of nichts **]

[** Programming error: tried to test "has" or "hasnt" of nichts **]

# TGERMAN Warnung: 0 hat kein Geschlecht (has male/female/neuter)
[** Programming error: tried to test "has" or "hasnt" of nichts **]
dem nichts
# TGERMAN Warnung: 0 hat keine Deklination (dekl) jetzt bei dir.
[/quote]

Der Löwe is aber als male deklariert.
Was mach ich falsch?

Ciao,
Eike
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ChrisW
BeitragVerfasst am: Mi, 23 März 2005 - 17:44  Antworten mit Zitat
Abenteurer
Abenteurer


Anmeldungsdatum: 26.08.2002
Beiträge: 278
Wohnort: Leipzig

Mmh. Wo hast du denn deine Library-Version her? Unter www.textfire.de/archiv gibt es die offizielle Version der deutschen Inform-Library (Version 22, basierend auf der englischen 6/10). Die Dateien der englischen Library brauchst du nicht, alles, was benötigt wird, ist in dem Archiv mit drin. Abgesehen vom Compiler, den du aber ebenso auf der Seite herunterladen kannst. (Dass der Compiler Version 6.30 ist, ist in Ordnung. Der kommt auch mit der Library in Version 6/10 klar.)

In der Archivdatei mit der deutschen Library befindet sich eine PDF-Datei, die die speziellen Eigenschaften der deutschen Lib recht gut erklärt.

Das Grundgerüst für Quellcode mit der deutschen Lib sollte etwa so aussehen (ich hab mal das Beispielabenteuer von Max zusammengedampft):

Code:

!Konstanten, die für das Spiel benötigt werden:
Constant Story "RAUM";
Constant Headline "^^Ein kurzes Beispiel-Abenteuer^
             Copyright (c) 2001 by Maximilian Kalus^^";

Release 1;
Serial "010421";   !JJMMTT;

!Abbreviations hier her:

!***********************************************************
!Parser und ähnliche Dinge!
!***********************************************************

Include "Parser";
Include "VerbLib";

!***********************************************************
!***********************************************************
!Objekte der Karte
!***********************************************************
!***********************************************************

! Hier eigene Spielinhalte einfügen...

!***********************************************************
!Initialise-Routine, etc.
!***********************************************************

[ Initialise;
   !Startraum:
   location = Startraum;
   !Zeug für Spieler:
   
   !Daemons starten
   
   !Begrüßung:
   print_ret "^Langsam wachst du auf...^^";
];

!***********************************************************
!Grammatik
!***********************************************************

!------------------ Subs für neue Verben -------------------

!----------------------- Neue Verben ------------------------


Include "GermanG";

!------------------ Extended Verben ------------------------


end;

_________________
"Ein Musiker! Was will der hier so spät?" Stolzing (Meistersinger v.N.)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Eike
BeitragVerfasst am: Mi, 23 März 2005 - 18:24  Antworten mit Zitat
Neuling
Neuling


Anmeldungsdatum: 23.03.2005
Beiträge: 14

Hallo!

ChrisW hat folgendes geschrieben:
Mmh. Wo hast du denn deine Library-Version her? Unter www.textfire.de/archiv gibt es die offizielle Version


Meine englische Library kam mit Debian Linux.
Die deutsche hab ich von textfire.de.
(Ich hab die englische inzwischen "deaktiviert".)

Ich erweiter dein Beispiel mal leicht,
um meine Probleme zu zeigen...

Code:

! Hier eigene Spielinhalte einfügen...
Object Startraum "Startraum"
   with description "Jetzt geht's lo-os!",
   has light;
      
Object -> Ding "Ding"
   with description "Es ist mächtig dingig!",
      dekl 1,
   has neuter;


Beim Kompilieren sagt er

Zitat:
Inform 6.30 for Linux (27th Feb 2004)
"parserm.h", line 3949: Error: No such constant as "AMUSING__WD"
Compiled with 1 error


Beim Ausführen:

Zitat:
Release 1 / Serial number 010421 / Inform v6.30 Library 6/10 (deutsch) SD

Startraum
Jetzt geht's lo-os!

Du siehst hier ein Ding.

>nimm alles
Ding: Du trägst
[** Programming error: tried to test "has" or "hasnt" of nichts **]

[** Programming error: tried to test "has" or "hasnt" of nichts **]

[** Programming error: tried to test "has" or "hasnt" of nichts **]

[** Programming error: tried to test "has" or "hasnt" of nichts **]

# TGERMAN Warnung: 0 hat kein Geschlecht (has male/female/neuter)
[** Programming error: tried to test "has" or "hasnt" of nichts **]
dem nichts
# TGERMAN Warnung: 0 hat keine Deklination (dekl) jetzt bei dir.


Zitat:

In der Archivdatei mit der deutschen Library befindet sich eine PDF-Datei, die die speziellen Eigenschaften der deutschen Lib recht gut erklärt.


Die hab ich mir schon angekuckt, hat mir an dem Punkt aber nicht geholfen.

Danke für die Hilfe!
Eike
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Martin
BeitragVerfasst am: Mi, 23 März 2005 - 18:32  Antworten mit Zitat
Experte
Experte


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

Eike hat folgendes geschrieben:
Würde da ein zusätzliches Include (german.h?) helfen? Wenn ja: Wo include ich das?

Nein, benutze das Gerüst aus der Lib, auf das dich Christoph schon aufmerksam gemacht hat. Alle anderen Dateien werden aus den anderen heraus eingebunden. (Wie das in der englischen Lib funktioniert, steht im Inform FAQ. 'English.h' heißt bei uns 'German.h', 'Grammar.h' heißt 'GermanG.h', und die nur im Deutschen vorhandene 'TGerman.h' (Toni's German?) wird in 'German.h' eingebunden.)

Zitat:

[** Programming error: tried to test "has" or "hasnt" of nichts **]

Der Löwe mag 'male' sein. Hier wird aber auf das Objekt Nummer Null geprüft, das kein Objekt ist, und somit illegal. Eine Version von Tell, die ich heute morgen kompiliert habe, zeigt dies auch, wenn man z.B. die Marktfrau Helga aufheben will. Eine Version, die mit einer älteren Lib kompiliert wurde, arbeitet einwandfrei. Das sollte mal überprüft werden, irgendwo witd ta_ArticlesGenderOffset mit obj=0 aufgerufen. (Da Inform immer sehr vage Antworten gibt, und sich eher selten auf das Objekt mit seinem Namen bezieht, fällt das vielleicht nicht so auf.

Eike hat folgendes geschrieben:
Was mach ich falsch?

Du vielleicht nicht so viel, obwohl es dir als Neuling so vorkommen mag.

Vielmehr war es vielleicht falsch, die Lib vom Februar als stabil zu erklären. Probiere es einmal mit Version 21 oder 20, hätte ich fast gesagt aber - die sind nicht auf dem Server. Sollte man nicht vielleicht zumindest die vorletzte Version auch noch bereithalten, Max? (Oder andere? Ist das sinnvoll?)
_________________
Every silver lining has a cloud.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Eike
BeitragVerfasst am: Mi, 23 März 2005 - 18:40  Antworten mit Zitat
Neuling
Neuling


Anmeldungsdatum: 23.03.2005
Beiträge: 14

Hallo!

Zitat:

Der Löwe mag 'male' sein. Hier wird aber auf das Objekt Nummer Null geprüft, das kein Objekt ist, und somit illegal.


Nachtrag: Ich hatte den Löwen nicht als Wesen markiert!
Mein zweites Beispiel zeigt's ja nochmal: es "funktioniert" (bzw. halt mal genau nicht) auch, wenn man ein völlig dingiges Ding nimmt.

Ciao,
Eike
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ChrisW
BeitragVerfasst am: Do, 24 März 2005 - 19:30  Antworten mit Zitat
Abenteurer
Abenteurer


Anmeldungsdatum: 26.08.2002
Beiträge: 278
Wohnort: Leipzig

Ok, da bin ich jetzt ganz leicht überfragt. :) Aber vielleicht ist ja einfach nur die Sprache nicht richtig festgelegt?

Ich kompiliere meine Spiele immer mit

Code:
inform.exe (raum.icl)


und der ICL-Datei aus Max' Starterkit (ursprünglich von www.beimax.de, aber die Textadventureseiten dort sind wohl momentan nicht erreichbar?):

Code:

! Include-Datei für diverse Anweisungen an den Compiler!

! Ich habe hier einige Standard-Anweisungen als Kommentare
! eingefügt. Falls man diese nutzen will, einfach das Kommentar
! entfernen, die verherige Anweisung auskommentieren und
! Compiler starten!

! Standard-Compilation:
!-d2sxE1e~S
! Doppelte Leerzeichen nach Punkten, Fragezeichen, etc. löschen;
! Statistiken beim Compilieren ausgeben, # für jede 100 Zeichen der
! Compilation ausgeben; Fehlermeldungen im Microsoft-Stil,
! Abbreviations nutzen, um Platz zu sparen; Debugger ausschalten

! Debug-Version:
-d2sxE1e
! wie Standard-Compilation, nur mit eingeschaltetem Debugger!


! Abbreviations berechnen:
!-d2sxE1u~S
! wie Standard-Compilation, nur mit Switches berechnen!
! Der Code dauert lange zum Compilieren, doch gibt er am Ende
! eine Liste mit den Switches aus, welche man per Copy & Paste
! in den Code einfügen kann (einfacher geht das, wenn man die
! Compilation-Ausgabe in eine Datei umleitet, s. "compile.bat")


! So, nun die Sprache definieren und dem Compiler sagen, welche
! Datei(en) er compilieren soll:

+language_name="German"
compile raum.inf


Entschuldigt das Komplettzitieren, erschien mir hier am einfachsten.

Ganz am Schluss der Datei wird die verwendete Sprache eingestellt, damit die parserm.h "weiß", dass sie nicht english.h, sondern german.h laden muss.

Wenn es damit funktionieren sollte, sollten wir uns vielleicht die Frage stellen, ob Max' Starterkit inklusive jeweils aktueller stabiler Library nicht mit auf die Textfire-Archivseite sollte... momentan ist es in dem Durcheinander schwierig für Neulinge, die aktuelle deutsche Lib auch wirklich zum Laufen zu kriegen.
_________________
"Ein Musiker! Was will der hier so spät?" Stolzing (Meistersinger v.N.)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Eike
BeitragVerfasst am: Do, 24 März 2005 - 19:49  Antworten mit Zitat
Neuling
Neuling


Anmeldungsdatum: 23.03.2005
Beiträge: 14

Hallo!

ChrisW hat folgendes geschrieben:
Ok, da bin ich jetzt ganz leicht überfragt. :) Aber vielleicht ist ja einfach nur die Sprache nicht richtig festgelegt?


Das kann's nicht sein, er spricht ja Deutsch mit mir. Ich hab nochmal dein icl probiert, geht aber leider auch nicht.
Wenn jemand mal zu viel Zeit hat, kann er ja das sich ergebende inf ausprobieren, vielleicht bin ich ja auch gleich auf einen Fehler der Bibliothek gestossen.

Ansonsten hab ich viel "Spass" mit Deklinationen und co.
Wer weiss, ob Infocom jemals Adventures geschrieben hätte, wenn Deutsch US-amerikanische Landessprache wäre... :o)

Ich hab eine vielleicht einfacherer Frage:
Das mit den Deklinationen klappt ganz gut, nur beim "Du siehst hier (auch) " verwendet er bei mir den Nominativ...?
(Psychiater [...] has male animate, aber "Du siehst hier auch ein Psychiater.")

Danke für alle Hilfs-Versuche,
Eike
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ChrisW
BeitragVerfasst am: Do, 24 März 2005 - 20:18  Antworten mit Zitat
Abenteurer
Abenteurer


Anmeldungsdatum: 26.08.2002
Beiträge: 278
Wohnort: Leipzig

Eike hat folgendes geschrieben:
Wenn jemand mal zu viel Zeit hat, kann er ja das sich ergebende inf ausprobieren, vielleicht bin ich ja auch gleich auf einen Fehler der Bibliothek gestossen.


Hab ich längst, bei mir ergibt das das hier:

Zitat:
RAUM

Ein kurzes Beispiel-Abenteuer
Copyright (c) 2001 by Maximilian Kalus

Release 1 / Serial number 010421 / Inform v6.30 Library 6/10 (deutsch) SD

Startraum
Jetzt geht's lo-os!

Du siehst hier ein Ding.

>u ding
Du kannst nichts dergleichen sehen.

>nimm alles
Ding: Du trägst das Ding jetzt bei dir.

>


Einfach den Inhalt des Archivs mit der deutschen Inform-Library in ein leeres Verzeichnis kopiert, den Compiler von der Textfire-Seite in dieses Verzeichnis kopiert, raum.inf und raum.icl genau nach obigem Schema angelegt (Copy & Paste) und das Ganze mit "inform (raum.icl)" kompiliert. Klappt.

Wenn ich das Ganze ohne die "+language_name="German""-Zeile in der ICL-Datei kompiliere, funktioniert das erstmal gar nicht, weil die Datei english.h nicht vorhanden ist. Kopiere ich die in mein Verzeichnis und kompiliere, bekomme ich folgende Fehlermeldung:

raum.inf(63): Error: There is no action routine called "DekliniereSub"
raum.inf(63): Error: There is no action routine called "DekliniereAllSub"

Kommt dir das irgendwie bekannt vor?

Ich behaupte mal ganz steif und fest, dass mit deiner Inform-Installation irgendwas noch nicht richtig hinhaut. Entweder das oder wir haben hier ein spezifisches Linux-Problem, das ich unter WinXP nicht rekonstruieren kann.
_________________
"Ein Musiker! Was will der hier so spät?" Stolzing (Meistersinger v.N.)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ChrisW
BeitragVerfasst am: Do, 24 März 2005 - 20:40  Antworten mit Zitat
Abenteurer
Abenteurer


Anmeldungsdatum: 26.08.2002
Beiträge: 278
Wohnort: Leipzig

Kurzer Nachtrag zu "Wilhelm Tell" und der aktuellen Library-Version:

Zitat:
>version
Wilhelm Tell
Ein einfaches Bei-Spiel in Inform
von Roger Firth und Sonja Kesserich,
aus dem Englischen von Florian Edlbauer.
Release 2 / Serial number 020827 / Inform v6.30 Library 6/10 (deutsch) SD
Standard interpreter 1.1 (4F) / Library serial number 991120(bp)
Offizielle deutsche Inform-Library, Release 22, Serial 050212

>n

Ein Stück die Gasse hinunter
Immer noch quetschen sich Menschen durch das Stadttor im Süden und schieben die Menge in Richtung Marktplatz nach Norden. Du erkennst die Besitzerin eines Obst- und Gemüsestandes.
Helga hält einen Moment mit dem Sortieren von Kartoffeln inne, um dir freundlich zuzuwinken.

"Hallo, Wilhelm, was für ein schöner Markttag, was? Ist das der kleine Walter? Der ist aber gewachsen! Hier hast du einen Apfel für ihn -- die braunen Stellen kannst du ja wegschneiden, aber sonst ist er noch gut. Wie geht es deiner Frau? Sag schöne Grüße von mir."

>nimm helga
Ich nehme nicht an, daß Helga
# TGERMAN Warnung: 39 hat keine Deklination (dekl) das möchte.


Das ist eine komplett andere Fehlermeldung als die, die Eike hatte. Und sie erscheint völlig zu Recht, weil die liebe Helga tatsächlich keine Deklination hat. Also hat das mit Eikes Problem vermutlich wenig zu tun.

Bei mit früheren Libraryversionen kompilierten Versionen von Tell taucht das Problem nicht auf, weil da die Standardmeldung für gescheitertes Aufnehmen von Lebewesen noch eine andere war.

Zitat:
>nimm helga
Ich nehme nicht an, Helga würde sich dafür interessieren.

Klang nicht sonderlich elegant...

(Sämtliche Versuche natürlich mit frisch heruntergeladenen Versionen von Tell, der Library und des Compilers.)

Zum Psychiater:

Code:
object Psychiater ...
    dekl 2,
has male animate;


... müsste funktionieren. Aber bei mir funktioniert heute offenbar alles. *g*
_________________
"Ein Musiker! Was will der hier so spät?" Stolzing (Meistersinger v.N.)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Martin
BeitragVerfasst am: Do, 24 März 2005 - 22:02  Antworten mit Zitat
Experte
Experte


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

Zitat:
Komplett andere Fehlermeldung als die, die Eike hatte.

Okay, zu schnell geschossen, entschuldigt.

Eike hat folgendes geschrieben:
Das mit den Deklinationen klappt ganz gut, nur beim "Du siehst hier (auch) " verwendet er bei mir den Nominativ...?

Ja, das macht der "List-Writer", der aus dem Englischen übernommen wurde. Er wird für die beiden Fälle "Auf dem Tisch ist ..." und "Du siehst hier ..." verwendet, einmal also im Nominativ, ein anderes Mal im Akkusativ. Bei männlichen Objekten kommt es dann auf Deutsch zu Fehlern. Abhilfe wäre hier, beide Satzstrukturen zu vereinheitlichen, so dass nur ein Kasus auftritt. (Oder Christophs Ansatz zu versuchen, der eleganter ist.)

Eike hat folgendes geschrieben:
Also hab ich mir Release 6/10 runtergaladen und trotzdem zwei Fehlermeldungen gekriegt:
line 33: Error: There is no action routine called "DekliniereSub"
line 33: Error: There is no action routine called "DekliniereAllSub"

Die deutsche de22 (und ihre Vorgänger) bauen zwar auf der englischen 6/10 auf, das heißt aber nicht, dass man diese installieren muss. Die deutsche Lib ist eigenständig, und am besten in einem eigenen Verzeichnis aufgehoben. Wenn ich alles dateien des deutschen pakets in ein Verzeichnis lege und dann die 6/10 drüberbügle, kann ich das von dir beschriebene Verhalten reproduzieren.

Also: Entpacke die deutsche Lib in ein eigenes Verzeichnis de_22, und füge dann die Direktive +include_path=de_22 in deinem icl-File ein, dann sollte es klappen.

Totzdem rätselhaft: DekliniereSub wird in tgerman.h definiert, und die wurde ja eingebunden, sonst gäbe es nicht die Fehlermeldungen der deutschen Lib.
_________________
Every silver lining has a cloud.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ChrisW
BeitragVerfasst am: Do, 24 März 2005 - 22:36  Antworten mit Zitat
Abenteurer
Abenteurer


Anmeldungsdatum: 26.08.2002
Beiträge: 278
Wohnort: Leipzig

Martin hat folgendes geschrieben:
Ja, das macht der "List-Writer", der aus dem Englischen übernommen wurde. Er wird für die beiden Fälle "Auf dem Tisch ist ..." und "Du siehst hier ..." verwendet, einmal also im Nominativ, ein anderes Mal im Akkusativ. Bei männlichen Objekten kommt es dann auf Deutsch zu Fehlern. Abhilfe wäre hier, beide Satzstrukturen zu vereinheitlichen, so dass nur ein Kasus auftritt. (Oder Christophs Ansatz zu versuchen, der eleganter ist.)


Der Bug, der sich an dieser Stelle verbarg, ist in Version 22 endlich draußen. Dem Psychiater ein "dekl 2" zu verpassen, reicht, damit er sich korrekt verhält, unabhängig davon ob du ihn siehst oder ob er auf dem Tisch rumliegt.
_________________
"Ein Musiker! Was will der hier so spät?" Stolzing (Meistersinger v.N.)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Eike
BeitragVerfasst am: Do, 24 März 2005 - 22:56  Antworten mit Zitat
Neuling
Neuling


Anmeldungsdatum: 23.03.2005
Beiträge: 14

Hallo nochmal!

Ich hab nochmal reinen Tisch gemacht und die Jumpstart-"Edition" runtergeladen (die gibt's noch: http://www.beimax.de/if/jumpstart.html).
Es geht jetzt tatsächlich! Ich muss irgendwo bei meinen Versuchen, die deutsche Version zum Laufen zu bringen, verheddert haben.

Das einzige, was nicht auf Anhieb klappte, war die Schreibweise der Dateien (Linux besteht auf korrekter Gross- und Kleinschreibung) und dass mein Compiler die Optionen nur direkt, nicht per Optionsdatei zu nehmen scheint.

Und jetzt ist (wie Chris schreibt) sogar die "Du siehst"-Aufzählung korrekt!

Ich hätte noch eine Frage, und da wird's vermutlich wieder komplizierter:
Ich wollte den Psychologen aus DM4, Übung 18 implementieren. Ich hab mir in den Kopf gesetzt, dass er, wenn man etwas aufhwebt, sagen soll "Der Patient
scheint an (dicken grünen Buchern des Zauberers o.ä.) interessiert zu sein."
Ich habe mir aus den Tiefen der Library eine Funktion rausgesucht, die das fast tut: _em(noun). Vorher setze ich das Buch vorübergehend auf Plural.
Jetzt bekomm ich ausgegeben: "Der Psychiater stellt fest: "Der Patient scheint an dicken grünen Buchern des Zauberers1 interessiert zu sein."" Eine "1" zu viel. Hat dazu jemand einen Tip?

Ciao,
Eike
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ChrisW
BeitragVerfasst am: Fr, 25 März 2005 - 0:05  Antworten mit Zitat
Abenteurer
Abenteurer


Anmeldungsdatum: 26.08.2002
Beiträge: 278
Wohnort: Leipzig

Schön, dass es mit der Jumpstart-Version klappt! Um die ganze Sache nicht zu einfach zu machen, ist die dort enthaltene Library-Version inzwischen zwei Jahre alt. :/

Wenn du die aktuelle Version von textfire.de einfach drüberkopierst, müsste a) alles laufen und b) alles auf dem neuesten Stand sein. Aber wahrscheinlich hast du das sowieso schon gemacht.

Eike hat folgendes geschrieben:
Ich wollte den Psychologen aus DM4, Übung 18 implementieren.

Übung 26 ist das. :)

Zitat:
Ich habe mir aus den Tiefen der Library eine Funktion rausgesucht, die das fast tut: _em(noun). Vorher setze ich das Buch vorübergehend auf Plural.
Jetzt bekomm ich ausgegeben: "Der Psychiater stellt fest: "Der Patient scheint an dicken grünen Buchern des Zauberers1 interessiert zu sein."" Eine "1" zu viel. Hat dazu jemand einen Tip?


Versuchs doch mal mit:
Code:

object Psychologe ...
with ...
   react_before [;
      Take, Move:
            print "Der Patient scheint an ", (dem) Zaubererbuch,
                  " interessiert zu sein.^^";],
...

object Zaubererbuch "Buch"
with ....,
     post "des Zauberers",
     adj "dick" "grün",
     name 'buch',
     dekl 4,
has neuter;


Singular, erstmal.

Dafür brauchst du nicht in den Tiefen der Library zu kramen. Die spezifisch deutschen Sachen an der Library sind in dem mitgelieferten PDF eigentlich gut erklärt.
_________________
"Ein Musiker! Was will der hier so spät?" Stolzing (Meistersinger v.N.)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Martin
BeitragVerfasst am: So, 27 März 2005 - 17:55  Antworten mit Zitat
Experte
Experte


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

Eike hat folgendes geschrieben:
Ich habe mir aus den Tiefen der Library eine Funktion rausgesucht, die das fast tut: _em(noun). Vorher setze ich das Buch vorübergehend auf Plural.
Jetzt bekomm ich ausgegeben: "Der Psychiater stellt fest: "Der Patient scheint an dicken grünen Buchern des Zauberers1 interessiert zu sein."" Eine "1" zu viel. Hat dazu jemand einen Tip?

Wenn nach Ausgaben aus einer Routine unerklärliche Zahlen auftauchen (s. "spurious numbers" im DM4), meistens Einsen, liegt das daran, dass man einen Funktionsaufruf anstatt einer printing rule verwendet hat und dann der numerische Rückgabewert mit ausgegeben wird. Statt
Code:

print _em(noun)

muss es heißen:
Code:

print (em) noun

_________________
Every silver lining has a cloud.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Eike
BeitragVerfasst am: So, 27 März 2005 - 18:07  Antworten mit Zitat
Neuling
Neuling


Anmeldungsdatum: 23.03.2005
Beiträge: 14

Martin hat folgendes geschrieben:

Wenn nach Ausgaben aus einer Routine unerklärliche Zahlen auftauchen (s. "spurious numbers" im DM4), meistens Einsen, liegt das daran, dass man einen Funktionsaufruf anstatt einer printing rule verwendet hat und dann der numerische Rückgabewert mit ausgegeben wird.


Als mir Chris gesagt hat, dass die Nummer der Übung (mit dem Psychologen) nicht stimmt, ist mir aufgefallen, dass mein DM noch nicht Version 4 hatte. Ich hab mir jetzt erst mal die aktuelle Dokumentation besorgt, Debian hinkt da Jahre hinterher... :-/

Danke für die Tips! (Die nächste Frage kommt bestimmt ;o) )

Ciao,
Eike
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
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