IF-Forum

» IF-Forum - Autorencafé - Schreiben! - Parsen von Nummern im Name
AntwortenNeues ThemaNeue Umfrage

Parsen von Nummern im Name

Geschrieben um 11:56 am 23.05.2004 | Zitat | Editieren | Löschen
Kris
Mitglied
Dr Gumby
Beiträge: 181

Hi,

ich knobel gerade an einem Problem mit Nummern.

Ich habe drei Schalter (in einem Raum), die nicht nur mit "schalter eins" oder "erster schalter" erkannt werden sollen, sondern auch über "schalter 1", "schalter 2" usw.

Nach einigen Fehlversuchen habe ich es mit parse_name versucht:



...

if (nextword() == '1' return 2);

...```

Leider wird bei

>x schalter 1

das Objekt immer noch nicht erkannt.

Hat jemad eine Idee oder gar Lösung?

Grüße

Kris
Geschrieben um 17:25 am 23.05.2004 | Zitat | Editieren | Löschen
Frottee
Mitglied
Student Gumby
Beiträge: 36

Hallo Kris,

ein ähnliches Problem hatte ich auch mal (siehe auch folgender Thread weiter unten: http://www.ifzentrale.de/forum/viewtopic.php?t=455).

Willst du ein einzelnes Zeichen in das Wörterbuch aufnehmen, dann mußt du zwei 'Slashs' hintenanstellen, soweit ich weiß. Also statt '1' immer '1//' angeben.

Marc

PS: Wenn ich da was falsch verstanden habe, dann korrigiert mich bitte.

Geschrieben um 17:28 am 23.05.2004 | Zitat | Editieren | Löschen
Frottee
Mitglied
Student Gumby
Beiträge: 36

Hmmm, zugegeben, mir ging es in dem o.a. Thread um etwas anderes, aber du kannst in Martins Codebeispiel erkennen, wie es funktioniert.

Geschrieben um 17:45 am 23.05.2004 | Zitat | Editieren | Löschen
Kris
Mitglied
Dr Gumby
Beiträge: 181

Tausend Dank!

Unglaublich... und so einfach!

Ich habe nochmal im DM4 gesucht, darüber steht aber nichts drin.

Martin scheint wohl einer der wenigen "Inform-Rookies" (wie er sich selbst nennt) zu sein, die auf fast alle Fragen eine Antwort haben.

@Martin: Woher wusstest Du das mit den Slashes???

Kris

Geschrieben um 19:14 am 23.05.2004 | Zitat | Editieren | Löschen
Kris
Mitglied
Dr Gumby
Beiträge: 181

Zitat:

Ich habe nochmal im DM4 gesucht, darüber steht aber nichts drin.

Stimmt nicht!

Ich habe es gerade auf Seite 10 gefunden. Bei den Grundlagen der Grundlagen sozusagen.

Es hat nichts mit der Zahl sondern mit der Länge (oder besser gesagt Kürze) des "Wortes" zu tun. Alle Wörter die nur aus einem Buchstaben bestehen, müssen mit "//" (z.B. 'h//') angegeben werden.

Grüße

Kris

Geschrieben um 22:22 am 23.05.2004 | Zitat | Editieren | Löschen
Martin
Avatar
Mitglied
Prof Gumby
Beiträge: 634

Kris:

Woher wusstest Du das mit den Slashes???

Know thine enemy... :-)

Naja, diese Notation taucht öfters im DM4 auf, z.B. ab Seite 261, wo es um die Übersetzung der Lib (und ihrer Ein-Zeichen-Abkürzungen) geht, oder in der Lösung zu Aufgabe 67, wo die einzelnen Scrabble-Steine Namen mit nur einem Buchstaben haben.

Letzten Endes ist diese Notation nur eine Krücke, da die ZSCII-Werte von Zeichen und Vokabeln die Syntax "Zeichen in Hochkommas" verwenden.

Graham selbst:

If I were free to redesign the Inform grammar in the light of the last three years' experience (which I am loath to do, since so much Inform source code now exists), here are the changes I think I would make:

  • introduce commas as separators between array values and <<Action ...>> parameters;
  • remove the statements quit, restore, save, style, font, spaces, box, inversion and read: the first three ought to be used via the assembler anyway, and the last six ought to be system-provided functions;
  • use single quotes to refer to dictionary words used as values of "name", thus removing an anomalous rule going back to Inform 1, and to refer to dictionary words in grammar;
  • #cc0000
  • abolish the distinction between actions and fake actions;
  • rename the Global directive "Variable";
  • require an = sign to be used in "Constant X 24" directives.

(Inform Technical Manual, Kapitel 5.4, eher zähe Lektüre. Das vorgeschlagene Format sind je zwei Hochkommas vor und nach dem Zeichen, keine Gänsefüßchen.)

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