HEX
Server: Apache
System: Linux vps.mmtprep.com 4.18.0-477.21.1.el8_8.x86_64 #1 SMP Thu Aug 10 13:51:50 EDT 2023 x86_64
User: mmtprep (1001)
PHP: 8.1.34
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/mmtprep/public_html/mathzen.mmtprep.com/assets/c3I11-O2a8bpWz.js.map
{"version":3,"file":"c3I11-O2a8bpWz.js","sources":["../../src/exercices/c3/c3I11.js"],"sourcesContent":["/* eslint-disable camelcase */\nimport { point, tracePoint } from '../../lib/2d/points.js'\nimport { texteParPositionEchelle } from '../../lib/2d/textes.js'\nimport { choice } from '../../lib/outils/arrayOutils'\nimport { modalPdf, modalUrl } from '../../lib/outils/modales.js'\nimport { stringNombre } from '../../lib/outils/texNombre.js'\nimport Exercice from '../Exercice.js'\nimport { colorToLatexOrHTML, mathalea2d } from '../../modules/2dGeneralites.js'\nimport { context } from '../../modules/context.js'\nimport { contraindreValeur, listeQuestionsToContenu, randint } from '../../modules/outils.js'\nimport { scratchblock } from '../../modules/scratchblock.js'\nimport { noteLaCouleur, plateau2dNLC } from '../../modules/noteLaCouleur.js'\nimport { allerA, angleScratchTo2d, attendre, baisseCrayon, clone, creerLutin, orienter } from '../../modules/2dLutin.js'\nimport { setReponse } from '../../lib/interactif/gestionInteractif.js'\nimport { texteEnCouleurEtGras } from '../../lib/outils/embellissements'\nimport { choixDeroulant } from '../../lib/interactif/questionListeDeroulante.js'\n\nexport const titre = 'Note la couleur (scratch)'\nexport const interactifReady = true\nexport const interactifType = 'listeDeroulante'\nexport const dateDeModifImportante = '27/12/2023'\nexport const dateDePublication = '11/04/2021'\n\n/**\n * Note_la_couleur() Exercice inspiré de l'activité débranchée de Jean-Yves Labouche Note La Couleur\n * https://www.monclasseurdemaths.fr/profs/algorithmique-scratch/note-la-couleur/\n * variante de 6I11 avec des dalles de 20 x 20\n * Publié le 11/04/2021\n * @author Jean-Claude Lhote\n */\nexport const uuid = 'e380b'\nexport const ref = 'c3I11'\nexport default function NoteLaCouleurC3 () {\n  Exercice.call(this)\n  this.titre = titre\n  this.nbQuestions = 1\n  this.nbQuestionsModifiable = true\n  this.nbCols = 1\n  this.nbColsCorr = 1\n  this.pasDeVersionLatex = false\n  this.pas_de_version_HMTL = false\n  this.typeExercice = 'Scratch'\n  this.listePackages = 'scratch3'\n  this.sup = 1\n  this.sup2 = true\n  this.sup3 = 4\n  this.sup4 = true\n  this.relatif = false\n  this.correctionDetailleeDisponible = true\n  this.correctionDetaillee = true\n\n  this.nouvelleVersion = function (numeroExercice) {\n    const damier = [\n      ['Blanc', 'Blanc', 'Blanc', 'Blanc', 'Blanc', 'Blanc', 'Blanc', 'Blanc', 'Blanc', 'Blanc'],\n      ['Blanc', 'Noir', 'Orange', 'Rouge', 'Orange', 'Jaune', 'Rouge', 'Jaune', 'Rose', 'Blanc'],\n      ['Blanc', 'Rose', 'Gris', 'Noir', 'Bleu', 'Vert', 'Bleu', 'Rouge', 'Orange', 'Blanc'],\n      ['Blanc', 'Noir', 'Rouge', 'Rose', 'Vert', 'Orange', 'Rose', 'Noir', 'Orange', 'Blanc'],\n      ['Blanc', 'Orange', 'Gris', 'Rouge', 'Jaune', 'Noir', 'Vert', 'Rouge', 'Rose', 'Blanc'],\n      ['Blanc', 'Bleu', 'Jaune', 'Orange', 'Vert', 'Gris', 'Jaune', 'Gris', 'Orange', 'Blanc'],\n      ['Blanc', 'Rose', 'Bleu', 'Jaune', 'Rose', 'Orange', 'Rouge', 'Bleu', 'Noir', 'Blanc'],\n      ['Blanc', 'Blanc', 'Blanc', 'Blanc', 'Blanc', 'Blanc', 'Blanc', 'Blanc', 'Blanc', 'Blanc']\n    ]\n    const choixListeDeroulante = [\n      ['Blanc', 'Noir', 'Rouge', 'Bleu', 'Orange', 'Rose', 'Jaune', 'Vert', 'Gris'],\n      ['(0) Blanc', '(1) Noir', '(2) Rouge', '(3) Bleu', '(4) Orange', '(5) Rose', '(6) Jaune', '(7) Vert', '(8) Gris']\n    ]\n    this.sup = contraindreValeur(1, 4, this.sup, 1)\n    const echelleDessin = 0.75\n    this.listeQuestions = []\n    this.listeCorrections = []\n    let j, test\n    let objetsEnonce = []\n    let objetsCorrection = []\n    const paramsCorrection = { xmin: -1, ymin: -1, xmax: 16, ymax: 13, pixelsParCm: 30, scale: echelleDessin }\n    let commandes_disponibles\n    const sequences_disponibles = []\n    let sequence\n    let result\n    let nb_couleurs\n    let instruction\n    let couleurs\n    let liste_instructions\n\n    let lutin, lutindepart\n    let angledepart\n    let xdepart\n    let ydepart\n    context.unitesLutinParCm = 13.33\n    context.pixelsParCm = 30\n    let pion\n    const lePlateau = plateau2dNLC({\n      type: this.sup,\n      melange: !this.sup4,\n      scale: echelleDessin,\n      relatif: this.relatif,\n      nx: 10,\n      ny: 8,\n      pas: 20,\n      plateau: damier\n    })\n    for (let q = 0; q < this.nbQuestions;) {\n      objetsCorrection = []\n      objetsEnonce = []\n      objetsEnonce.push(lePlateau.plateau2d)\n      objetsCorrection.push(lePlateau.plateau2d)\n      let reponseCouleur = []\n      let texte = ''\n      let texteCorr = ''\n      let compteur = 0\n      let retour_a_la_case_depart\n      let compteur_essais_sequence\n      commandes_disponibles = [['AV20', 'AV40', 'AV60', 'AV80', 'AV100'], ['TD90', 'TG90', 'TG180']]\n      for (let m = 0, ins1; m < 5; m++) {\n        for (let n = 0, ins2; n < 3; n++) {\n          ins1 = commandes_disponibles[0][m]\n          ins2 = commandes_disponibles[1][n]\n          sequences_disponibles.push([ins1, ins2, 'NLC'], [ins2, ins1, 'NLC'])\n        }\n      }\n      retour_a_la_case_depart = true\n      while (retour_a_la_case_depart) {\n        objetsEnonce.length = 1\n        lutin = creerLutin()\n        angledepart = choice([90, 0, -90, 180])\n        xdepart = 10 + randint(1, 8) * 20\n        ydepart = 10 + randint(1, 6) * 20\n\n        pion = noteLaCouleur({\n          x: xdepart,\n          y: ydepart,\n          orientation: angledepart,\n          plateau: lePlateau.plateauNLC,\n          relatif: this.relatif,\n          nx: 10,\n          ny: 8,\n          pas: 20\n        })\n        lutin.color = context.isHtml ? colorToLatexOrHTML('green') : colorToLatexOrHTML('black')\n        lutin.epaisseur = 2\n        lutin.pointilles = 2\n        allerA(xdepart, ydepart, lutin)\n        orienter(angleScratchTo2d(angledepart), lutin)\n        lutindepart = clone(lutin)\n        baisseCrayon(lutindepart)\n        allerA(xdepart, ydepart, lutindepart)\n        objetsEnonce.push(lutindepart)\n        baisseCrayon(lutin)\n        compteur++\n        if (compteur > 5) break\n        pion.codeScratch = ''\n        couleurs = []\n        nb_couleurs = parseInt(this.sup3)\n        liste_instructions = []\n        j = 0\n        compteur_essais_sequence = 0\n        pion.codeScratch = '\\\\begin{scratch}[print,fill,blocks,scale=0.7]\\n \\\\blockinit{quand \\\\greenflag est cliqué}\\n '\n        pion.codeScratch += `\\\\blockmove{aller à x: \\\\ovalnum{${xdepart}} y: \\\\ovalnum{${ydepart}}}\\n \\\\blockmove{s'orienter à \\\\ovalnum{${angledepart}}}\\n`\n        pion.currentIndex += pion.codeScratch.length\n        while (nb_couleurs > j && compteur_essais_sequence < 10) {\n          compteur_essais_sequence = 0\n          sequence = choice(sequences_disponibles)\n          test = pion.testSequence(sequence)\n          while (!test[0] && compteur_essais_sequence < 10) {\n            compteur_essais_sequence++\n            sequence = choice(sequences_disponibles)\n            test = pion.testSequence(sequence)\n          }\n          if (compteur_essais_sequence < 10) {\n            retour_a_la_case_depart = false\n            for (let i = 0; i < sequence.length; i++) {\n              instruction = sequence[i]\n              result = pion.testInstruction(instruction, lutin)\n              if (instruction === 'NLC') {\n                liste_instructions.push(instruction)\n                couleurs.push(pion.nlc())\n                j++\n                pion.codeScratch += result[4] + '\\n'\n                pion.currentIndex += result[4].length + 1\n                lutin = result[5]\n                attendre(5, lutin)\n              } else {\n                liste_instructions.push(instruction)\n                pion.currentPos.x = result[1]\n                pion.currentPos.y = result[2]\n                pion.currentOrientation = result[3]\n                pion.codeScratch += result[4] + '\\n'\n                pion.currentIndex += result[4].length + 1\n                lutin = result[5]\n              }\n            }\n          } else {\n            angledepart = choice([90, 0, -90, 180])\n            xdepart = 10 + randint(1, 8) * 20\n            ydepart = 10 + randint(1, 6) * 20\n          }\n        }\n      }\n      if (this.sup2) {\n        objetsEnonce.push(tracePoint(point(xdepart * 0.075, ydepart * 0.075)))\n        for (let i = 1; i < 10; i++) {\n          if (i !== 1) {\n            objetsEnonce.push(texteParPositionEchelle(stringNombre(20 * i), 1.5 * i, -0.3, 'milieu', 'black', 1.2, 'middle', true, echelleDessin))\n          }\n        }\n        for (let i = 1; i < 12; i++) {\n          if (i !== 1) {\n            objetsEnonce.push(texteParPositionEchelle(stringNombre(20 * i), -0.5, 1.5 * i, 'milieu', 'black', 1.2, 'middle', true, echelleDessin))\n          }\n        }\n      }\n      pion.codeScratch += '\\\\end{scratch}'\n      if (context.isHtml) {\n        texte = `Cet exercice est tiré de l'excellente activité débranchée ${modalUrl(numeroExercice, 'https://www.monclasseurdemaths.fr/profs/algorithmique-scratch/note-la-couleur/', 'Note la couleur', 'info circle')} de Jean-Yves Labouche.<br>`\n        texte += 'Il a été conçu pour étendre les possibilités de fiches proposées.<br>'\n        texte += `N'hésitez pas à vous rendre sur le site ${modalUrl(numeroExercice + 1, 'https://www.monclasseurdemaths.fr', 'Mon classeur de Maths.fr', 'info circle')} de Jean-Yves pour y découvrir la multitude de ressources qu'il propose.<br>`\n        texte += `Pour jouer, regarder les règles du jeu${modalPdf(numeroExercice + 2, '../../pdf/reglesnlc.pdf', 'Règles du jeu', 'Règles - PDF', 'file pdf')} .<br>`\n      } else {\n        texte = ''\n      }\n      texte += 'Exécuter le programme et trouver la succession de couleur.<br><br>'\n      if (context.isHtml) {\n        texte += '<table><tr><td>' +\n                    scratchblock(pion.codeScratch) +\n                    '</td><td>' + `${this.sup === 4 || this.sup === 2\n                        ? 'Correspondance chiffre-couleur : <br>0=Blanc ; 1=Noir ; 2=Rouge ; 3=Bleu ; 4=Orange ; 5=Rose ; 6=Jaune ; 7=Vert ; 8=Gris<br>'\n                        : ''}` +\n                    mathalea2d(paramsCorrection, objetsEnonce) +\n                    '</td></tr></table>'\n      } else {\n        texte += `\\\\begin{minipage}{.3 \\\\linewidth} \\n\\t ${scratchblock(pion.codeScratch)} \\n \\\\end{minipage}\n      \\\\begin{minipage}{.7 \\\\linewidth} \\n\\t ${this.sup === 4 || this.sup === 2\n                    ? 'Correspondance chiffre-couleur : \\\\\\\\\\n0=Blanc, 1=Noir, 2=Rouge, 3=Bleu, 4=Orange, 5=Rose, 6=Jaune, 7=Vert, 8=Gris\\\\\\\\\\n'\n                    : ''} ${mathalea2d(paramsCorrection, objetsEnonce)} \\n\\\\end{minipage}`\n        if (q < this.nbQuestions - 1 && !context.isHtml) {\n          texte += '\\n\\\\newpage'\n        }\n      }\n      reponseCouleur = couleurs\n      if (this.sup % 2 === 0) reponseCouleur[0] = '(' + lePlateau.traducNum(couleurs[0]) + ') ' + couleurs[0]\n      texteCorr = 'On obtient la série de couleurs suivante :<br> '\n      texteCorr += `${texteEnCouleurEtGras(reponseCouleur[0])} `\n      texte += !this.interactif ? '' : 'Couleur n°1 : ' + choixDeroulant(this, q, 0, choixListeDeroulante[(this.sup - 1) % 2], 'une couleur') + '<br>'\n      /*\n      texteCorr += `${texteGras(this.sup === 4 || this.sup === 2 ? '(' + lePlateau.traducNum(couleurs[0]) + ')' + couleurs[0] : couleurs[0])} `\n      for (let i = 1; i < couleurs.length; i++) {\n        texteCorr += `- ${texteGras(this.sup === 4 || this.sup === 2 ? '(' + lePlateau.traducNum(couleurs[i]) + ')' + couleurs[i] : couleurs[i])} `\n      }\n      texteCorr += '<br>'\n      */\n      for (let i = 1; i < couleurs.length; i++) {\n        if (this.sup % 2 === 0) reponseCouleur[i] = '(' + lePlateau.traducNum(couleurs[i]) + ') ' + couleurs[i]\n        texteCorr += `${texteEnCouleurEtGras(reponseCouleur[i])} `\n        texte += !this.interactif ? '' : 'Couleur n°' + (i + 1) + ' : ' + choixDeroulant(this, q, i, choixListeDeroulante[(this.sup - 1) % 2], 'une couleur') + '<br>'\n      }\n      setReponse(this, q, [reponseCouleur])\n      lutin.animation = `<radialGradient id=\"Ball\" cx=\"8\" cy=\"-3\" r=\"20\" gradientUnits=\"userSpaceOnUse\">\n    <stop offset=\"0\" style=\"stop-color:#FFFF99\"/>\n    <stop offset=\"1\" style=\"stop-color:#FF9400\"/>\n  </radialGradient> <circle fill=\"url(#Ball)\"  r=\"12\" stroke-width=\"1\"\n   x=\"${lutin.listeTraces[0][0] * context.pixelsParCm}\"\n    y=\"${-lutin.listeTraces[0][1] * context.pixelsParCm}\">\\n\n    <animateMotion path=\"M ${lutin.listeTraces[0][0] * context.pixelsParCm} ${-lutin.listeTraces[0][1] * context.pixelsParCm} L`\n\n      for (let i = 0; i < lutin.listeTraces.length; i++) {\n        const B = point(lutin.listeTraces[i][2], lutin.listeTraces[i][3])\n        lutin.animation += ` ${B.xSVG(context.pixelsParCm)} ${B.ySVG(context.pixelsParCm)} `\n      }\n      lutin.animation += '\" begin=\"10s\" dur=\"10s\" repeatCount=\"indefinite\" />; </circle>'\n      objetsCorrection.push(tracePoint(point(xdepart * 0.075, ydepart * 0.075)))\n      if (this.sup2) {\n        for (let i = 1; i < 10; i++) {\n          if (i !== 1) {\n            objetsEnonce.push(texteParPositionEchelle(stringNombre(20 * i), 1.5 * i, -0.3, 'milieu', 'black', 1.2, 'middle', true, echelleDessin))\n          }\n        }\n        for (let i = 1; i < 12; i++) {\n          if (i !== 1) {\n            objetsEnonce.push(texteParPositionEchelle(stringNombre(20 * i), -0.5, 1.5 * i, 'milieu', 'black', 1.2, 'middle', true, echelleDessin))\n          }\n        }\n      }\n\n      if (this.correctionDetaillee) {\n        for (let i = 1; i < 10; i++) {\n          if (i !== 1) {\n            objetsCorrection.push(texteParPositionEchelle(stringNombre(20 * i), 1.5 * i, -0.3, 'milieu', 'black', 1.2, 'middle', true, echelleDessin))\n          }\n        }\n        for (let i = 1; i < 12; i++) {\n          if (i !== 1) {\n            objetsCorrection.push(texteParPositionEchelle(stringNombre(20 * i), -0.5, 1.5 * i, 'milieu', 'black', 1.2, 'middle', true, echelleDessin))\n          }\n        }\n      }\n      texteCorr += '<br><br>' + mathalea2d(paramsCorrection, objetsCorrection, lutin)\n      if (q < this.nbQuestions - 1 && !context.isHtml) {\n        texteCorr += '\\n\\\\newpage'\n      }\n      if (this.questionJamaisPosee(q, xdepart, ydepart, angledepart)) {\n        this.listeQuestions.push(texte)\n        this.listeCorrections.push(texteCorr)\n        q++\n      }\n    }\n    listeQuestionsToContenu(this)\n  }\n  this.besoinFormulaireNumerique = ['Type de plateau', 4, '1 : Plateau couleur sans numéro\\n2 : Plateau couleur avec numéros\\n3 : Plateau noir et blanc avec nom des couleurs\\n4 : Plateau noir et blanc avec numéros']\n  this.besoinFormulaire2CaseACocher = ['Graduations', true]\n  this.besoinFormulaire3Numerique = ['Nombre de couleurs (Maximum 6)', 6]\n  this.besoinFormulaire4CaseACocher = ['Plateau de jeu original', false]\n}\n"],"names":["titre","interactifReady","interactifType","dateDeModifImportante","dateDePublication","uuid","ref","NoteLaCouleurC3","Exercice","numeroExercice","damier","choixListeDeroulante","contraindreValeur","echelleDessin","j","test","objetsEnonce","objetsCorrection","paramsCorrection","commandes_disponibles","sequences_disponibles","sequence","result","nb_couleurs","instruction","couleurs","liste_instructions","lutin","lutindepart","angledepart","xdepart","ydepart","context","pion","lePlateau","plateau2dNLC","q","reponseCouleur","texte","texteCorr","compteur","retour_a_la_case_depart","compteur_essais_sequence","m","ins1","n","ins2","creerLutin","choice","randint","noteLaCouleur","colorToLatexOrHTML","allerA","orienter","angleScratchTo2d","clone","baisseCrayon","i","attendre","tracePoint","point","texteParPositionEchelle","stringNombre","modalUrl","modalPdf","scratchblock","mathalea2d","texteEnCouleurEtGras","choixDeroulant","setReponse","listeQuestionsToContenu"],"mappings":"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"}