IF-Forum

» IF-Forum - Autorencafé - Schreiben! - Problem mit Aaron Reeds "Dynamic rooms"
AntwortenNeues ThemaNeue Umfrage

Problem mit Aaron Reeds "Dynamic rooms"

Geschrieben um 19:22 am 20.01.2012 | Zitat | Editieren | Löschen
Krähe
Gast

Hallo,

Ich habe ein Problem mit der Extension "Dynamic Rooms" von Aaron Reed:

Inform gibt ganz einfach, wenn ich laut Anleitung richtige Sätze Eingebe, Fehlermeldungen aus: Und zwar führt dieser Ruleblock:



   let numb be a number;

   let numb be the number of dynamic rooms;

   now last-room is menuroom;

   repeat with rom running from 1 to numb:

      now current-room is a random dynamic room which is unpositioned;

      let dir be a random viable direction;

      let new-room be a newly created positioned room dir of last-room;

      now last-room is a random positioned dynamic room.```

zu dieser Fehlermeldung:

**Zitat:**
> This is the report produced by Inform 7 (build 6G60) on its most recent run through:

In Volume - Building the dynamic World, Book - Positioning rooms:

Problem. In the sentence 'let new-room be a newly created positioned room dir of last-room'  , I was expecting to read a value, but instead found some text that I couldn't understand - 'a newly created positioned room dir of last-room'.

I was trying to match one of these phrases:

1. let (new-room - a new name) be (a newly created positioned room dir of last-room - description of relations of values to values)

2. let (new-room - a new name) be (a newly created positioned room dir of last-room - name of kind)

3. let (new-room - a new name) be (a newly created positioned room dir of last-room - value)

4. let (new-room - a temporary named value) be (a newly created positioned room dir of last-room - value)

This was what I found out:

new-room = something unrecognised

a newly created positioned room dir of last-room = something unrecognised

In Part - I7 additions and replacements, Section - Special room features in the extension German by team GerX:

Problem. An internal error has occurred: tried to sort unslashed GLs. The current sentence is 'Understand "Ort [m]", "Platz [m]", "Raum [m]", "Standort [m]" and "Umgebung [f]" as "[basic-room-synonyms]"'  ; the error was detected at line 747 of "Chapter 25/Grammar Lines.w". This should never happen, and I am now halting in abject failure.

What has happened here is that one of the checks Inform carries out internally, to see if it is working properly, has failed. There must be a bug in this copy of Inform. It may be worth checking whether you have the current, up-to-date version. If so, please report this problem via [www.inform7.com/bugs.](http://www.inform7.com/bugs.)

 As for fixing your source text to avoid this bug, the last thing you changed is probably the cause, if there is a simple cause. Your source text might in fact be wrong, and the problem might be occurring because Inform has failed to find a good way to say so. But even if your source text looks correct, there are probably rephrasings which would achieve the same effect.

Die Phrase ist aber wörtlich aus der Documentation der Extension übernommen, nur die Variablen und Namen habe ich angepasst.

Hat jemand eine Idee, woran das liegen könnte?

Viele Grüße

Moritz.
Geschrieben um 14:35 am 21.01.2012 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Hallo Moritz,

leider ist es so, dass die meisten Erweiterungen, die für das Original-Inform geschrieben wurden, mit der deutschen Übersetzung nicht kompatibel sind. Da gibt es noch viel zu tun, aber momentan ruhen viele Arbeiten, da die nächste Version von Inform 7 für so grundlegend anders sein wird, dass es eigentlich Inform 8 heißen müsste.

Die bereits übersetzen und getesteten Erweiterungen findest du im folgenden Wiki:

http://german-inform.wikispaces.com/Inform+7+Erweiterungen

Ob alle der dort gelisteten Erweiterungen noch voll kompatibel mit der neuesten GerX-Version sind, kann ich aber nicht mit Sicherheit sagen.

Grüße,

Christian

Geschrieben um 17:55 am 21.01.2012 | Zitat | Editieren | Löschen
Krähe
Gast

German hebelt hier also Mechanismen der Standard Rules aus, die für das Funktionieren der Dynamic Rooms wichtig sind? Hm, schlecht. Äh... Grundlegend anders in welcher Hinsicht?

Geschrieben um 22:59 am 21.01.2012 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Krähe:

German hebelt hier also Mechanismen der Standard Rules aus, die für das Funktionieren der Dynamic Rooms wichtig sind? Hm, schlecht. Äh... Grundlegend anders in welcher Hinsicht?

Oder Dynamic Rooms hebelt Mechanismen von German aus. Ich kenne Dynamic Rooms noch nicht. Und bei der Erstellung der deutschen Extension haben wir auch nie Rücksicht auf bestehende Erweiterungen genommen.

GerX greift in grundlegende Bereiche des Systems ein, und ich vermute, dass Aaron Reed auch nicht gerade nur Kosmetik in seiner Erweiterung betreibt. Jetzt müsste man sich also hinsetzen und genau untersuchen, wo sich die Erweiterungen in die Quere kommen und eine Schnittstelle zwischen ihnen schaffen. Ich werde mir das morgen mal ansehen, vielleicht ist das ja alles gar nicht so wild.

Grüße,

Christian

EDIT: Hast Du Dynamic Rooms VOR oder NACH German eingebunden?

EDIT2: Ein erster Test konnte Deinen Fehler nicht reproduzieren. Die Erweiterungen scheinen sich auf den ersten Blick ganz gut zu vertragen.

Geschrieben um 01:53 am 22.01.2012 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Oha!

Offenbar war ich viel zu pessimistisch, was das Einbinden von Original-Erweiterungen angeht: GerX und Dynamic Rooms mögen sich, zumindest war das erste Date gar nicht so übel. Ich habe mal Aarons "Frobozz Magic Excavator"-Beispiel (aus der Doku zu Dynamic Rooms) ins Deutsche übertragen und es scheint alles korrekt zu funktionieren, sogar mit Martins neuen, alternativen Genus-Definitionen. Allerdings weiß ich noch nicht, wie man bei dynamisch erzeugten Räumen das passende Vokabular anlegen sollte.

(Getestet mit der aktuellen German Version 3/111222.)

http://dl.dropbox.com/u/2691966/excavator.txt

So weit, so gut.

Das erklärt aber noch nicht Deinen Fehler, Moritz. Möglicherweise ist in Deinem Code was nicht OK? Mag der Compiler den Bezeichner "new-room" etwa nicht? Schwer zu sagen ohne den ganzen Code zu sehen.

Beste Grüße,

Christian

Geschrieben um 12:27 am 22.01.2012 | Zitat | Editieren | Löschen
Krähe
Gast

Zitat:

EDIT: Hast Du Dynamic Rooms VOR oder NACH German eingebunden?

Die eingebundenen Extensions sind: (In der Reihenfolge): German by team GerX; Dynamic Rooms by Aaron Reed; Dynamic Objects by Jesse McGrew.

Auch wenn ich German nach hinten stelle, verändert sich nichts an der Situation, auch nicht, wenn ich Dynamic Objects ausschließe. German ist aber wohl unschuldig, es funktioniert nämlich auch ohne German nicht.

Die Frage ist wohl eher, wo der Unterschied liegt zwischen

let new-room be a newly created room dir of last-room; und let rm be a newly created positioned room noun of location with name "Höhle[f]";. Das "positioned iste se nicht, denn deine Definition funktioniert auch ohne dieses Wort.

Was das reproduzieren des Fehlers angeht - das könnte damit zusammenhängen, dass ich hier gnome-inform7 habe, also mit dem Linux-Frontend. Aber das müsste doch den Quelltext nicht beeinflussen, oder?

Viele Grüße

Moritz.

Geschrieben um 15:49 am 23.01.2012 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Hallo Moritz,

ich habe mir Deine Carry-out-Rule mal genauer angesehen. Damit scheint es mehrere Probleme auf einmal zu geben, jedenfalls bekomme ich jetzt den gleichen Fehler wie Du.

Die Phrasen für die Zuweisung von Variablen stimmen wohl nicht so ganz mit den Phrasen überein, die Aaron definiert hat. Hast Du die wirklich aus irgendeinem Beispiel übernommen? Wenn ja, aus welchem?

"Positioned" und "unpositioned" sind jedenfalls keine Adjektive (Attribute), sondern "positioned" kommt lediglich als Teil einer feststehenden To-decide-Phrase in Aarons Extension vor:

blue

"Unpositioned" gibt es dort überhaupt nicht.

Eine veränderte Version Deiner Rule compiliert. Ob sie noch macht, was sie machen soll, weiß ich nicht. Aber es fehlte bei einer Phrase auch noch der Zusatz "with <NAME>". Wertzuweisungen mit "now ... is ..." funktionieren wohl auch nur mit Eigenschaften, also Now the apple is mouldy. Aber nicht *Now the apple is the pear.



Last-room, menuroom, new-room and current-room are rooms.

   

Carry out positioning rooms&#58;

   let numb be a number;

   let numb be the number of dynamic rooms;

   let last-room be menuroom;

   repeat with rom running from 1 to numb&#58;

      let current-room be a random dynamic room;

      let dir be a random viable direction;

      let new-room be a newly created positioned room dir of last-room with name "***BAUSTELLE***";   

      now last-room is a random dynamic room.```

Grüße,

Christian
Geschrieben um 16:55 am 23.01.2012 | Zitat | Editieren | Löschen
Krähe
Gast

"Positioned" und "Unpositioned" habe ich selber definiert, um herauszufinden, ob ein raum schon da ist, wo er hingehört (Also in die Welt eingebunden). Das hat sich dann wohl mit der Definition der Extension überschnitten; Das habe ich jetzt gefixt, aber Inform tat immer noch nicht. Der Name hat gefehlt.... Jetzt funktioniert er. Vielen Dank, Christian!

Viele Grüße

Moritz.

AntwortenNeues ThemaNeue Umfrage
Powered by Spam Board SVN © 2007 - 2021
Impressum / Datenschutz