// Coordinates System : SetCoords(665.052964704093,393.2766877633054,30.398740824895473); // Geometry : A=Point("A",0,10); E5=Expression("E5","","","","1000","-8.719208674821958","2.4105172048210113"); E2=Expression("E2","","","","[0,0,0,0,0,0,0,0,0,0,0]","-21.54868744325187","5.700127145444063"); E1=Expression("E1","","","","10","-13.65362358575654","6.687010127630981"); E8=Expression("E8","","","","[]","-21.54868744325187","8.98973708606712"); E4=Expression("E4","Nombre de lancers = ","","","var tab=E2;var sum = tab.reduce(function(a, b) { return a + b });sum","-21.54868744325187","4.384283169194844"); E6=Expression("E6","hauteur du diagramme","0","500","157.5","-21.54868744325187","3.0684391929456223"); E3=Expression("E3","","","","var tab=E2,max=E5,scale=E6,lst=[],lnt=tab.length;for(var i=0;i Nombre de lancers : \n\nVitesse : \n\n\n\u00a7 name=\"Lancer\" style=\"font-size:24px;color:blue\" id=\"LAUNCH\"\n// **************************************\n// ********* Bouton de Lancement ********\n// **************************************\n\n\n// R\u00e9cup\u00e9ration de la valeur du curseur de vitesse :\nvar delay=1000/parseInt(Find(\"Delay\").value);\n\n// Hauteur de la planche de Galton:\nvar nbe=10;\n\n// R\u00e9cup\u00e9ration du nombre de lancers :\nvar nb=parseInt(Find(\"Nb\").value);\n\n\n// Juste pour le fun... Initialisation d'un tableau sans boucle :\nvar tab=Array.apply(null, new Array(nbe+1)).map(function () {return 0;});\nSetExpressionValue(\"E2\",\"[\"+tab+\"]\");\n\n// compteurs\nvar compteurN=0;\nvar compteurH=0;\nvar nouvelleBille=false;\n\n\n// Fonction appel\u00e9e pour chaque \u00e9tape \u00e9l\u00e9mentaire (une unit\u00e9 suivant\n// les ordonn\u00e9es):\nvar UneEtape=function(reset){\n if (reset) Move(\"A\",0,nbe);\n else {\n var c=Coords(\"A\");\n Move(\"A\",c[0]+Math.round(Math.random())-0.5,c[1]-1);\n }\n}\n\n// Fonction appel\u00e9e d\u00e8s qu'un lancer est fini (la bille est arriv\u00e9e\n// au sol) :\nvar UnLancer=function(){\n tab[Math.round(Coords(\"A\")[0])+nbe/2]++;\n SetExpressionValue(\"E2\",\"[\"+tab+\"]\");\n // Je ferai plus tard une instruction pour cela (hack pour l'instant) :\n Find(\"E2\").computeChilds();\n compteurN++;\n compteurH=0;\n nouvelleBille=true;\n}\n\nvar monHorloge = setInterval(function(){uneEtapeGlobale()},delay);\n\nvar uneEtapeGlobale=function() {\nif (compteurN>=nb) clearInterval(monHorloge);\nelse {\n UneEtape(nouvelleBille);\n compteurH++;\n nouvelleBille=false;\n if (compteurH>nbe) UnLancer();\n }\n}\n\n\n\u00a7\n\n",8,9,532,164,"c:rgba(127,108,211,0.33);s:3;r:15;p:4");