Hallo -
folgendes Szenario: Lukas wollte auch die Geschwindigkeit seines LKW steuern, und zwar auch mit Rückwärtsfahrt. Schon vorher sind wir über den "Schieber" gestolpert. Er wollte, dass Stillstand ca. bei Reglerstand beim unteren Drittel eintritt; nach unten dann Rückwärtsfahren (braucht nicht so schnell zu sein), nach ober vorwärts. 1. Problem: Man kann den Schieber auch beim Malen einfügen; Lukas hat einen roten Strich daneben an die Nullposition gemalt. Nach "Keep" sind die zwei Dinge aber *nicht* verbunden ("grouped"), sondern bleiben einzeln und fallen beim Herumschieben wieder auseinander - sehr unerwartet. Wir haben dann kurz herumgeschaut nach einer zusätzlichen "Gruppierung", aber im EToys-Kontext ist uns nicht eingefallen, wo das sein könnte ... geht halt nicht. 2. Befragt nach dem Wertebereich des Schiebers, war Lukas' sofortige Antwort "0 ganz unten und 100 ganz oben". Das ist nun vielleicht ein "kulturelles" Vorurteil (auch von einigen Computerspielen, die Lukas kann), aber auch die anderen Zahlenwerte, die bisher aufgetaucht sind (Winkel, Geschwindigkeiten, x- und y-Position) sind immer ganze Zahlen (im Gegensatz zur Realität - aber didaktisch doch ok) - daher ist 0.00 bis 1.00 schon sehr unerwartet und unserer Meinung nach "falsch". 3. Jetzt kommt aber das richtige Problem: Wir haben uns - mit Hilfe einer Tabelle auf Papier - Funktionen überlegt, um aus dem Schieber 0.00...1.00 die Geschwindigkeit -2...+8 zu machen. Die erste Funktion war (Schiebers Reglerwert - 0.2) * 10 Wir haben also a. ein Skript für "LKW fährt vorwärts um" herausgezogen b. den "Schiebers Reglerwert" auf das "5" gezogen c. "mit Bauchweh" (wegen der Klammern) dann "- 0.2" angehängt d. und dann "* 10" Leider wird das "- 0.2" ohne irgendeine Meldung akzeptiert - aber intern dann gleich auf 0 gerundet (oder abgeschnitten). Das ist nicht ok. [Wieso ich das (c) zugelassen habe? Erstens machen wir "exploratives Lernen" - hätt ja gehen können :-) Zweitens weiß ich, dass dahinter Smalltalk steht - und dort gilt ja immer "links vor rechts", also hätte es ja - zwar didaktisch riskant/falsch, weil *gegen* "Punkt- vor Strichrechnung" - doch auch gehen können] Ich habe nun aber lange genug mit Programmen zu tun - also haben wir nach ausprobieren und Nix-mit-Rückwärts die Zahlen angeschaut, und da war statt 0.2 eben 0 ... also neue Funktion ... 4. ... natürlich (für mich - Lukas war schon etwas verdattert, weil unsere schön erarbeitete erste Funktion nicht "wollte") jetzt Schiebers Reglerwert * 10 - 2 ... geht aber auch nicht. Big bug: Das Ergebnis im Skript (habe ich heute erst mit Lukas nachgeschaut) ist get___Value * (10 - 2) !!!!???????????????? (und für die erste Funktion mit dem abgeschnitteten 0.2 ->0 war das Ergebnis get___Value - (0 * 10) ). Ich erwarte mir auf jeden Fall strenge "Punkt- vor Strichrechnung" - alles andere ist falsch. (Und dann muss man natürlich für max: und min: auch die Prio definieren -2 "vernünftige" Möglichkeiten wären m.E. "Strichrechung" = +, - "Punktrechnung" = alles andere oder "Vergleichsrechnung" = min:, max: "Strichrechung" = +, - "Punktrechnung" = alles andere Gleichrangige Operatoren natürlich wie üblich von links nach rechts. Beispiel eines EToys-Ausdrucks: Wert1 - 3 max: 4 - Wert2 * 5 Im ersten Fall wäre die Klammerung (Wert1 - (3 max: 4)) - (Wert2 * 5) im zweiten Fall : ((Wert1 - 3) max: (4 - (Wert2 * 5)) Das zweite ist "für mich" viel "richtiger" - wohl, weil ich max: irgendwie mit <= in einen Topf werfe ... Regards Harald -- NEU: GMX ProMail mit bestem Virenschutz http://www.gmx.net/de/go/mail +++ Empfehlung der Redaktion +++ Internet Professionell 10/04 +++ |
Am 19.09.2004 um 11:10 schrieb Harald Mueller: > Hallo - > > folgendes Szenario: Lukas wollte auch die Geschwindigkeit seines LKW > steuern, und zwar auch mit Rückwärtsfahrt. Schon vorher sind wir über > den > "Schieber" gestolpert. Er wollte, dass Stillstand ca. bei Reglerstand > beim > unteren Drittel eintritt; nach unten dann Rückwärtsfahren (braucht > nicht so > schnell zu sein), nach ober vorwärts. > > 1. Problem: Man kann den Schieber auch beim Malen einfügen; Lukas hat > einen > roten Strich daneben an die Nullposition gemalt. Nach "Keep" sind die > zwei > Dinge aber *nicht* verbunden ("grouped"), sondern bleiben einzeln und > fallen > beim Herumschieben wieder auseinander - sehr unerwartet. > Wir haben dann kurz herumgeschaut nach einer zusätzlichen > "Gruppierung", > aber im EToys-Kontext ist uns nicht eingefallen, wo das sein könnte > ... geht > halt nicht. Doch, geht ;-) Man kann Objekte ineinander einbetten. Am einfachsten ist wohl, du holst dir ein Rechteck aus dem Lager und verschiebst den Schieber und Strich darüber. Jetzt den Halo für den Schieber aktivieren, im Menu roten Halo-Smarties "einbetten in..." - "Rechteck" auswählen. Genauso für den Strich. Falls das Rechteck stört, kann man dessen Farbe dann noch transparent machen. Danach muss man nur aufpassen, nicht das schwarze Smartie zu verwenden, da man damit ein Objekt aus dem momentanen Behälter heraushebt (erkennbar am Schatten). Das braune Smartie verschiebt dagegen nur das Objekt, ohne es hochzuheben. In manchen Objekten passiert das Einbetten automatisch, z.B. in der Spielwiese und dem Behälter. > 2. Befragt nach dem Wertebereich des Schiebers, war Lukas' sofortige > Antwort > "0 ganz unten und 100 ganz oben". Das ist nun vielleicht ein > "kulturelles" > Vorurteil (auch von einigen Computerspielen, die Lukas kann), aber > auch die > anderen Zahlenwerte, die bisher aufgetaucht sind (Winkel, > Geschwindigkeiten, > x- und y-Position) sind immer ganze Zahlen (im Gegensatz zur Realität > - aber > didaktisch doch ok) - daher ist 0.00 bis 1.00 schon sehr unerwartet und > unserer Meinung nach "falsch". Über die Defaultwerte könnte man trefflich streiten - aber all das kannst du im Betrachter des Schiebers einstellen. Dort findest du eine Kategorie "Regler" (die sollte natürlich eigentlich "Schieber" heißen, bzw der Schieber lieber Schieberegler? Hmm) in der du den Wertebereich einstellen kannst, Runden erzwingen ("abrunden" - naja, an der Übersetzung müssen wir noch feilen), und auch den Bereich umkehren. Zusätzlich kann man im Menu vom "Reglerwert" die Anzahl der Dezimalstellen auf 0 setzen, sieht netter aus als 85.00. Für dein Autobeispiel könnte man also den Werte-Bereich direkt von -2 bis +8 setzen und kommt so ohne Verrenkungen (die leider momentan nötig sind) zum Ziel. Zum direkten Steuern kann man auch gut den Joystick aus dem Lager verwenden, den kann man entweder mit der Maus bedienen oder mit einem echten Joystick, da kommt schon fast Spielhallengefühl auf ;-) > 3. Jetzt kommt aber das richtige Problem: Wir haben uns - mit Hilfe > einer > Tabelle auf Papier - Funktionen überlegt, um aus dem Schieber > 0.00...1.00 > die Geschwindigkeit -2...+8 zu machen. Die erste Funktion war > (Schiebers Reglerwert - 0.2) * 10 > Wir haben also > a. ein Skript für "LKW fährt vorwärts um" herausgezogen > b. den "Schiebers Reglerwert" auf das "5" gezogen > c. "mit Bauchweh" (wegen der Klammern) dann "- 0.2" angehängt > d. und dann "* 10" > Leider wird das "- 0.2" ohne irgendeine Meldung akzeptiert - aber > intern > dann gleich auf 0 gerundet (oder abgeschnitten). Das ist nicht ok. > > [Wieso ich das (c) zugelassen habe? Erstens machen wir "exploratives > Lernen" > - hätt ja gehen können :-) Zweitens weiß ich, dass dahinter Smalltalk > steht > - und dort gilt ja immer "links vor rechts", also hätte es ja - zwar > didaktisch riskant/falsch, weil *gegen* "Punkt- vor Strichrechnung" - > doch > auch gehen können] > > > Ich habe nun aber lange genug mit Programmen zu tun - also haben wir > nach > ausprobieren und Nix-mit-Rückwärts die Zahlen angeschaut, und da war > statt > 0.2 eben 0 ... also neue Funktion ... Zu der Formel - siehe unten. Aber das Rundungsproblem kann ich nicht nachvollziehen - wo wurde gerundet? > 4. ... natürlich (für mich - Lukas war schon etwas verdattert, weil > unsere > schön erarbeitete erste Funktion nicht "wollte") jetzt > Schiebers Reglerwert * 10 - 2 > ... geht aber auch nicht. > Big bug: Das Ergebnis im Skript (habe ich heute erst mit Lukas > nachgeschaut) > ist > get___Value * (10 - 2) > !!!!???????????????? (und für die erste Funktion mit dem > abgeschnitteten 0.2 > ->0 war das Ergebnis > get___Value - (0 * 10) > ). Ich erwarte mir auf jeden Fall strenge "Punkt- vor Strichrechnung" - > alles andere ist falsch. > (Und dann muss man natürlich für max: und min: auch die Prio > definieren -2 > "vernünftige" Möglichkeiten wären m.E. > "Strichrechung" = +, - > "Punktrechnung" = alles andere > oder > "Vergleichsrechnung" = min:, max: > "Strichrechung" = +, - > "Punktrechnung" = alles andere > > Gleichrangige Operatoren natürlich wie üblich von links nach rechts. > > Beispiel eines EToys-Ausdrucks: > Wert1 - 3 max: 4 - Wert2 * 5 > Im ersten Fall wäre die Klammerung > (Wert1 - (3 max: 4)) - (Wert2 * 5) > im zweiten Fall : > ((Wert1 - 3) max: (4 - (Wert2 * 5)) > Das zweite ist "für mich" viel "richtiger" - wohl, weil ich max: > irgendwie > mit <= in einen Topf werfe ... Da hast du eines der wesentlichen Probleme der momentanen EToys erkannt - der Formeleditor ist keiner. Wir behelfen uns momentan mit dem Aufteilen "komplexerer" Ausdrücke auf mehrere Zeilen, notfalls unter Zurhilfenahme von Variablen: Der LKW bekommt eine Variable "Geschwindigkeit" (der "v"-Knopf oben im Betrachter). Dann macht man mehrere Zeilen: LKWs geschwindigkeit := Schiebers reglerWert - 0.2. LKWs geschwindigkeit := LKWs geschwindigkeit * 10. LKW gehe vorwärts um LKWs geschwindigkeit. Alternativ kann man Ausdrücke "rückwärts" aufbauen, aber lesbar wird das dann auch nicht. In deinem Fall müsste man aus der 5 beim "gehe vorwärts" eine 10 machen, dann mit dem Reglerwert multiplizieren, und von diesem 0.2 abziehen: LKW gehe vorwärts um 10 * (Schiebers reglerWert - 0.2). Nicht schön, und für Kinder auf jeden Fall ungeeignet. Steht auf der ToDo-Liste für den EToys-Nachfolger mit ganz oben. - Bert - |
Am Sonntag, 19. September 2004 13:54 schrieb Bert Freudenberg:
e > Über die Defaultwerte könnte man trefflich streiten - aber all das > kannst du im Betrachter d es Schiebers einstellen. Dort findest du eine > Kategorie "Regler" (die sollte natürlich eigentlich "Schieber" heißen, > bzw der Schieber lieber SÜchieberegler? Hmm) in der du den Wertebereich > einstellen kannst, Runden erzwingen ("abrunden" - naja, an der > Übersetzung müssen wir noch feilen), und auch den Bereich umkehren. > Zusätzlich kann man im Menu vom "Reglerwert" die Anzahl der > Dezimalstellen auf 0 setzen, sieht netter aus als 85.00. > Hallo Bert, könntest Du vielleicht mal Deine ganzen Verbesserungsvorschläge für die Übersetzung zusammenstellen? Einfach eine Mail mit einer Liste: alte Bezeichnung - neuer Vorschlag. Ich würde dann demnächst (2. und 3. Oktoberwoche) mal eine verbesserte Übersetzung erarbeiten. Auch der Andreas hatte ja ein paar Vorschläge. Am liebsten würde ich das auf meinem Schreibtisch sammeln, und dann bei einer Überarbeitung auch darauf achten, dass es einheitlich wird. Das sind die Originalbegriffe zwar auch nicht, aber wenn schon mal jemand dabei ist.... Das scheint mir am einfachsten, es sei denn, jemand anderes hätte schon ein German.translation-file mit mehr oder neuen Übersetzungen. Vielen Dank Esther |
In reply to this post by Bert Freudenberg-3
Hallo -
leider ist squeak nicht hoch (genug) auf meiner Prio-Liste, daher find eich nur ab und zu Zeit, zu antworten - aber jeden Samstag muss es hoch sein, weil da die "Schulstunde" für meine Kinder los ist. Zu dieser E-Mail jedenfalls vielen Dank! - wir werden heute sicher den Schieberegler ausprobieren. Ich glaube, ich habe noch einen Bug gefunden - den schreibe ich aber unter einem neuen Subject, weil ich diese Threads hasse, wo schon über was ganz anderes diskutiert wird ... Ein paar Anmerkungen zu Deinen Antworten aber noch unten! Grüße Harald > > 1. Problem: Man kann den Schieber auch beim Malen einfügen; > Lukas hat > > einen > > roten Strich daneben an die Nullposition gemalt. Nach > "Keep" sind die > > zwei > > Dinge aber *nicht* verbunden ("grouped"), [...] > Man kann Objekte ineinander einbetten. Am einfachsten ist wohl, du > holst dir ein Rechteck aus dem Lager und verschiebst den Schieber und > Strich darüber. Jetzt den Halo für den Schieber aktivieren, im Menu > roten Halo-Smarties "einbetten in..." - "Rechteck" auswählen. [usw.] Müssen wir irgendwann ausprobieren .. aber heute haben wir anderes vor ... > 2. [...] Über die Defaultwerte könnte man trefflich streiten - aber all das > kannst du im Betrachter des Schiebers einstellen. Dort > findest du eine > Kategorie "Regler" (die sollte natürlich eigentlich > "Schieber" heißen, > bzw der Schieber lieber Schieberegler? Hmm) in der du den > Wertebereich > einstellen kannst, Runden erzwingen ("abrunden" - naja, an der > Übersetzung müssen wir noch feilen), und auch den Bereich umkehren. ... probieren wir heute aus! > > 3. [...] Ich habe nun aber lange genug mit Programmen zu tun - also > haben wir > > nach > > ausprobieren und Nix-mit-Rückwärts die Zahlen angeschaut, > und da war > > statt > > 0.2 eben 0 ... also neue Funktion ... > > Zu der Formel - siehe unten. Aber das Rundungsproblem kann ich nicht > nachvollziehen - wo wurde gerundet? Wenn man in dem "Nicht-Formel-Editor" 0.2 eintippt. Also das Anzeigen von Zahlen ist ziemlich falsch, muss ich sagen. Mach folgendes: 1. Irgendeine Figur zeichnen, Betrachter öffnen 2. Neben "gehe vorwärts um" die Zahl 5 durch 0.2 ersetzen, auf Enter drücken. 3. Oft auf ! klicken - tatsächlich: Man sieht, wie sich y nur bei jedem fünften Klick um eins erhöht. 4. "gehe vorwärts um" als Skript herausziehen - noch immer gleiche Anzeige, gleiches Verhalten. 5. Auf den nach-rechts-Pfeil neben 0.2 klicken -> es steh plötzlich wieder 0 da!!! - aber intern ist der Wert doch 0.2!! (sieht man durch weiteres ausprobieren; oder Skript auf "laufend" setzen; oder in den Skripttext hineinschauen). Nix gut ... abgezeigte Werte müssen mit internen Werten immer übereinstimmen ... Das war mein "0" - ich dachte letzte Woche, dass 0 auch 0 bedeutet, d.h. dass wirklich gerundet/abgeschnitten wird. > Da hast du eines der wesentlichen Probleme der momentanen > EToys erkannt > - der Formeleditor ist keiner. Das ist ja schrecklich ... anders kann ich es nicht sagen. Wo steht der Sourcecode dazu, und kann man den Sourcecode ändern und sofort verwenden (ich kenne das dahinterliegende Smalltalk-System nicht) ... eine korrekte (lt. meiner Definition) Übersetzung der "zusammengeklickten Ausdrücke" in ein Script schreibe ich in einer Stunde, würde ich hoffen - und dann passt das - oder sind die Datenstrukturen hier etwas aufwendiger zu verstehen, als ich mir das naiverweise vorstelle? Grüße Harald |
Am 25.09.2004 um 13:23 schrieb Harald M. Müller:
>> Zu der Formel - siehe unten. Aber das Rundungsproblem kann ich nicht >> nachvollziehen - wo wurde gerundet? > > Wenn man in dem "Nicht-Formel-Editor" 0.2 eintippt. Also das Anzeigen > von Zahlen ist ziemlich falsch, muss ich sagen. Mach folgendes: > > 1. Irgendeine Figur zeichnen, Betrachter öffnen > 2. Neben "gehe vorwärts um" die Zahl 5 durch 0.2 ersetzen, auf Enter > drücken. > 3. Oft auf ! klicken - tatsächlich: Man sieht, wie sich y nur bei jedem > fünften Klick um eins erhöht. > 4. "gehe vorwärts um" als Skript herausziehen - noch immer gleiche > Anzeige, gleiches Verhalten. > 5. Auf den nach-rechts-Pfeil neben 0.2 klicken -> es steh plötzlich > wieder 0 da!!! - aber intern ist der Wert doch 0.2!! (sieht man durch > weiteres ausprobieren; oder Skript auf "laufend" setzen; oder in den > Skripttext hineinschauen). > Nix gut ... abgezeigte Werte müssen mit internen Werten immer > übereinstimmen ... > > Das war mein "0" - ich dachte letzte Woche, dass 0 auch 0 bedeutet, > d.h. > dass wirklich gerundet/abgeschnitten wird. Ah, ja, das ist wirklich ein Bug. Hab's eben in den Bugtracker eingetragen (wer am Verfolgen der Bugs Interesse hat, kann sich bei http://bugs.impara.de/ anmelden, und dann Projekt "squeakland" wählen). >> Da hast du eines der wesentlichen Probleme der momentanen >> EToys erkannt >> - der Formeleditor ist keiner. > > Das ist ja schrecklich ... anders kann ich es nicht sagen. Wo steht der > Sourcecode dazu, und kann man den Sourcecode ändern und sofort > verwenden > (ich kenne das dahinterliegende Smalltalk-System nicht) ... Kann man. Im roten Halodrops-Menu unter "Programmieren" wähle "Browser für Morf". Das funktioniert, aber wenn man ernsthaft was programmieren möchte, sollte man lieber das Developer-Image (http://squeakland.org/plugin/installers/files.html) nehmen, bei dem die Quelltexte in ihrer Original-Formatierung dabei sind (die Quelltexte in der normalen Downloadversion werden durch Dekompilierung erzeugt, um Platz zu sparen). eine > korrekte (lt. meiner Definition) Übersetzung der "zusammengeklickten > Ausdrücke" in ein Script schreibe ich in einer Stunde, würde ich hoffen > - und dann passt das - oder sind die Datenstrukturen hier etwas > aufwendiger zu verstehen, als ich mir das naiverweise vorstelle? Kommt drauf an ;-) Sooo kompiziert ist es eigentlich nicht, aber der gesamte EToy-Code ist mittlerweile ziemlich verfahren. War nie dazu gedacht, über mehrere Jahre verwendet zu werden, sondern eigentlich nur, um damit in ausgewählten Schulen zu experimentieren. Aus genau dem Grund arbeiten wir gerade an Etoys2, was eine saubere Neuimplementierung ist, im Gegensatz zu diesem über die Jahre verwucherten Monstrum. Das Verhalten der alten Etoys jetzt zu ändern, wäre schon aus dem Grund nicht gut, als dass sich die Leute mittlerweile an diesen "Bug" gewöhnt haben und wir ihre Skripte kaputt machen würden. Was man meiner Meinung nach am derzeitigen System tun könnte, wäre, bei Ausdrücken mit mehr als einem Operator Klammern einzublenden, so dass man zumindest sieht, was da genau passiert. Wäre ein nettes kleines Projekt ... wenn ich jetzt nicht einen Weg um unser Haus bauen müsste. Das echte Leben in Gestalt meiner Gattin ruft ;-) - Bert - |
In reply to this post by Esther Mietzsch
Am 24.09.2004 um 21:02 schrieb Esther Mietzsch:
> Am Sonntag, 19. September 2004 13:54 schrieb Bert Freudenberg: > e >> Über die Defaultwerte könnte man trefflich streiten - aber all das >> kannst du im Betrachter d es Schiebers einstellen. Dort findest du >> eine >> Kategorie "Regler" (die sollte natürlich eigentlich "Schieber" heißen, >> bzw der Schieber lieber SÜchieberegler? Hmm) in der du den >> Wertebereich >> einstellen kannst, Runden erzwingen ("abrunden" - naja, an der >> Übersetzung müssen wir noch feilen), und auch den Bereich umkehren. >> Zusätzlich kann man im Menu vom "Reglerwert" die Anzahl der >> Dezimalstellen auf 0 setzen, sieht netter aus als 85.00. >> > Hallo Bert, > könntest Du vielleicht mal Deine ganzen Verbesserungsvorschläge für die > Übersetzung zusammenstellen? Einfach eine Mail mit einer Liste: alte > Bezeichnung - neuer Vorschlag. Hmm, das fällt mir leider immer nur beim sporadischen Spielen mit den Etoys auf, hab ich bisher noch nicht gesammelt. Ich werd mich bemühen. > Ich würde dann demnächst (2. und 3. Oktoberwoche) mal eine verbesserte > Übersetzung erarbeiten. Auch der Andreas hatte ja ein paar Vorschläge. > Am > liebsten würde ich das auf meinem Schreibtisch sammeln, und dann bei > einer > Überarbeitung auch darauf achten, dass es einheitlich wird. Das sind > die > Originalbegriffe zwar auch nicht, aber wenn schon mal jemand dabei > ist.... Recht hast du :) - Bert - |
Free forum by Nabble | Edit this page |