AW: [Squeak-ev] Schleifen und Skriptunterbrechung
Knut Polkehn
knut.polkehn at rz.hu-berlin.de
Fre Dez 16 16:40:38 UTC 2005
Hallo Markus,
Habe gerade nochmal schnell das Beschrieben umgesetzt. Vielleicht hilft es
ja.
Viele Grüsse
Knut
-------------------------------------------------------
Dipl.-Psych. Knut Polkehn
Ingenieurpsychologie / Kognitive Ergonomie
Institut für Psychologie
Humboldt-Universität zu Berlin
Rudower Chaussee 18
12489 Berlin
-------------------------------------------------------
mailto:knut.polkehn at rz.hu-berlin.de
Tel. : +49(30)2093 9357
Mobil: +49(172)803 7387
Fax : +49(30)2093 2021 9357
WWW : http://www3.psychologie.hu-berlin.de/ingpsy
-------------------------------------------------------
> -----Ursprüngliche Nachricht-----
> Von: squeak-ev-bounces at lists.squeakfoundation.org
> [mailto:squeak-ev-bounces at lists.squeakfoundation.org] Im
> Auftrag von Markus Schlager
> Gesendet: Donnerstag, 15. Dezember 2005 23:15
> An: e.V. Squeak
> Betreff: [Squeak-ev] Schleifen und Skriptunterbrechung
>
> Liebe Squeaker,
>
> Tweak ist leider noch nicht so weit, wie ich es mir wünschen
> würde, und so
> stehe ich immer noch vor dem Problem, so etwas wie
> Zaehlschleifen und bedingte
> Wiederholungen in eToys zu benötigen, wenn ich ab Februar Squeak im
> Informatikunterricht einsetzen möchte.
>
> Ich habe durchaus verstanden, daß diese imperativen Konzepte
> nicht so ganz im
> objektorientierten Sinne der eToys sein mögen, aber Lehrplan
> ist Lehrplan und
> so ganz unsinnig ist es dann ja auch wieder nicht, diese Konzepte
> kennenzulernen (Zielgruppe sind bei mir Siebtklässler, die
> schon etwas über
> Kalssen, Objekte, Nachrichten und Methoden gelernt haben und
> nun in die
> Ablaufmodellierung einsteigen sollen. Grob gesagt möchte ich
> mit Squeak das
> machen können, was z.B. Robot Karol bietet).
>
> Die Grundidee, an der ich momentan herumzubasteln versuche,
> ist letztlich eine
> Klasse 'Schleifenblock', realisiert in eToys als ein
> Behälter-Morph, das als
> Objektlager Zuweisungskacheln für seine eigenen Variablen
> enthält (sowie
> evtl. deren Beobachter). Die Variablen sind das Objekt, dem
> der Schleifenblock
> dienen soll, die Schleifenzahl bzw. -bedingung sowie das
> Skript, das in der
> Schleife ausgeführt werden soll.
>
> In einer Vorversion (noch ohne eigene Schleifenblock-klasse)
> z.B. zum Zeichnen
> von Vielecken sieht das etwa so aus:
>
> +++++++++++++++++++++++++++++++++
> zaehlschleife
> self getSchleifenzaehler > 0 ~~ false
> ifTrue: [self doScript: self getSchleifenskript.
> self setSchleifenzaehler: self
> getSchleifenzaehler
> - 1]
> ifFalse: [self stopScript: #zaehlschleife]
>
> machZaehlerMal: t1
> self setSchleifenskript: t1.
> self startScript: #zaehlschleife
>
> schritt
> self forward: 50.
> self turn: 36
>
> weg
> self setSchleifenzaehler: 10.
> self machZaehlerMal: #schritt
> ++++++++++++++++++++++++++++++++++
>
> Das läuft soweit ja auch ganz schön. Daß der Schleifeninhalt ein
> eigenständiges Skript ist (schritt), stört mich nicht gar zu
> sehr und hat
> didaktisch durchaus auch gute Seiten.
>
> Mein echtes Problem tritt in dem Moment auf, in dem im
> Hauptprogramm 'weg' vor
> und nach der Schleife mit den zehn Schritten noch andere
> Dinge passieren
> sollen, etwa weil das MorphObjekt ein Muster aus solchen
> Zehnecken zeichnen
> soll (wobei ich gerne zusehen können möchte, wie die Zehnecke
> Seite für Seite
> gezeichnet werden - als extreme Notlösung, bei der so ein
> Zehneck dann auf
> einmal da wäre, habe ich bei den Spaniern schon einen Patch für ein
> TimesRepeatTile gefunden).
>
> Konkretes Bsp:
>
> +++++++++++++++++++++++++++++++
> langerWeg
> self forward: 100.
> self setSchleifenzaehler: 10.
> self machZaehlerMal: #schritt.
> self forward: 200.
> self turn: 20
> +++++++++++++++++++++++++++++++
>
> Das führt dazu, daß die 'forward: 200' parallel zu den zehn Schritten
> ausgeführt werden anstatt erst im Anschluß.
>
> Daher die Frage: Gibt es eine Möglichkeit, das Skript
> 'langerWeg' anzuhalten,
> sobald die Zehnerschleife beginnt, und es im Anschluß daran
> _beginnend mit der
> Zeile 'self forward: 200'_ wieder zu starten? Oder läßt mir der
> Step-Mechanismus hier keine Chance?
>
> Und weil ich schon einmal am Fragen bin: Weiß jemand von euch
> zufällig, ob ich
> größere Komplikationen zu erwarten habe, wenn das
> squeakland-Image ohne ein
> secure-Verzeichnis laufen soll? (So ganz habe ich Sinn, Zweck und
> Funktionsweise des Security-Systems noch nicht verstanden.
> Wozu sind die
> Schlüssel gut, solange ich nicht mit Nebraska, Netmorphs oder
> solchen Dingen
> arbeite?)
>
> Hintergrund der Frage ist der, daß ich mit schreibgeschützten,
> rechnerbezogenen Images arbeiten möchte und wir inzwischen ein
> MultiSeat-System aufgezogen haben, bei dem vier Benutzer
> gleichzeitig an ein
> und demselben PC und folglich in der einfachsten Variante
> auch gleichzeitig
> mit ein und demselben Image arbeiten (alles unter ubuntu-Linux). Erste
> Testläufe zeigen, daß das auch zu gehen scheint. Die
> USERDIR-Umgebungsvariable
> leistet mir dabei gute Dienste. Für das Secure-Dir gibt es so
> etwas leider
> (noch?) nicht, was mich vor die Wahl stellt, entweder das
> secure-Verzeichnis
> im Grunde einfach zu streichen oder aber die Schreibrechte
> auszuweiten. Was
> ist schlimmer?
>
> Schöne Grüße
>
> Markus
> -----------------------------------------------
> Markus Schlager m.slg(at)gmx.de
>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname : quadrateZeichnen.gif
Dateityp : image/gif
Dateigröße : 1375 bytes
Beschreibung: nicht verfügbar
URL : http://lists.squeakfoundation.org/pipermail/squeak-ev/attachments/20051216/14c40c97/quadrateZeichnen.gif
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname : quadrateZeichnen.009.pr
Dateityp : application/x-squeak-project
Dateigröße : 129800 bytes
Beschreibung: nicht verfügbar
URL : http://lists.squeakfoundation.org/pipermail/squeak-ev/attachments/20051216/14c40c97/quadrateZeichnen.009.pr