pour init environnement  fi...pour actions en boucle  si ...pour recommencer  fixer nbM...pour fixer vitesse  fixer v...pour limite nbMouv atteinte...pour une etape  Fixe la val...50030Tortue pas à pas5005002025500200couleur rougevertbleuopacité   init environnementfondMontrer la tortue de tailleet de couleurCanevas : dim horizontaledimension verticaleCréer un titrecontenantMarge gauchepixelsCentrer les objets dans une page web de largeurpixelspouractions initiales       1361textevariableAvisavec :Boucle externe avec i = i4dAvanceavec :140aDroiteavec :90aDroiteavec :10répéterfoisfairetextevariableAvisavec :Fin de la boucle et du programme boucleide minà maxavec pasfairetraitfondpourfigure pour Avance avec : d si lim...pour Recule avec : d si lim...pour Droite avec : a si lim...pour Gauche avec : a si lim...pour Aller avec : x, y si l...pour Sauter avec : x, y si ...pour Fixe cap avec : a si l...pour Avis avec : texte, var...


var canevas, nbMaxMouvTortue, nbMouvTortue, gliss, para, vitesse, x, d, a, bouton, y, para2, texte, variable, i, bouton2;

/**
 * Décrire cette fonction…
 */
function init_environnement() {
  nbMaxMouvTortue = 0;
  para=createP('Vitesse = ');
  gliss=createSlider(0,60,1,1);
  assignerParentPrudent("gliss",gliss,"para",para);
  stylerObjetPrudent("gliss",gliss,'width','300px');
  bouton=createButton('Recommencer');
  siClicPrudent("bouton",bouton,"recommencer",recommencer);
  bouton2=createButton('Une étape');
  siClicPrudent("bouton2",bouton2,"une_etape",une_etape);
  para2=createP('');
  frameRate(round(1));
}

/**
 * Fonction exécutée périodiquement, de façon répétée
 */
function actions_en_boucle() {
  if (fixer_vitesse()) {
    return ;
  }
  initialisationTortue(leGraphicsActif);nbMouvTortue = 0;
  figure();
  nbMaxMouvTortue = nbMaxMouvTortue + 1;
}

/**
 * Décrire cette fonction…
 */
function recommencer() {
  nbMaxMouvTortue = 0;
  fixeValeurPrudent("gliss",gliss,1);
}

/**
 * Décrire cette fonction…
 */
function fixer_vitesse() {
  vitesse = valeurPrudent("gliss",gliss);
  if (vitesse > 0) {
    frameRate(round(vitesse));
  }
  return vitesse == 0;
}

/**
 * Décrire cette fonction…
 */
function limite_nbMouv_atteinte() {
  nbMouvTortue = nbMouvTortue + 1;
  return nbMouvTortue >= nbMaxMouvTortue;
}

/**
 * Décrire cette fonction…
 */
function une_etape() {
  fixeValeurPrudent("gliss",gliss,0);
  initialisationTortue(leGraphicsActif);if (nbMaxMouvTortue == 0) {
    nbMaxMouvTortue = 1;
  }
  nbMouvTortue = 0;
  figure();
  nbMaxMouvTortue = nbMaxMouvTortue + 1;
}

/**
 * Fonction exécutée une fois, au départ
 */
function actions_initiales() {
  centrerPageExecution(500);
  document.body.style.paddingLeft="30px";
  createElement("h1",'Tortue pas à pas');
  canevas=creerCanvas(500,500); canvas=canevas;
  montrerTortue(20,(color(255,0,0,200)));
  couleurFondC('#ffff66');
  init_environnement();
}

/**
 * Décrire cette fonction…
 */
function figure() {
  couleurFondC('#ffff66');
  stroke_('#000000');
  for (i = 1; i <= 36; i += abs(1)) {
    Avis('Boucle externe avec i = ', i);
    for (var count = 0; count < 4; count++) {
      Avance(140);
      Droite(90);
    }
    Droite(10);
  }
  Avis('Fin de la boucle et du programme', '');
}

/**
 * Décrire cette fonction…
 */
function Avance(d) {
  if (limite_nbMouv_atteinte()) {
    return ;
  }
  avance(d);
  fixeContenuPrudent("para2",para2,(String('Avance ') + String(d)));
}

/**
 * Décrire cette fonction…
 */
function Recule(d) {
  if (limite_nbMouv_atteinte()) {
    return ;
  }
  recule(d);
  fixeContenuPrudent("para2",para2,(String('Recule  ') + String(d)));
}

/**
 * Décrire cette fonction…
 */
function Droite(a) {
  if (limite_nbMouv_atteinte()) {
    return ;
  }
  droite(a);
  fixeContenuPrudent("para2",para2,(String('Droite ') + String(a)));
}

/**
 * Décrire cette fonction…
 */
function Gauche(a) {
  if (limite_nbMouv_atteinte()) {
    return ;
  }
  gauche(a);
  fixeContenuPrudent("para2",para2,(String('Gauche ') + String(a)));
}

/**
 * Décrire cette fonction…
 */
function Aller(x, y) {
  if (limite_nbMouv_atteinte()) {
    return ;
  }
  fixePos(x,y);
  fixeContenuPrudent("para2",para2,(['Aller (',x,' , ',y,' )'].join('')));
}

/**
 * Décrire cette fonction…
 */
function Sauter(x, y) {
  if (limite_nbMouv_atteinte()) {
    return ;
  }
  sautePos(x,y);
  fixeContenuPrudent("para2",para2,(['Sauter (',x,' , ',y,' )'].join('')));
}

/**
 * Décrire cette fonction…
 */
function Fixe_cap(a) {
  if (limite_nbMouv_atteinte()) {
    return ;
  }
  fixeCap(a);
  fixeContenuPrudent("para2",para2,(String('Fixe cap ') + String(a)));
}

/**
 * Décrire cette fonction…
 */
function Avis(texte, variable) {
  if (limite_nbMouv_atteinte()) {
    return ;
  }
  fixeContenuPrudent("para2",para2,(String(texte) + String(variable)));
}
Exécuter