pour actions initiales  def...pour parametrer glissiere a...pour faire une seule simula...pour actions en boucle  Fix...pour recommencer  Fixe le c...pour faire une simulation  ...nomdebutfinpasvaleur_initialeparametrer glissiereavec :k = 23016paraGlissélément dont l'ID estCacher l'objetpourdefinir glissiere titreélément dont l'ID estDernier coup répété<br />avec un "dé" à <i>k</i>…ligne1gaélément dont l'ID estk = nombre de faces du déligne2gaélément dont l'ID estLongueur de l'expérience = ?ligne3gaélément dont l'ID estExpérienceligne1drélément dont l'ID estLongueur moyenne = ?descriptionExperienceélément dont l'ID est ligne2drélément dont l'ID estligne3drélément dont l'ID est0fixernb total coupsàCacher l'objetCacher l'objetFixe le contenu deàFixe le contenu deàFixe le contenu deàFixe le contenu deàFixe le contenu deàFixe le contenu deàpourinitialiser Définir la variable nbCoupsDéfinir la variable experience0 -1vrai1glissélément dont l'ID estvaleur deentier aléatoire entreetnbCoups1+créer un texte avecexperiencecoup coupcoupPrecedent=quitter la bouclecoupfixercoupPrecedentàsifairefixerexperienceàfixernbCoupsàfixercoupàEnregistrer le résultat de cette expériencenbCoupsexperienceajouter experienceavec :nbCoupsexperienceCommentairerépétertant quefairefixercoupPrecedentàfixerexperienceàfixernbCoupsàCommentaireCommentairepourfaire une experience pourajouter experienceavec : nbCoups, experiencedescriptionExperienceélément dont l'ID estexperienceligne2gaélément dont l'ID estcréer un texte avecLongueur de l'expérience = nbCoupsnb total coupsnbCoups+ligne1drélément dont l'ID estcréer un texte avecLongueur moyenne = nb total coupsnbSimul÷Fixe le contenu deàfixernb total coupsàFixe le contenu deàFixe le contenu deà

var canvas, nbSimul, vitSimul, no, nom, gliss, debut, fin, pas, valeur_initiale, x, nbCoups, experience, coupPrecedent, coup, nb_total_coups;

/**
 * Fonction exécutée une fois, au départ
 */
function actions_initiales() {
  definir_glissiere();
  siClicPrudent("(select('#'+'uneExperience'))",(select('#'+'uneExperience')),"faire_une_seule_simulation",faire_une_seule_simulation);
  siClicPrudent("(select('#'+'recommencer'))",(select('#'+'recommencer')),"recommencer",recommencer);
  siChangementPrudent("(select('#'+'gliss'))",(select('#'+'gliss')),"recommencer",recommencer);
  recommencer();
}

/**
 * Décrire cette fonction…
 */
function parametrer_glissiere(nom, debut, fin, pas, valeur_initiale) {
  var gliss;
  fixeContenuPrudent("(select('#'+'nomGliss'))",(select('#'+'nomGliss')),nom);
  gliss = select('#'+'gliss');
  eval('gliss.elt.min =debut');
  eval('gliss.elt.max =fin');
  eval('gliss.elt.step =pas');
  eval('gliss.elt.defaultValue =valeur_initiale');
}

/**
 * Décrire cette fonction…
 */
function faire_une_seule_simulation() {
  fixeValeurPrudent("(select('#'+'vitesseSimul'))",(select('#'+'vitesseSimul')),0);
  faire_une_simulation();
}

/**
 * Fonction exécutée périodiquement, de façon répétée
 */
function actions_en_boucle() {
  fixeContenuPrudent("(select('#'+'valGliss'))",(select('#'+'valGliss')),(valeurPrudent("(select('#'+'gliss'))",(select('#'+'gliss')))));
  if (valeurPrudent("(select('#'+'vitesseSimul'))",(select('#'+'vitesseSimul'))) == 0) {
    return ;
  }
  frameRate(round((valeurPrudent("(select('#'+'vitesseSimul'))",(select('#'+'vitesseSimul'))))));
  faire_une_simulation();
}

/**
 * Décrire cette fonction…
 */
function recommencer() {
  fixeContenuPrudent("(select('#'+'valGliss'))",(select('#'+'valGliss')),(valeurPrudent("(select('#'+'gliss'))",(select('#'+'gliss')))));
  nbSimul = 0;
  fixeContenuPrudent("(select('#'+'nbSimul'))",(select('#'+'nbSimul')),nbSimul);
  fixeValeurPrudent("(select('#'+'vitesseSimul'))",(select('#'+'vitesseSimul')),nbSimul);
  initialiser();
}

/**
 * Décrire cette fonction…
 */
function faire_une_simulation() {
  nbSimul = nbSimul + 1;
  fixeContenuPrudent("(select('#'+'nbSimul'))",(select('#'+'nbSimul')),nbSimul);
  faire_une_experience();
}

/**
 * Décrire cette fonction…
 */
function definir_glissiere() {
  parametrer_glissiere('k = ', 2, 30, 1, 6);
}

/**
 * Décrire cette fonction…
 */
function initialiser() {
  fixeContenuPrudent("(select('#'+'titre'))",(select('#'+'titre')),'Dernier coup répété<br />avec un "dé" à <i>k</i> faces');
  fixeContenuPrudent("(select('#'+'ligne1ga'))",(select('#'+'ligne1ga')),'k = nombre de faces du dé');
  fixeContenuPrudent("(select('#'+'ligne2ga'))",(select('#'+'ligne2ga')),'Longueur de l\'expérience = ?');
  fixeContenuPrudent("(select('#'+'ligne3ga'))",(select('#'+'ligne3ga')),'Expérience');
  fixeContenuPrudent("(select('#'+'ligne1dr'))",(select('#'+'ligne1dr')),'Longueur moyenne = ?');
  fixeContenuPrudent("(select('#'+'descriptionExperience'))",(select('#'+'descriptionExperience')),'');
  cacherObjetPrudent("(select('#'+'ligne2dr'))",(select('#'+'ligne2dr')));
  cacherObjetPrudent("(select('#'+'ligne3dr'))",(select('#'+'ligne3dr')));
  nb_total_coups = 0;
}

function mathRandomInt(a, b) {
  if (a > b) {
    // Swap a and b to ensure a is smaller.
    var c = a;
    a = b;
    b = c;
  }
  return Math.floor(Math.random() * (b - a + 1) + a);
}

/**
 * Décrire cette fonction…
 */
function faire_une_experience() {
  // 'Définir la variable nbCoups'
  // 'Définir la variable experience'
  nbCoups = 0;
  experience = '';
  coupPrecedent = -1;
  while (true) {
    coup = mathRandomInt(1, valeurPrudent("(select('#'+'gliss'))",(select('#'+'gliss'))));
    nbCoups = nbCoups + 1;
    experience = [experience,coup,' '].join('');
    if (coup == coupPrecedent) {
      break;
    }
    coupPrecedent = coup;
  }
  // 'Enregistrer le résultat de cette expérience'
  ajouter_experience(nbCoups, experience);
}

/**
 * Décrire cette fonction…
 */
function ajouter_experience(nbCoups, experience) {
  fixeContenuPrudent("(select('#'+'descriptionExperience'))",(select('#'+'descriptionExperience')),experience);
  fixeContenuPrudent("(select('#'+'ligne2ga'))",(select('#'+'ligne2ga')),(String('Longueur de l\'expérience = ') + String(nbCoups)));
  nb_total_coups = nb_total_coups + nbCoups;
  fixeContenuPrudent("(select('#'+'ligne1dr'))",(select('#'+'ligne1dr')),(String('Longueur moyenne = ') + String(nb_total_coups / nbSimul)));
}
Exécuter