cuyo-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Cuyo-devel] Vorschlag: unbewegliche Variablen


From: Immanuel Halupczok
Subject: Re: [Cuyo-devel] Vorschlag: unbewegliche Variablen
Date: Mon, 05 Dec 2005 14:53:16 +0100
User-agent: Mozilla Thunderbird 1.0.2 (X11/20050602)

Mark Weyer a écrit :
Uber die ortsfesten Blops hab ich auch schon mal nachgedacht. Waere
zumindest konsequent, wenn auch die global-blobs blobs sind.

Performance-Overhead: Ich denke, wenn die of-blobs gar keinen Cual-Code
ausfuehren, wird's nicht so schlimm sein. (Allerdings hab ich schon oft
nicht-so-schlimm-Dinge hinzugefuegt, und auf die Dauer summiert sich das
sicher.) Wirklich Angst hab ich nur, wenn jemand anfaengt, die of-blobs
zu benutzen, d.h. wenn die auch alle noch Cual-Code ausfuehren.


Das würde ich aber machen wollen (sonst haben die ortsfesten Blops nicht
viel Sinn). Natürlich erspart es nur, einen cual-Aufruf in ganz viele
Sorten einzutragen. Aber das tut es eben auch und verbessert cual-code
damit konzeptionell. So wie der semiglobal Blop in labskaus bereits
dafür gesorgt hat, daß nicht jede Sorte etwas über Ballons wissen muß,
sie aber trotzdem nicht nur in nothing erscheinen.

Dann wuerde ich lieber die Moeglichkeit erlauben, dass es Code gibt, der von allen Sorten ausgefuehrt wird, unabhaengig von orstfest oder nicht. (Gleicher Code in vielen Sorten kann man auch in nicht-ortsfest wollen.)



Noch was: Die Bild-Stapel sind ja bisher noch in den Blobs drin. Die
sollten dann auch eher an den Orten sein, insbesondere weil ja mehrere
Blobs in die selben Stapel malen.


Das halte ich nicht für so wesentlich. Es ist mehr eine Frage der
Sauberkeit des C++-Entwurfs. Man kann es mal machen, aber extensional
wird das der Identitätsoperator sein. Bildstapel werden einfach pro
Schritt initialisiert, bemalt und ausgegeben und währenddessen gibt es
keine Wanderungen. Bis auf diese Optimierungen, die Du mal erwähntest.
Wie ist es da, würde man für die die Bildstapel nicht eher mitwandern
lassen lassen?


Hier stand mal ein Absatz, den ich aber revidiert habe. Übrig bleibt
eine Klammer: (A propos: Hast Du eine Syntax-Idee für das feature,
das in TODO steht, ich vermute von Dir dort eingetragen: Bei @ die
Hälfte mit angeben (links, rechts, hier oder drüben)? Für
links/rechts hätte ich an @<(0,0) / @>(0,0) gedacht oder so. Für hier
braucht man gar nichts, weil das der Default ist. Aber für drüben?
Irgendein symmetrisches Zeichen, (aber = weckt falsche
Assoziationen)? Oder <-, ->, <->? Die fehlende Syntaxidee ist der
einzige Grund, daß es das feature noch nicht gibt; die Infrastruktur
steht bereit.)

Ich wuerds in die Klammer schreiben, weil es Teil der Ortsangabe ist.
Also "@(0,0,>)", ... Fuer andere Seite vielleicht "@(0,0,!)" ("!" = "not" auf die Spielernummer anwenden). Dann waere statt "<", ">" auch "0", "1" moeglich. "0", "1" hat den Vorteil, dass es tendenziell auch mehr Sinn macht, dass man spaeter irgendwann Variablen dafuer einsetzen kann. Dafuer ist ">" deutlich uebersichtlicher, vor allem in der Klammer, weil man bei "@(0,0,1)" nicht weiss ob (0,0),Spieler1 oder Spieler0,(0,1) gemeint ist. Ich tendiere im Moment also zu <, >, !.




- Es gibt Events, die Code ausfuehren. In Abhaengigkeit vom Event
 kann bekommt der Code verschieden detaillierte Informationen ueber
 seinen Ort. (global-step-Event bekommt gar keine Information,
 draw-Event bekommt x,y,spieler,fallend?.)


Was ist der global-step-event? Ist das der draw-event vom global-blop?

Ja.

Dann würde ich sagen, ist das ein normaler draw-event, der halt nicht
bei sich selbst malen darf, aber vollständige Information über seinen
absoluten Ort bekommt, nämlich, daß er im global-blop ausgeführt wird.

Ok, ich sehe ein, dass ein Draw-Event was spezielles ist, da er malen darf. (Ansonsten haette ich gesagt: Es gibt keinen Grund, das der global-step-Event genauso heisst wie die normalen draw-Events, weil es sicher nicht vorkommen wird, dass der selbe Code fuer beides verwendet wird.)

Reminder to selves: Der global-blop sollte irgendwann mal pics lesen
dürfen. Noch braucht das aber kein Level, weil es den semiglobal-blop
gibt.

Stimmt.



Was genau "Blob" in dieser Welt bedeutet, ist mir nicht ganz klar.
Entweder, man verwendet "Blob" nur noch fuer die normal-beweglichen Dinge (und also nicht mehr fuer den Global-Blob), oder (vermutlich besser) "Blob" gibt es auch in den verschiedenen Geschmacksrichtungen, wobei allerdings Zuweisungen/etc. nur innerhalb einer Geschmacksrichtung erlaubt sind.


Bisher gibt es Variablen, Sorten, Blops, Code und Orte. Sorten sind
etwas mehr als ein großes switch; sie sind eine konzeptionelle

Stimmt. Diese konzeptionelle Buendelung muss man natuerlich beibehalten. Evtl. kann man sie aber davon trennen, in Bijektion zu den Sorten zu stehen. Ich wuerde z. B. in Nasenkugeln gerne folgende konzeptionelle Buendelungshirarchie verwenden:

Grau,
Gras,
(
  Schwarz,
  ( orange, rosa ),
  ( gruen, gelb )
)

Bündelung zusammengehörender Codes: bla.init und blub.init sind nur im
Sinne von switch verbunden, aber bla.init und bla.land kann man so
nicht verstehen.

Variablen gibt es pro Ort genau einmal. So könnte man Ort definieren.

Ok, so ist es bisher. (Das erzeugt halt den Overhead, dass man jede Variable, die man nur im globalen Blob braucht, auch in saemtlichen lokalen Blobs hat.)

Blops sind ein Paket aus Variablen, das eine Sorte hat, und sich
gemeinsam bewegt. Oder, im Fall von (semi)global-blops, auch nicht
bewegt, aber das auch gemeinsam.
Ich glaube, ich komme auch grad bei Deiner Auffassung an. Dann hätte
man pro Kästchen drei Blops, die sich die Variablen disjunkt
aufteilen. global/semiglobal wäre aber nur ein Blop. Was ist mit dem
Fall? Existieren alle Variablen an allen Orten (in irgendeinem Blop)?

Ich weiss nicht, ob ich die Frage verstehe. In meinem Weltbild stelle ich mir das Fall als zwei weitere, zusaetzliche Orte vor, an denen es die selben Variablen gibt wie bei den normalen beweglichen Blobs.


  Mark



P.S.: Immis Einträge im Changelog (also bei cvs commit) sind Englisch.
Soll ich das auch so machen?

Ja. Man kann ja zumindest mal pretenden, dass man ein kleines bisschen in Richtung englisch tendieren will. ;-)



--

--------------------------------------------------------------------------
    Immanuel Halupczok       www.karimmi.de       www.croco-puzzle.com
--------------------------------------------------------------------------





reply via email to

[Prev in Thread] Current Thread [Next in Thread]