{"id":219,"date":"2012-05-26T11:57:02","date_gmt":"2012-05-26T09:57:02","guid":{"rendered":"https:\/\/herr-rau.de\/blogs\/inform\/?page_id=219"},"modified":"2012-05-26T11:57:02","modified_gmt":"2012-05-26T09:57:02","slug":"objekte-und-ihre-erzeugung","status":"publish","type":"page","link":"https:\/\/herr-rau.de\/blogs\/inform\/?page_id=219","title":{"rendered":"Objekte und ihre Erzeugung"},"content":{"rendered":"<p>Die meisten Objekte im Spiel geh\u00f6ren entweder zu den Klasseen <code>thing<\/code> oder <code>room<\/code>. Eigene oder bereits vorhandene Unterklassen (container, supporter) erheben direkt oder \u00fcber Zwischenschritte von einer dieser beiden Klassen. (Daneben gibt es etwa noch <code>direction<\/code>, und alle zusammen erben von der obersten Klasse <code>object<\/code>.)<\/p>\n<p>Konstruktoren im eigentlichen Sinn gibt es nicht, durch das Verb &#8220;is&#8221; in einer deklarativen Aussage wird ein Objekt einer Klasse erzeugt:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">The red cap is a thing.\r\n<\/pre>\n<p>Dabei geschehen drei Dinge:<\/p>\n<ol>\n<li>Der <strong>Bezeichner<\/strong> des Thing-Objekts ist <code>red cap<\/code>. Den Bezeichner kann man nachtr\u00e4glich nicht \u00e4ndern.<\/li>\n<li>Das <strong>Attribut<\/strong> <code>printed name<\/code> des Objekts wird auf den Wert &#8220;red cap&#8221; gesetzt. Das ist der Name des Objekts, der in der Anzeige ausgegeben wird. Der Name kann zum Beispiel deutlich l\u00e4nger sein als der Objektbezeichner, vor allem kann der Attributwert im Lauf des Spiels nat\u00fcrlich ge\u00e4ndert werden: <code>Instead of eating the cap: now the printed name of the cap is \"piece of cloth with teeth marks\"<\/code>.<\/li>\n<li>Die <strong>W\u00f6rter<\/strong> &#8220;red&#8221; und &#8220;cap&#8221; werden mit dem Objekt <strong>assoziiert<\/strong>, damit der Parser wei\u00df, wie er diese W\u00f6rter interpretieren soll. Technisch geschieht das durch ein name-Attribut des Objekts, in das man als Autor aber keinen unmittelbaren Einblick hat. Man kann der Menge assoziierter Vokabeln bei der Erzeugung von Objekten weitere hinzuf\u00fcgen:<br \/>\n<blockquote><p><code>Understand \"hat\" as the cap. Understand \"piece of cloth\", \"cloth\", \"teeth marks\" as the cap when the printed name of the cap is \"piece of cloth with teeth marks\".<\/code> <\/p><\/blockquote>\n<p>Alles was nach dem when im letzten Satz kommt, ist eine Bedingung (mit dem Ergebnis true\/false). Diese Bedingung kann nat\u00fcrlich alle m\u00f6glichen Formen annehmen.\n<\/li>\n<\/ol>\n<hr\/>\n<p>Dynamische Erzeugung von Objekten zur Laufzeit: Gibt es erst einmal nicht. Mit der Extension Dynamic Objects kann man sich selber einen Konstruktor schreiben, mit dem man auch zur Laufzeit ein neues Objekt einer Klasse erzeugen kann, indem man etwa schreibt:<\/p>\n<blockquote><p><code>[Wenn eine bestimmte Situation gegeben ist:]<br \/>\nlet the newcomer be a new camel;<br \/>\nnow the newcomer is in the desert.<br \/>\n<\/code><\/p><\/blockquote>\n<p>Aber das ist tats\u00e4chlich nur eine unsch\u00f6ne Notl\u00f6sung.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die meisten Objekte im Spiel geh\u00f6ren entweder zu den Klasseen thing oder room. Eigene oder bereits vorhandene Unterklassen (container, supporter) erheben direkt oder \u00fcber Zwischenschritte von einer dieser beiden Klassen. (Daneben gibt es etwa noch direction, und alle zusammen erben &hellip; <a href=\"https:\/\/herr-rau.de\/blogs\/inform\/?page_id=219\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":94,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-219","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/herr-rau.de\/blogs\/inform\/index.php?rest_route=\/wp\/v2\/pages\/219","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/herr-rau.de\/blogs\/inform\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/herr-rau.de\/blogs\/inform\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/herr-rau.de\/blogs\/inform\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/herr-rau.de\/blogs\/inform\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=219"}],"version-history":[{"count":0,"href":"https:\/\/herr-rau.de\/blogs\/inform\/index.php?rest_route=\/wp\/v2\/pages\/219\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/herr-rau.de\/blogs\/inform\/index.php?rest_route=\/wp\/v2\/pages\/94"}],"wp:attachment":[{"href":"https:\/\/herr-rau.de\/blogs\/inform\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=219"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}