15 Puzzle in EtoysLecture.pr

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

15 Puzzle in EtoysLecture.pr

"Hübner, Uwe"
Hallo Markus,
 
ich brüte jetzt schon den halben Tag über deinem '15 Puzzle'.
http://www.emergent.de/pub/smalltalk/squeak/projects/EtoysLecture.pr

Folgende Frage: Sowohl der äußere Rahmen als auch die inneren Felder
sind vom Typ 'Behälter'. Außerdem besitzt jedes 'innere Feld' eine Innschrift
(außer dem leeren Feld) und sind Schwesterinstanzen mit dem gleichen Skript.
Woher bekommt jedes Feld seine wechselnden Innschriften also Zahlen?
Die erste Zeile im innersten 'JA'-Zweig
 
'A1415Puzzles|Objekt am Zeiger|aufnehmen|Cell1s|Objekt am Zeiger'
 
legt ja eigentlich nah, dass die Felder selbst wandern. Glaube ich aber nicht.
Ich denke es ist eine optische Täuschung. In Wirklichkeit wandert nur der
angezeigt Index!?
 
Und da wäre ich auch schon bei der zweiten Zeile im innersten 'JA'-Zweig.
Ich habe versucht das Ganze nachzubauen.
 
Meine zweite Zeile sieht momentan so aus:

'Spielwiese|Zeiger <-|zelles|Eignerindex>|

Das Problem, dass ich habe: Wieso erscheint bei mir hinter
'Eignerindex' ein Erweiterungspfeil und bei dir nicht?
Wo hast du deinen 'Eignerindex' ohne Pfeil her? Woher kommt der angezeigte
Text (also die 1, 2, 3, usw.)?

Gruß Uwe
 

MSC Vertriebs GmbH
registered office : Stutensee
Jurisdiction and registered Mannheim, Germany, HRB No. 10 3631
Managing Director: Manfred Schwarztrauber, Lothar Kümmerlin, Rüdiger Kuhn

Gleichmann & Co. Electronics GmbH
registered office : Frankenthal
Jurisdiction and registered Ludwigshafen, Germany, HRB No. 21305
Managing Director: Manfred Schwarztrauber, Thomas Klein

Reply | Threaded
Open this post in threaded view
|

Re: 15 Puzzle in EtoysLecture.pr

Markus Gälli-3
Hallo Uwe

>
> ich brüte jetzt schon den halben Tag über deinem '15 Puzzle'.
> http://www.emergent.de/pub/smalltalk/squeak/projects/EtoysLecture.pr


>
> Folgende Frage: Sowohl der äußere Rahmen als auch die inneren Felder
> sind vom Typ 'Behälter'. Außerdem besitzt jedes 'innere Feld' eine  
> Innschrift
> (außer dem leeren Feld) und sind Schwesterinstanzen mit dem  
> gleichen Skript.
> Woher bekommt jedes Feld seine wechselnden Innschriften also Zahlen?

  TextMorph in inneres Feld, den Text mit "1" ersetzen (man kann dann  
noch Spass haben mit dem Zentrieren dieser Zahl), den inneren Feld  
Behälter in den äusseren Rahmen packen, ne runde Ecke geben (den  
Textmorph auf "geschützt" stellen)  und dann 15 sogenannte  
Schwesterinstanzen des inneren Felds anlegen. Diese landen so auch im  
äusseren Rahmen.
Natürlich hab ich dann ncoh 15 mal die "1" dastehen, die kann man  
dann entweder "Hand am Arm" anpassen, oder mit dem Inspektor auf das  
äussere Feld (Programmieren->Morf (autsch! Sollte demnächst einfach  
Objekt heissen) erforschen) und ein wenig Smalltalk-Magie von 1-16  
bringen:

self submorphs withIndexDo: [:each :index | each submorphs first  
newContents: index asString]
("self" bezieht sich in diesem "Forscher" (a.k. Explorer, ein  
mächtiger Inspektor) damit eben auf das äussere Feld)
Die Zahl der 16. Zelle dann wieder löschen, dort muss ja Platz sein.


> Die erste Zeile im innersten 'JA'-Zweig

Das mit den Zeiger war ein wenig "gierig" von mir und ist etwas  
seltsam. Vielleicht hätte ich doch in den Apfel beissen und dafür  
eine Variable namens "leereZelle" vom Typ Player im äusseren Feld  
erzeugen sollen. Diese hätte dann einfach immer auf die zur Zeit  
gerade leere Zelle verweisen können.

So achte ich anfangs darauf, das der Zeiger (ein Index vom Typ Zahl)  
des äusseren Behälters auf die leere Zelle zeigt, also auf die 16.

Ich habs mal mit " so hingeschrieben, dass es eher der Kachelung von  
Etoys entspricht:

"'A1415Puzzles" "Objekt am Zeiger" "aufnehmen" "Cell1s Objekt am Zeiger"

Auf Deutsch übersetzt ;-) heisst das soviel wie:
"Aktuelle leere Zelle" "nimm auf (und lösche von dort)" "die Zahl der  
Cell1 (also von mir)"

Die zweite Zeile sagt dann, dass ab nun die Cell1 die leere Zelle ist.

>
> legt ja eigentlich nah, dass die Felder selbst wandern.


> Glaube ich aber nicht.
> Ich denke es ist eine optische Täuschung. In Wirklichkeit wandert  
> nur der
> angezeigt Index!?
>
> Und da wäre ich auch schon bei der zweiten Zeile im innersten 'JA'-
> Zweig.
> Ich habe versucht das Ganze nachzubauen.
>
> Meine zweite Zeile sieht momentan so aus:
>
> 'Spielwiese|Zeiger <-|zelles|Eignerindex>|
>
> Das Problem, dass ich habe: Wieso erscheint bei mir hinter
> 'Eignerindex' ein Erweiterungspfeil und bei dir nicht?
> Wo hast du deinen 'Eignerindex' ohne Pfeil her?

Aus der Kategorie "Verschiedenes" eines inneren Feldes.

> Woher kommt der angezeigte
> Text (also die 1, 2, 3, usw.)?

Siehe oben.

Noch viel Spass beim Puzzlen... ;-)

Btw. Oscar Niersrasz macht grad ne verbesserte Etoy Lecture ("Visual  
Programming", demächst online bei der SCG unter
http://www.iam.unibe.ch/~scg/Teaching/PL/index.html

Viele Grüsse

Markus

>
> Gruß Uwe
>
>
> MSC Vertriebs GmbH
> registered office : Stutensee
> Jurisdiction and registered Mannheim, Germany, HRB No. 10 3631
> Managing Director: Manfred Schwarztrauber, Lothar Kümmerlin,  
> Rüdiger Kuhn
>
> Gleichmann & Co. Electronics GmbH
> registered office : Frankenthal
> Jurisdiction and registered Ludwigshafen, Germany, HRB No. 21305
> Managing Director: Manfred Schwarztrauber, Thomas Klein
>

Reply | Threaded
Open this post in threaded view
|

AW: 15 Puzzle in EtoysLecture.pr

"Hübner, Uwe"
Vielen, vielen Dank Markus,
dass du dir die viele Mühe mit der Erklärung
gemacht hast.

Ich denke damit sollte ich des Squeaks äh. Pudels
Kern knacken können...

Gruß Uwe


MSC Vertriebs GmbH
registered office : Stutensee
Jurisdiction and registered Mannheim, Germany, HRB No. 10 3631
Managing Director: Manfred Schwarztrauber, Lothar Kümmerlin, Rüdiger Kuhn

Gleichmann & Co. Electronics GmbH
registered office : Frankenthal
Jurisdiction and registered Ludwigshafen, Germany, HRB No. 21305
Managing Director: Manfred Schwarztrauber, Thomas Klein

Reply | Threaded
Open this post in threaded view
|

Re: 15 Puzzle in EtoysLecture.pr

Bert Freudenberg
In reply to this post by Markus Gälli-3

On 04.04.2008, at 00:14, Markus Gälli wrote:
> Hallo Uwe
>
>>
>> ich brüte jetzt schon den halben Tag über deinem '15 Puzzle'.
>> http://www.emergent.de/pub/smalltalk/squeak/projects/EtoysLecture.pr

Oh oh. Das ist die Hohe Schule der Etoyskunst :)

>> Folgende Frage: Sowohl der äußere Rahmen als auch die inneren Felder
>> sind vom Typ 'Behälter'. Außerdem besitzt jedes 'innere Feld' eine  
>> Innschrift
>> (außer dem leeren Feld) und sind Schwesterinstanzen mit dem  
>> gleichen Skript.
>> Woher bekommt jedes Feld seine wechselnden Innschriften also Zahlen?
>
> TextMorph in inneres Feld, den Text mit "1" ersetzen (man kann dann  
> noch Spass haben mit dem Zentrieren dieser Zahl), den inneren Feld  
> Behälter in den äusseren Rahmen packen, ne runde Ecke geben (den  
> Textmorph auf "geschützt" stellen)  und dann 15 sogenannte  
> Schwesterinstanzen des inneren Felds anlegen. Diese landen so auch  
> im äusseren Rahmen.
> Natürlich hab ich dann ncoh 15 mal die "1" dastehen, die kann man  
> dann entweder "Hand am Arm" anpassen, oder mit dem Inspektor auf das  
> äussere Feld (Programmieren->Morf (autsch! Sollte demnächst einfach  
> Objekt heissen) erforschen) und ein wenig Smalltalk-Magie von 1-16  
> bringen:
>
> self submorphs withIndexDo: [:each :index | each submorphs first  
> newContents: index asString]
> ("self" bezieht sich in diesem "Forscher" (a.k. Explorer, ein  
> mächtiger Inspektor) damit eben auf das äussere Feld)
> Die Zahl der 16. Zelle dann wieder löschen, dort muss ja Platz sein.

Wobei der "Programmieren"-Haloknauf in der neuen Etoys-Version  
standardmäßig nicht angezeigt wird. Man kann das aber auch über die  
"Elementnummer" (ehemals "Eignerindex") skripten (oder eben 15 Zahlen  
tippen).

- Bert -


Reply | Threaded
Open this post in threaded view
|

Re: 15 Puzzle in EtoysLecture.pr

Markus Gälli-3
>> Inspektor) damit eben auf das äussere Feld)
>> Die Zahl der 16. Zelle dann wieder löschen, dort muss ja Platz sein.
>
> Wobei der "Programmieren"-Haloknauf in der neuen Etoys-Version  
> standardmäßig nicht angezeigt wird. Man kann das aber auch über die  
> "Elementnummer" (ehemals "Eignerindex") skripten (oder eben 15  
> Zahlen tippen).
>
Darn! Klar, geht ja auch mit Etoys! :-) Thanks!

Markus