{"id":104,"date":"2012-04-22T15:37:31","date_gmt":"2012-04-22T13:37:31","guid":{"rendered":"https:\/\/herr-rau.de\/blogs\/inform\/?page_id=104"},"modified":"2012-05-26T09:54:50","modified_gmt":"2012-05-26T07:54:50","slug":"klassen-und-attribute","status":"publish","type":"page","link":"https:\/\/herr-rau.de\/blogs\/inform\/?page_id=104","title":{"rendered":"Klassen und Attribute"},"content":{"rendered":"<p>Ein unvollst\u00e4ndiger \u00dcberblick:<\/p>\n<p><a href=\"https:\/\/herr-rau.de\/blogs\/inform\/files\/inform_klassen.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/herr-rau.de\/blogs\/inform\/files\/inform_klassen.png\" alt=\"\" title=\"inform_klassen\" width=\"903\" height=\"671\" class=\"alignnone size-full wp-image-143\" srcset=\"https:\/\/herr-rau.de\/blogs\/inform\/files\/inform_klassen.png 903w, https:\/\/herr-rau.de\/blogs\/inform\/files\/inform_klassen-300x222.png 300w, https:\/\/herr-rau.de\/blogs\/inform\/files\/inform_klassen-403x300.png 403w\" sizes=\"auto, (max-width: 903px) 100vw, 903px\" \/><\/a><\/p>\n<p>Die Attribute bedeuten Folgendes:<\/p>\n<h3>Allgemein<\/h3>\n<p>Diese Attribute haben alle Objekte; Inform setzt die Werte dabei oft automatisch richtig, so dass man sie meist nicht ver\u00e4ndern muss.<\/p>\n<ul>\n<li><strong>printed name<\/strong><br \/>\nDas ist der Name des Objekts, so wie ihn der Spieler zu sehen bekommt. Standardm\u00e4\u00dfig sieht der so aus wie der Objektbezeichner selber, so dass man nichts daran \u00e4ndern muss; man kann ihn aber auch \u00e4ndern, etwa wenn sich ein Objekt im Lauf des Spiels ver\u00e4ndert (<code>now the printed name of the clock is \"broken clock\"<\/code>) oder als etwas anderes herausstellt (<code>now the printed name of the strange man is \"Captain Nemo\"<\/code>).<\/li>\n<li><strong>printed plural name<\/strong><br \/>\nDasselbe f\u00fcr den Plural. Inform benutzt eine Form des <a href=\"http:\/\/www.csse.monash.edu.au\/~damian\/papers\/extabs\/Plurals.html\">Plural-Algorithmus von Damian Conway<\/a> und formuliert damit korrekt die Pluralformen oxen, geese (but mongooses), sheep, wildebeest, bream, vertebrae, quartos, wharves, phenomena, jackanapes und smallpox. Aber manchmal muss man bei einer so unregelm\u00e4\u00dfigen Sprache wie Englisch nachhelfen und die Pluralform explizit angeben. Auch hier geht es nur die Ausgabe f\u00fcr den Spieler.<\/li>\n<li><strong>singular-named\/plural-named<\/strong><br \/>\nDas entscheidet dar\u00fcber, ob als Verb &#8220;is&#8221; oder &#8220;are&#8221; ausgegeben wird. <code>Some seagulls are in the sky.<\/code> Wenn bei der Definition nicht &#8220;the&#8221; oder &#8220;a&#8221; angegeben wird, sondern &#8220;some&#8221;, erkennt Inform das Objekt automatisch als Plural und w\u00e4hlt die korrekte Form des Verbs bei der Ausgabe.<\/li>\n<li><strong>improper-named\/proper-named<\/strong><br \/>\nWenn ein Objekt <code>proper-named<\/code> ist, hei\u00dft das, dass dessen Name als Eigenname zu verstehen ist. Das beeinflusst unter anderem die Wahl des bestimmten\/unbestimmten Artikels bei der Ausgabe. Inform setzt ein Objekt automatisch auf <code>proper-named<\/code>, wenn bei der Erzeugung kein Artikel verwendet wird: <code>Captain Nemo is a man. Heaven is a room.<\/code>\n<\/li>\n<li><strong>indefinite article<\/strong><br \/>\nInform entscheidet selber, wann ein bestimmter oder unbestimmter Artikel (oder gar keiner) bei der Ausgabe verwendet werden muss. Der unbestimmte Artikel ist normalerweise &#8220;a\/an&#8221;, bei proper-named Objekten ist er standardm\u00e4\u00dfig <code>none<\/code>. Man kann ihn aber auch \u00e4ndern: <code>A knife is carried by the player. The indefinite article of the knife is \"your old\".<\/code>\n<\/li>\n<\/ul>\n<h3>R\u00e4ume<\/h3>\n<p>Hier muss man f\u00fcr den Anfang nur dem Beschreibungs-Attribut einen sinnvollen Wert zuweisen.<\/p>\n<ul>\n<li><strong>description<\/strong><br \/>\nEin String, der immer dann ausgegeben wird, wenn man sich den Raum anschaut. Enth\u00e4lt Hinweise auf m\u00f6gliche Ausg\u00e4nge, aber keine Angaben \u00fcber bewegliche Gegenst\u00e4nde dort. <code>The Wood is a room. \"A dark and dangerous forest. A road goes east.\"<\/code>\n<\/li>\n<li><strong>lighted\/dark<\/strong><br \/>\nStandardm\u00e4\u00dfig sind R\u00e4ume hell, in dunklen R\u00e4umen kann man fast nichts machen, wenn man keine Lichtquelle mit sich f\u00fchrt.\n<\/li>\n<li><strong>unvisited\/visited<\/strong><br \/>\nR\u00e4ume sind standardm\u00e4\u00dfig <code>unvisited<\/code>, solange der Spieler nicht in ihnen war. Nach dem ersten Aufenthalt dort wird das Attribut auf <code>visited<\/code> gesetzt. Den Wert wird man selten manuell zuweisen, kann ihn aber zuweilen f\u00fcr Bedingungen brauchen <code>if the number of unvisited rooms is greater than one<\/code>.\n<\/li>\n<li><strong>region<\/strong><br \/>\nR\u00e4ume k\u00f6nnen zu bestimmten Regionen geh\u00f6ren, so dass man f\u00fcr alle R\u00e4ume in einer bestimmten Region Regeln aufstellen kann. Ist f\u00fcr kleinere Projekte nicht so wichtig.\n<\/li>\n<\/ul>\n<h3>Gegenst\u00e4nde<\/h3>\n<p>Hier wird man mindestens das Beschreibungs-Attribut manuell setzen, die anderen teilweise auch.<\/p>\n<ul>\n<li><strong>description<\/strong><br \/>\nEin String, der immer dann ausgegeben wird, wenn man sich den Gegenstand anschaut. <code>The red cap is in the Family's House. The description is \"The cap is made of velvet and very soft and very red. It is your favourite cap.\"<\/code>\n<\/li>\n<li><strong>initial appearance<\/strong><br \/>\nEin String, der als Beschreibung des Objekts ausgegeben wird, solange man ihn noch nicht genommen hat, solange er also einfach so herumliegt oder -steht. <code>The red cap is in the Family's House. The description is \"The cap is made of velvet and very soft and very red. It is your favourite cap.\" The initial appearance is \"A piece of red cloth lying on the floor.\"<\/code> Braucht man f\u00fcr den Anfang nicht. Es gibt eine Abk\u00fcrzung: wenn man unmittelbar nach dem Erzeugen eines Objekts einen String ohne weitere Angaben macht, wird das als <code>initial appearance<\/code> verstanden. Man k\u00f6nnte den Code von eben also auch so schreiben: <code>The red cap is in the Family's House. \"A piece of red cloth lying on the floor.\" The description is \"The cap is made of velvet and very soft and very red. It is your favourite cap.\"<\/code><\/li>\n<li><strong>unlit\/lit<\/strong><br \/>\nEin Gegenstand kann entweder eine Lichtquelle sein oder nicht. Nur mit einer sichtbaren Lichtquelle kann man in einem dunklen Raum viel unternehmen. <code>The torch is lit.<\/code><\/li>\n<li><strong>inedible\/edible<\/strong><br \/>\nEssbare Gegenst\u00e4nde kann man essen, dann sind sie weg. <code>The cake is an edible thing.<\/code>\n<\/li>\n<li><strong>portable\/fixed in place<\/strong><br \/>\nTragbare Gegenst\u00e4nde kann man nehmen, andere nicht.<\/li>\n<li><strong>described\/undescribed<\/strong><br \/>\nBraucht man f\u00fcr den Anfang nicht. Ein Gegenstand, der als <code>undescribed<\/code> markiert ist, wird in der Liste der Gegenst\u00e4nde in einem Raum nicht ausgegeben, auch wenn er tats\u00e4chlich ja da ist.<\/li>\n<li><strong>unmarked for listing\/marked for listing<\/strong><br \/>\nBraucht man f\u00fcr den Anfang nicht. Das ist ein flag, den man setzen kann, wenn es darum geht, ob Gegenst\u00e4nde in einer speziellen Liste ausgegeben werden sollen oder nicht.\n<\/li>\n<li><strong>mentioned\/unmentioned<\/strong><br \/>\nBraucht man f\u00fcr den Anfang nicht. Das ist ein flag, den Inform setzt und der angibt, dass bei der aktuellen Raumbeschreibung dieser Gegenstand bereits erw\u00e4hnt wurde (etwa in einer Liste) und aktuell nicht noch einmal erw\u00e4hnt zu werden braucht.\n<\/li>\n<li><strong>(not) pushable beween rooms<\/strong><br \/>\nErst mal nicht wichtig. Macht Sinn bei Gegenst\u00e4nden, die man zwar nicht tragen kann, die man aber in den Nachbarraum schieben kann. <code>The table is not portable. It is pushable between rooms.<\/code><\/li>\n<li><strong>(not) wearable<\/strong><br \/>\nMan kann es anziehen oder nicht. <code>The red cap is a wearable thing in the House.<\/code><\/li>\n<li><strong>(not) scenery<\/strong><br \/>\nEin scenery-Objekt ist standardm\u00e4\u00dfig nicht tragbar und wird vor allem nicht als Gegenstand im Anschluss an eine Raumbeschreibung ausgegeben. Damit markiert man Dinge, die zur Dekoration eines Raumes geh\u00f6ren, die aber nicht wichtig genug sind, um den Spieler sofort darauf hinzuweisen. Weil sie nicht tragbar sind, sollte man in der Raumbeschreibung einen Hinweise auf ihre Existenz geben.<code>The Meadow is a room. \"A colourful meadow, full of grass and flowers and the humming of bees. Some beautiful flowers are scenery in the Meadow. The description is \"The flowers are red and yellow and orange. They smell nice.\"<\/code> Vermutlich sollte man aus dem Gras und den Bienen auch noch Deko-Objekte machen.<\/li>\n<li><strong>(not) handled<\/strong><br \/>\nF\u00fcr den Anfang nicht wichtig. Das ist ein flag, den Inform selber setzt, um zu markieren, ob ein Objekt schon mal in die Hand genommen wurde oder nicht. (Davon h\u00e4ngt zum Beispiel ab, ob als Beschreibung der Wert des Attributs description oder des Attributs initial appearance herangezogen wird.) Kann man in Bedingungen einsetzen: <code>if the cap has not been handled.<\/code><\/li>\n<li><strong>matching key<\/strong><br \/>\nJeder Gegenstand kann einen anderen Gegenstand als Schl\u00fcssel haben. Macht vor allem Sinn bei Gegenst\u00e4nden, die man \u00f6ffnen kann. <code>The matching key of the secret door is the magic stick.<\/code> oder einfacher <code>The magic stick unlocks the secret door.<\/code><\/li>\n<\/ul>\n<h3>Container (zum Teil auch Supporter)<\/h3>\n<ul>\n<li><strong>open\/closed<\/strong><br \/>\nEin Beh\u00e4lter kann offen sein oder geschlossen. Das hei\u00dft noch nicht, dass der Zustand ver\u00e4nderbar ist &#8211; eine Vase ist zum Beispiel immer offen.<\/li>\n<li><strong>unopenable\/openable<\/strong><br \/>\nEine Vase ist unopenable, ein Karton openable.<\/li>\n<li><strong>unlocked\/locked<\/strong><br \/>\nEin Beh\u00e4lter kann verschlossen sein oder nicht. Das hei\u00dft noch nicht, dass der Zustand ver\u00e4nderbar ist &#8211; eine Schatzkiste, in deren Schloss der Schl\u00fcssel abgebrochen ist, mag verschlossen sein, aber gar nicht mehr aufschlie\u00dfbar.\n<\/li>\n<li><strong>(not) lockable<\/strong><br \/>\nEin Karton ist nicht verschlie\u00dfbar, eine Schatzkiste m\u00f6glicherweise schon. Wenn ein Beh\u00e4lter lockable ist, dann kann der Spieler den Zustand von verschlossen auf aufgeschlossen (oder umgekehrt) nur dann setzen, wenn er im Besitz des matching key des Beh\u00e4lters ist.<\/li>\n<li><strong>(not) enterable<\/strong><br \/>\nEin Beh\u00e4lter oder Supporter kann so gro\u00df sein, dass man hinein beziehungsweise darauf kann (Bett, Stuhl, Schrank, Tisch, gro\u00dfe Kiste) oder nicht (Vase, Schultasche, Kaminsims).\n<\/li>\n<li><strong>opaque\/transparent<\/strong><br \/>\nEin Beh\u00e4lter kann durchsichtig sein oder nicht.<\/li>\n<li><strong>carrying capacity<\/strong><br \/>\nErst mal weglassen. Standardm\u00e4\u00dfig passen 100 Gegenst\u00e4nde in jeden Beh\u00e4lter\/Supporter, das kann man zwar auf einen niedrigeren Wert setzen, aber um zu verhindern, dass der Elefant in die Vase passt, muss man sich etwas Komplizierteres einfallen lassen (ein Gr\u00f6\u00dfen-Attribut etwa).\n<\/li>\n<\/ul>\n<h3>Device<\/h3>\n<p>Unterklasse zu Thing. Einziges neues Attribut: ist <strong>switched on<\/strong> oder <strong>switched off<\/strong>.<\/p>\n<h3>Person<\/h3>\n<p>Unterklasse zu Thing, mit den eigenen Unterklassen man, woman und animal. (Die Attribute female\/male werden automatisch gesetzt.)<\/p>\n<h3>Door<\/h3>\n<p>Unterklasse zu Thing. W\u00fcrde ich erst mal weglassen. Ist \u00e4hnlich wie der Container closed\/open, openable\/unopenable, (not) lockable; ist nie portable oder pushable between rooms. Benutzt wird eine T\u00fcr wie ein Raum: <code>The House is a room. East of the house is a door called the green door. East of the green door is a room called the Garden.<\/code> Das Attribut <strong>other side<\/strong> gibt den Raum an, der zur Zeit auf der anderen Seite der T\u00fcr ist.<\/p>\n<h3>Backdrop<\/h3>\n<p>Unterklasse zu Thing. Kann man erst mal weglassen. Ist ein Objekt, das nie portable oder pushable und \u00fcblicherweise scenery ist und die Eigenschaft hat, quasi an mehreren Orten gleichzeitig zu sein. Braucht man etwa f\u00fcr einen Fluss, der in mehreren R\u00e4umen zu sehen sein soll.<\/p>\n<p>&#8212; Einen besseren \u00dcberblick einschlie\u00dflich aller Vorbelegungen der Attribute gibt die zweite Seite des <a href=\"http:\/\/user.cs.tu-berlin.de\/~moreiser\/inform\/\">Cheat Sheets<\/a> von Mark-Oliver Reiser.<\/p>\n<hr\/>\n<p>Methoden, die als Teil der Klasse gekapselt sind, gibt es nicht, aber: siehe eigenen Eintrag dazu.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ein unvollst\u00e4ndiger \u00dcberblick: Die Attribute bedeuten Folgendes: Allgemein Diese Attribute haben alle Objekte; Inform setzt die Werte dabei oft automatisch richtig, so dass man sie meist nicht ver\u00e4ndern muss. printed name Das ist der Name des Objekts, so wie ihn &hellip; <a href=\"https:\/\/herr-rau.de\/blogs\/inform\/?page_id=104\">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-104","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/herr-rau.de\/blogs\/inform\/index.php?rest_route=\/wp\/v2\/pages\/104","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=104"}],"version-history":[{"count":0,"href":"https:\/\/herr-rau.de\/blogs\/inform\/index.php?rest_route=\/wp\/v2\/pages\/104\/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=104"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}