File: /home/mmtprep/public_html/mathzen.mmtprep.com/assets/3G41-OJSOMxtz.js.map
{"version":3,"file":"3G41-OJSOMxtz.js","sources":["../../src/exercices/3e/3G41.js"],"sourcesContent":["import { choice, compteOccurences, enleveDoublonNum, shuffle } from '../../lib/outils/arrayOutils'\nimport { numAlpha } from '../../lib/outils/outilString.js'\nimport Exercice from '../Exercice.js'\nimport { fixeBordures, mathalea2d } from '../../modules/2dGeneralites.js'\nimport { listeQuestionsToContenu, randint, gestionnaireFormulaireTexte } from '../../modules/outils.js'\nimport { cube } from '../../modules/3d.js'\nimport { context } from '../../modules/context.js'\nexport const titre = \"Dessiner différentes vues d'un empilement de cubes\"\nexport const dateDePublication = '06/10/2022'\nexport const dateDeModifImportante = '08/11/2023' // Retour du formulaire numérique en supprimant le tooltip\n\nexport const amcReady = true\nexport const amcType = 'AMCHybride'\n\n/**\n* Dessiner différentes vues d'un empilement de cubes\n* @author Eric Elter (sur un début d'exercices d'Erwan Duplessy)\n* Source : http://cache.media.education.gouv.fr/file/Geometrie_et_espace/47/1/RA16_C4_MATH_geo_espace_flash_567471.pdf\n*/\n\nexport const uuid = '136dd'\nexport const ref = '3G41'\nexport default function VuesEmpilementCubes () {\n Exercice.call(this)\n this.titre = titre\n this.sup = 1\n this.sup2 = 7\n this.sup3 = 3\n this.nbQuestions = 2\n\n this.nouvelleVersion = function () {\n this.listeQuestions = [] // tableau contenant la liste des questions\n this.listeCorrections = []\n this.autoCorrection = []\n let objetsEnonce, objetsCorrection\n\n const dimensionsTab = gestionnaireFormulaireTexte({\n max: 999,\n defaut: 1,\n nbQuestions: 1,\n saisie: this.sup,\n shuffle: false\n })\n let dimensions = dimensionsTab[0]\n if (((dimensions > 1) && (dimensions < 100)) || (dimensions > 999)) dimensions = 1\n\n // Fonction made in Erwan DUPLESSY\n function empilementCubes (long, larg, hmax) {\n const tabHauteurs = new Array(larg)\n for (let i = 0; i < larg; i++) {\n tabHauteurs[i] = new Array(long)\n }\n // premiere ligne\n for (let i = 0; i < larg; i++) {\n tabHauteurs[i][0] = randint(0, 1)\n }\n // deuxième ligne et suivantes\n for (let i = 0; i < larg; i++) {\n for (let j = 1; j < long; j++) {\n tabHauteurs[i][j] = Math.min(tabHauteurs[i][j - 1] + randint(0, 2), hmax)\n }\n }\n tabHauteurs[randint(0, larg - 1)][long - 1] = hmax\n // Vérification Dernière Ligne : ne pas être vide.\n for (let i = 0; i < larg; i++) {\n tabHauteurs[i][long - 1] = Math.max(1, tabHauteurs[i][long - 1])\n }\n // Ajoute les cubes dans un tableau une dimension\n // il faut trier les cubes : x décroissant puis y décroissant, puis z croissant\n const lstCoordonneesCubes = []\n for (let i = larg - 1; i > -1; i = i - 1) {\n for (let j = long - 1; j > -1; j = j - 1) {\n for (let k = 0; k < tabHauteurs[i][j]; k++) { lstCoordonneesCubes.push([i, j, k]) }\n }\n }\n return lstCoordonneesCubes\n }\n\n for (let q = 0, vuePossible, alpha, beta, consigneAMC, texteAMC, texte, texteCorr, cpt = 0; q < this.nbQuestions && cpt < 50;) {\n let listeVuesPossibles = gestionnaireFormulaireTexte({\n max: 7,\n defaut: 7,\n nbQuestions: this.nbQuestions,\n saisie: this.sup2,\n shuffle: false\n })\n\n if (compteOccurences(listeVuesPossibles, 7) > 0) listeVuesPossibles = shuffle([randint(1, 2), randint(3, 4), randint(5, 6)])\n else {\n listeVuesPossibles = enleveDoublonNum(listeVuesPossibles)\n listeVuesPossibles = shuffle(listeVuesPossibles)\n }\n for (let ee = 1; ee < 7; ee++) {\n if (!listeVuesPossibles.includes(ee)) listeVuesPossibles.push(ee)\n }\n listeVuesPossibles = listeVuesPossibles.map(x => x - 1)\n\n objetsEnonce = []\n objetsCorrection = []\n\n texte = ''\n texteCorr = ''\n\n const vue = [['gauche', 90, 0], ['droite', -90, 0], ['dessus', 0, -90], ['dessous', 0, 90], ['face', 0, 0], ['dos', 180, 0]]\n // ...cube(x,y,z,0,-90) : vue de haut\n // ...cube(x,y,z,90,0) : vue de gauche\n // ...cube(x,y,z,0,0) : vue de face\n // ...cube(x,y,z,45,-35) : vue isométrique\n const colorD = context.isAmc ? choice(['white', 'gray', 'darkgray']) : choice(['red', 'blue', 'green', 'gray'])\n const colorT = context.isAmc ? choice(['white', 'gray', 'darkgray'], [colorD]) : choice(['white', 'yellow'])\n const colorG = context.isAmc ? choice(['white', 'gray', 'darkgray'], [colorD, colorT]) : choice(['red', 'blue', 'green', 'gray'], [colorD])\n const longueur = Math.floor((dimensions % 100) / 10) < 2 ? randint(2, 6) : Math.floor((dimensions % 100) / 10)\n const largeur = Math.floor(dimensions / 100) < 2 ? randint(2, 6) : Math.floor(dimensions / 100)\n const hauteur = dimensions % 10 < 2 ? randint(2, 6) : dimensions % 10\n\n texte += 'Voici un solide composé par un empilement de cubes, présenté de deux façons différentes. <br>'\n\n alpha = 30\n beta = -30\n const L = empilementCubes(longueur, largeur, hauteur)\n objetsEnonce = []\n for (let i = 0; i < L.length; i++) {\n objetsEnonce.push(...cube(L[i][0], L[i][1], L[i][2], alpha, beta, { colorD, colorT, colorG }).c2d)\n }\n texte += mathalea2d(Object.assign({}, fixeBordures(objetsEnonce), { scale: 0.7, style: 'inline' }), objetsEnonce) + ' '\n alpha = 10\n beta = -30\n objetsEnonce = []\n for (let i = 0; i < L.length; i++) {\n objetsEnonce.push(...cube(L[i][0], L[i][1], L[i][2], alpha, beta, { colorD, colorT, colorG }).c2d)\n }\n texte += mathalea2d(Object.assign({}, fixeBordures(objetsEnonce), { scale: 0.7, style: 'block' }), objetsEnonce) + '<br>'\n consigneAMC = texte\n if (context.isAmc) {\n this.autoCorrection[q] =\n {\n enonce: consigneAMC + '<br>',\n propositions: []\n }\n }\n for (let ee = 0; ee < this.sup3; ee++) {\n vuePossible = listeVuesPossibles[ee]\n texteAMC = this.sup3 > 1 ? numAlpha(ee) + ' ' : ''\n texteAMC += `Dessiner la vue de ${vue[vuePossible][0]} de ce solide.`\n texte += texteAMC + '<br>'\n // correction :\n texteCorr += this.sup3 > 1 ? numAlpha(ee) + ' ' : ''\n texteCorr += `Voici la vue de ${vue[vuePossible][0]} de ce solide. <br>`\n alpha = vue[vuePossible][1]\n beta = vue[vuePossible][2]\n objetsCorrection = []\n for (let i = 0; i < L.length; i++) {\n objetsCorrection.push(...cube(L[i][0], L[i][1], L[i][2], alpha, beta, { colorD, colorT, colorG }).c2d)\n }\n texteCorr += mathalea2d(fixeBordures(objetsCorrection), objetsCorrection) + '<br>'\n if (context.isAmc) {\n this.autoCorrection[q].propositions.push({\n type: 'AMCOpen',\n propositions: [\n {\n texte: ' ',\n statut: 3, // (ici c'est le nombre de lignes du cadre pour la réponse de l'élève sur AMC)\n enonce: texteAMC, // EE : ce champ est facultatif et fonctionnel qu'en mode hybride (en mode normal, il n'y a pas d'intérêt)\n sanscadre: false, // EE : ce champ est facultatif et permet (si true) de cacher le cadre et les lignes acceptant la réponse de l'élève\n pointilles: false\n }\n ]\n }\n )\n }\n }\n if (this.questionJamaisPosee(q, texte)) { // <- laisser le i et ajouter toutes les variables qui rendent les exercices différents (par exemple a, b, c et d)\n this.listeQuestions.push(texte)\n this.listeCorrections.push(texteCorr)\n q++\n }\n cpt++\n }\n listeQuestionsToContenu(this) // On envoie l'exercice à la fonction de mise en page\n }\n\n this.besoinFormulaireTexte = ['Longueur, largeur et hauteur sous la forme abc', 'a étant la longueur du solide (a>1)\\nb étant la largeur du solide (b>1)\\nc étant sa hauteur du solide (c>1)\\n Choisir 0 ou 1 si on souhaite laisser le hasard faire.']\n this.besoinFormulaire2Texte = ['Vues possibles dans les questions ', 'Nombres séparés par des tirets\\n1 : Gauche\\n2 : Droite\\n3 : Dessus\\n4 : Dessous \\n5 : Face\\n6 : Dos\\n7 : 3 faces non parallèles']\n // 'De 1 à 6\\nSi le nombre de vues demandé est supérieur au nombre de vues possible, alors des vues autres que celles choisies sont proposées.'\n this.besoinFormulaire3Numerique = ['Nombre de vues demandé', 6]\n}\n"],"names":["titre","dateDePublication","dateDeModifImportante","amcReady","amcType","uuid","ref","VuesEmpilementCubes","Exercice","objetsEnonce","objetsCorrection","dimensions","gestionnaireFormulaireTexte","empilementCubes","long","larg","hmax","tabHauteurs","i","randint","j","lstCoordonneesCubes","k","q","vuePossible","alpha","beta","consigneAMC","texteAMC","texte","texteCorr","cpt","listeVuesPossibles","compteOccurences","shuffle","enleveDoublonNum","ee","x","vue","colorD","context","choice","colorT","colorG","longueur","largeur","hauteur","L","cube","mathalea2d","fixeBordures","numAlpha","listeQuestionsToContenu"],"mappings":"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"}