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 ? Merci, Gilles _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr |
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. Ca répond à votre question ? _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr |
In reply to this post by Gilles Jobin
Pourquoi tu veux émettre un son?
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 ? > > Merci, > Gilles > > > ------------------------------------------------------------------------ > > _______________________________________________ > Squeak-fr mailing list > [hidden email] > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr |
In reply to this post by Damien Cassou-3
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 [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr |
In reply to this post by Gilles Jobin
Pour Gilles Je ne suis pas informaticienne , mais plasticienne, par conséquent je n’ai pas le vocabulaire. J’ai fréquenté Logo et en passant sur Squeak E-toys, les formules procédurales de logo m’ont manqué. Mais j’ai fini par comprendre le côté très concret des objets Squeak . Si A B C D sont des objets qui se déplacent, se rencontrent , heurtent d’autres objets ou se trouvent dans telle ou telle situation, il va se passer des choses qui seront réglées à l’aide ‘des plages de test’. Par ce moyen on peut arriver à des équivalences qui peuvent intégrer des variables . Dans la plage de test, la première ligne pose la condition : les 2 autres disent ce qui va advenir si la condition est remplie, oui, non , soit si vrai ou si faux et pourquoi pas jouer un son par exemple J’ai eu un échange avec Norberto Manzanos, Brésilien, Squeaker de haut niveau et musicien qui a bien voulu nous fournir des explications sur l’utilisation de sons dans le déroulement d’un projet . Il détaille le cas avec variables. Le reste de son texte concerne davantage l’introduction du son dans les projets.Son explication se trouve sur le site Ofset Landes . http://community.ofset.org/wiki/CD_Squeak_pour_Landes_Interactives dans le chapitre ‘Sons et image – un échange France Argentine ‘de la série Art et Squeak. Mais Pierre-André Dreyfuss et Hilaire Fernandes ont ajouté des précisions supplémentaires sur ce problème des variables utilisées dans un cadre conditionnel . Suzanne
>Date: Thu, 21 Dec 2006 21:14:00 +0100 >De: Damien Cassou >A: Squeak in french / Squeak en français >Sujet: Re: [Squeak-fr] La boucle "FOR" > >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. > >Ca répond à votre question ? >_______________________________________________ >Squeak-fr mailing list >[hidden email] >http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr > Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr |
Merci à vous tous pour vos réponses.
En effet, je ne cherchais pas à travers Smalltalk, mais bien à faire la chose avec EToys seulement. Je voulais avoir une idée de comment procéder pour faire des boucles du genre : for (x=1;x<10;x++) { for (y=1;y<10;y++) { println x."+".y."=". x+y; } } en scriptant dans Etoys (par exemple, en utilisant des objets Text). Gilles On 12/21/06, [hidden email] <[hidden email]> wrote:
_______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr |
In reply to this post by Serge Stinckwich-4
Le 21 déc. 06 à 21:32, Serge Stinckwich a écrit : > > 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). > Noter que les script en mode stepping bouclent indéfiniment. Rien n'empêche d'écrire un script avec un test qui provoque l'arrêt du stepping si le test échoue. Voir le projet ci-joint. A part le sibiling mentionner par Serge, il y a aussi le morph Holder. Il a un "curseur" qui parcours les différents morphs contenus. Voir les categories spécifiques (comme par exemple : collection) Noury ------------------------------------------------------------------ Dr. Noury Bouraqadi - Enseignant/Chercheur ARMINES - Ecole des Mines de Douai - Dept. I.A. http://csl.ensm-douai.fr/noury European Smalltalk Users Group Board http://www.esug.org Squeak: a Free Smalltalk http://www.squeak.org ------------------------------------------------------------------ _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr boucle.002.pr (33K) Download Attachment |
Bonjour Pour les E-toys, la manière de gérer des boucles peut se faire de deux manières: La programmation classique héritée de Logo est le script récursif avec condition d'arrêt mais qui a le gros inconvénient en cas d'erreur de programmation de planter Squeak et en tout cas sous windows rapidement tout le pc si la récursivité ne s'arrête pas !!!! car le PC ne tarde pas à manquer de mémoire et utiliser la mémoire virtuelle ce qui ralentit terriblement tout le PC ! Donc prudence et utiliser immédiatement alt/point pour arrêter les scripts en cours en cas de plantage. La seconde méthode utilise le lancement et l'arrêt de scripts à l'aide des briques de la catégorie contrôle des scripts et d'une variable pour compter les répétitions,ou d'une condition qui arrête un script actif. c'est le procédsé utilisé dans la brique joueson si collision des V-toys. On met 10 dansa une variable compteur On lance un script qui teste si la variable contient 0, si oui on stop le script et on lance un script qui s'occupe de la suite. Si non on décrémente la variable de 1 La fréquence du script activé est fixée à 10 fois par seconde (en cliquant sur l^horloge du script) Ainsi si la variable contuent 10 au départ, l'attente est de 1 seconde. Dans le cas de faire jouer une son, au lieu d'un script suite , il suffit de placer la commande qui joue le son dans la branche où la variable = 0, de mettre la variable à la durée d'attente et d'activer le sript. Si une commande de son tente d'activer le script (déjà actif ) rien ne se passe (juste la décrémentation) si la variable n'est pas à zéro. While :un scripte activé qui teste une condition , si oui on stop le script. Do ou for : variable compteur + condition testant le passage à zéro , si non on décréente. ou on incrémente et test une valeur limite, dans ce cas la variable peut servir d'indice. Contrairement à la récursivité, les scripts actifs peuvent boucler indéfiniment mais ne plantent pas par consommation de mémoire, de plus on peut les arrêter avec les feux de circulation. Amitiés -------- Message d'origine-------- De: [hidden email] de la part de Noury Bouraqadi Date: ven. 22/12/2006 12:23 À: Squeak in french / Squeak en français Objet : Re: [Squeak-fr] La boucle "FOR" Le 21 déc. 06 à 21:32, Serge Stinckwich a écrit : > > 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). > Noter que les script en mode stepping bouclent indéfiniment. Rien n'empêche d'écrire un script avec un test qui provoque l'arrêt du stepping si le test échoue. Voir le projet ci-joint. A part le sibiling mentionner par Serge, il y a aussi le morph Holder. Il a un "curseur" qui parcours les différents morphs contenus. Voir les categories spécifiques (comme par exemple : collection) Noury ------------------------------------------------------------------ Dr. Noury Bouraqadi - Enseignant/Chercheur ARMINES - Ecole des Mines de Douai - Dept. I.A. http://csl.ensm-douai.fr/noury European Smalltalk Users Group Board http://www.esug.org Squeak: a Free Smalltalk http://www.squeak.org ------------------------------------------------------------------ _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr winmail.dat (6K) Download Attachment |
In reply to this post by Serge Stinckwich-4
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: [hidden email] 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 [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr |
bonjour La demo de la temporisation par contrôle de script http://ofset.org:8000/super/221 Amitiés _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr |
Bonjour, Il y a un bug dans la copie de morphs par halo vert les scripts avec test de collision ne fonctionnent pas dans la copie, il faut cliquer sur le carré pour passer à la version smalltalk et recliquer pour fevenir à la version brique et la copie marche ! Vous povez essayer dans les exemples que je viens de donner. Par contre si on fait des frères en cliquant sur le halo vert avec shift enfoncé (version plugin) ou sur le halo vert olive le frère marche. Amitiés -------- Message d'origine-------- De: [hidden email] de la part de Dreyfuss Pierre-André (EDU) Date: sam. 23/12/2006 03:01 À: Squeak in french / Squeak en français; Squeak in french / Squeak en français; "Squeak in french / Squeak en français" Objet : [Squeak-fr] demo attente bonjour La demo de la temporisation par contrôle de script http://ofset.org:8000/super/221 Amitiés _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr winmail.dat (4K) Download Attachment |
In reply to this post by Dreyfuss Pierre-André (EDUM)
Un énorme merci pour toutes ces explications qui me sont fort précieuses!
Gilles On 12/22/06, Dreyfuss Pierre-André (EDU) <[hidden email]> wrote: 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. _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr |
In reply to this post by Dreyfuss Pierre-André (EDUM)
Il faudrait compléter le Wiki sur cet aspect, Pierre-André. Merci. -- 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 [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr |
Bonjour,
Oui celà fait partie des idiomes que tu as commemcé en traduisant ceux de Markus -------- Message d'origine-------- De: [hidden email] de la part de Serge Stinckwich Date: sam. 23/12/2006 13:20 À: "Squeak in french / Squeak en français" Objet : Re: [Squeak-fr] demo attente Il faudrait compléter le Wiki sur cet aspect, Pierre-André. Merci. -- 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 [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr _______________________________________________ Squeak-fr mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr winmail.dat (4K) Download Attachment |
Free forum by Nabble | Edit this page |