[Squeak-fr] La boucle "FOR"

Dreyfuss Pierre-André (EDU) pierre-andre.dreyfuss at edu.ge.ch
Ven 22 Déc 23:52:09 UTC 2006


Pour répondre plus précisément  A la question de faire faire quelque chose à une série d'objets avec de E-toys. Il y a la commande "dit à tous" associée au polymorphisme.

La commande "tellAllContents" (dit à tous) (qui n'est pas traduites dans la version actuelle du plugin  ) qui se trouve dans la catégorie collection des objets de type scène ou récipients (des pasteUpMorph pour les connaisseurs) fait exécuter le même script à tous les objets de la collection, si un objet n'a pas de script de ce nom, il n'y a pas d'erreur, simplement cet objet ne fait rien.

Celà est l'équivalent du do pour une collection d'objets.

Un exemple :

supposons une scène une étoile, une ellipse et des copies de cette ellipse après sa programmation.

la scène a une variable "qui" de type acteur.

L'ellipse (et en suite ses copies) ont un script "moi" qui teste si elle est en collision avec l'étoile. Si oui l'ellipse se place dans la variable "qui"

La scène a un script quiToucheEtoile,

-Qui met l'objet "point" dans la  variable "qui"
-Qui dit à tous les objet inclus d'exécuter le script moi


On retrouve soit l'objet point (personne ne touche l'étoile)
soit le dernier objet touchant l'étoile dans la variable qui.

Voir 
http://ofset.org:8000/super/219

Autre exemple:

Compter les ellipse et les étoiles dans une scène.

Cet exemple illustre la notion de poymorphisme.

On va mettre dans la scène une variable compteEllipse et une variable compteEtoiles

Le script compter de la scène 
- mettra à zéro les deux variable 
- et dira à tous ces objets d'exécuter le script "moi"


Le script "moi" des ellipse incrémentera  le compteur des ellipses.
Le script "moi" des étoiles incrémentera  le compteur des étoiles.


voir:
http://ofset.org:8000/super/220

Amitiés



-------- Message d'origine--------
De: squeak-fr-bounces at lists.squeakfoundation.org de la part de Serge Stinckwich
Date: jeu. 21/12/2006 21:32
À: "Squeak in french / Squeak en français"
Objet : Re: [Squeak-fr] La boucle "FOR"
 

Le 21 déc. 06 à 21:14, Damien Cassou a écrit :

> Bonjour Gilles,
>
> Gilles Jobin a écrit :
>> En EToys, supposons 4 objets A, B, C, D ayant tous une variable  
>> appelée var. Comment est-il possible de programmer ce qui en  
>> pseudocode s'écrirait :
>> POUR les objets de A à D
>>  Si var = telleChose alors EmetSon
>> Y a-t-il donc une manière de faire des FOR (ou des WHILE ou des  
>> REPEAT) en Etoys ?
>
>
> Je ne suis pas bien sûr de ce que vous voulez, mais est-ce que le  
> code suivant vous aide ?
>
>
> {a . b . c . d}
>    do: [:objet |
>            (objet var = telleChose)
>                ifTrue: [EmetSon]]
>
>
> Il faut qu'il existe un accesseur #var sur les classes.


Je crois que Gilles cherche plutôt pour les EToys que pour Smalltalk.

Il n'y a pas vraiment cette notion dans les EToys car le style de  
programmation est évènementiel.
Il faudrait plutôt associer un script à chacun de tes objets A, B, C,  
D. Tu peux faire cela avec la notion de sibling (avoir un script qui  
s'applique sur plusieurs objets).

Cordialement,
--                                                         oooo
Dr. Serge Stinckwich                                     OOOOOOOO
Université de Caen>CNRS UMR 6072>GREYC>MAD               OOESUGOO
http://purl.org/net/SergeStinckwich                       oooooo
Smalltalkers do: [:it | All with: Class, (And love: it)]   \  /
                                                             ##



_______________________________________________
Squeak-fr mailing list
Squeak-fr at lists.squeakfoundation.org
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr



More information about the Squeak-fr mailing list