IF-Forum

» IF-Forum - Autorencafé - Schreiben! - Container und Supporter
AntwortenNeues ThemaNeue Umfrage

Container und Supporter

Geschrieben um 21:12 am 10.05.2004 | Zitat | Editieren | Löschen
Kris
Mitglied
Dr Gumby
Beiträge: 181

Hallo,

vor einiger Zeit habe ich den Mund ziehmlich voll genommen und angekündigt, eine Extension zu schreiben um ein Objekt zu einem Container und Supporter machen zu können.

Mein erster Versuch scheiterte, das Prinzip war, über Attribute fest zu legen, ob der Gegenstand in oder auf dem Objekt ist. Bei jeder Aktion die das Objekt auf dem z.B. Schrank betraf, wurde der Schrank "still" geöffnet und danach wieder geschlossen.

Dies erlaubte aber nur eine gewisse tiefe der Pfade, hinzu kam das Problem mit dem Listwriter auf das ich dann eigentlich erst durch den Test von Martin gestossen wurde.

Dann änderte ich das Konzept, und arbeitete mit einem unsichtbaren Sammelcontainer der jedem ContainerUNDSupporter per ad_to_scope hinzugefügt wurde. Jeder Gegenstand der drauf gelegt wurde, landete in diesem Conainer. Dem Gegenstand wurde die Property "loc" gegeben. Diese Property bestimmt die eigentliche Location des Objektes.

Bei diesem Versuch war ein ausgiebiges "Studium" des Kapitels "Scope and what you can see" notwendig.

Dabei bin ich überraschenderweise auf die Exercise 103 gestossen, die nämlich genau das generiert: ein Objekt auf das und in das ich etwas legen kann. (zugegeben war ich ziehmlich sauer auf diejenigen, die hier "immer wieder" schrieben, dass ein Gegenstand in Inform nicht beides sein kann ohne aber einmal auf diesen Trick hinzuweisen :-)

Nach einigen weiteren Versuchen über eine Class ein solches Objekt erzeugen zu können bin ich immer wieder auf das Problem gestossen, ob etwas sichtbar und/oder auch greifbar ist.

Wenn man nämlich eine neue Look-Funktion (z.B. sieh hinter oder sieh neben) würde diese nicht als solche erkannt und einer "Greifbar"-Prüfung unterzogen.

Da nun sowieso eine Lösung für dieses Problem besteht sehe ich auch keine Notwendigkeit, eine globale Lösung zu schaffen (wenn es überhaupt möglich ist).

Also kapitulierte ich endgültig, weil mein eigentliches Spiel nämlich gar nicht mehr voran kam und ich mich an dieser sch... Geschichte verbissen hatte. (nichts desto trotz habe ich ein Haufen über Scope und den Listwriter gelernt :-)

Wer also einen Gegenstand zum Supporter und Container machen möchte, einfach mal Exercise 103 lesen...

Wer sich nun fragt was das hier soll!??? Ganz einfach: Nachdem ich mich so weit aus dem Fenster gelehnt hatte wollte ich wenigstens auch meinen Rückzieher melden.

Grüße

Kris

Geschrieben um 23:00 am 10.05.2004 | Zitat | Editieren | Löschen
ChrisW
Mitglied
Dr Gumby
Beiträge: 275

Kris:

(zugegeben war ich ziehmlich sauer auf diejenigen, die hier "immer wieder" schrieben, dass ein Gegenstand in Inform nicht beides sein kann ohne aber einmal auf diesen Trick hinzuweisen :-)

Entschuldige, war mir schlicht nicht bekannt.

Geschrieben um 07:21 am 11.05.2004 | Zitat | Editieren | Löschen
Kris
Mitglied
Dr Gumby
Beiträge: 181

Ich gehe davon aus, dass diese Übung kaum bekannt war, sonst hätte bestimmt jemand darauf hingewiesen. (Nicht dass ihr mich falsch versteht, ich war nicht wirklich sauer - wenn dann auf mich, daß ich trotz intensiver Auseinandersetzung mit dem Thema diese Exercise nicht erkannt habe...)

Kris

Geschrieben um 08:26 am 11.05.2004 | Zitat | Editieren | Löschen
Martin
Avatar
Mitglied
Prof Gumby
Beiträge: 634

Kris:

(zugegeben war ich ziehmlich sauer auf diejenigen, die hier "immer wieder" schrieben, dass ein Gegenstand in Inform nicht beides sein kann ohne aber einmal auf diesen Trick hinzuweisen :-)

Richtig ist: In der Inform-Lib kann ein Objekt nicht Behälter und Ablage gleichzeitig sein. Denn in Aufgabe 103 werden zwei Objekte (im Sinne eines Objekts im z-Code) benötigt, die dann natürlich ein und denselben Gegenstand repräsentieren. Und in Anson Turners Platypus können Objekte tatsächlich Behälter, Ablagen und "Verstecke" (unter denen man etwas verstecken kann) sein.

Die Lösung zur Aufgabe 103 hat allerdings auch einen kleinen Haken: Alles, was oben auf der Sterilisierungsmaschine ist, ist zwar sichtbar, aber das Token [multiinside] spricht nicht darauf an. "Nimm alles von der Maschine" funktioniert also nicht, genauso wenig "nimm den Oberndorfer Generalanzeiger vom Sterilisierer". Man kann also nur "nimm Anzeiger" sagen, da die Umleitung auf top_of_wm erst nach der Analyse durch den Parser erfolgt.

Geschrieben um 10:40 am 11.05.2004 | Zitat | Editieren | Löschen
Gast
Gast

Hmm... also doch wieder ein Haken... :-)

Naja, ich denke ich habe mir an dem Thema die Hörner ordentlich abgestossen.

Ich werde in Zukunft also auch etwas auf das Nachttischschränkchen legen und in dessen Schublade nach etwas suchen, oder die Kohle in den Kohleherd schmeissen und den Topf auf dessen Herdplatte, so habe ich auch ein "Multifunktions-Objekt" :-)))

Grüße

Kris

Geschrieben um 10:51 am 11.05.2004 | Zitat | Editieren | Löschen
Kris
Mitglied
Dr Gumby
Beiträge: 181

Sorry,

letzter Beitrag war von mir (als Gast - weil nicht eingeloggt).

Kris

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