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