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/betaPatronSolide-GEPRDk6I.js.map
{"version":3,"file":"betaPatronSolide-GEPRDk6I.js","sources":["../../src/exercices/beta/betaPatronSolide.js"],"sourcesContent":["import { shuffle } from '../../lib/outils/arrayOutils'\nimport { range } from '../../lib/outils/nombres.js'\nimport Exercice from '../Exercice.js'\nimport { listeQuestionsToContenu, randint } from '../../modules/outils.js'\nimport { fixeBordures, mathalea2d } from '../../modules/2dGeneralites.js'\nimport { BoiteBuilder } from '../../lib/2d/polygones.js'\n\nexport const titre = 'Compléter des patrons de solides'\nexport const interactifReady = true\nexport const interactifType = 'mathLive'\nexport const uuid = '865e9'\nexport const ref = 'betaPatronSolide'\n// Les exports suivants sont optionnels mais au moins la date de publication semble essentielle\nexport const dateDePublication = '16/04/2022' // La date de publication initiale au format 'jj/mm/aaaa' pour affichage temporaire d'un tag\n\n/**\n * Pour l'instant on va faire les cubes et les parallélépipèdes rectangles\n * @author Jean-Claude Lhote\n * Référence\n */\n/** type Cellule = { bordG, bordH } */\n\n/** type Ligne = Cellule[] */\n/** type Patron = Ligne[] */\n\nclass ModelePatrons {\n  patrons\n\n  constructor (a, b, c) {\n    this.patrons = [\n      [\n        [\n          { bordG: a, bordH: b }, { bordG: a, bordH: c }, { bordG: null, bordH: null }, {\n            bordG: null,\n            bordH: null\n          }, { bordG: null, bordH: null }\n        ],\n        [\n          { bordG: null, bordH: null }, { bordG: b, bordH: c }, { bordG: b, bordH: a }, {\n            bordG: null,\n            bordH: null\n          }, { bordG: null, bordH: null }\n        ],\n        [\n          { bordG: null, bordH: null }, { bordG: null, bordH: null }, { bordG: c, bordH: a }, {\n            bordG: c,\n            bordH: b\n          }, { bordG: null, bordH: null }\n        ]\n      ],\n      [\n        [\n          { bordG: null, bordH: null }, { bordG: null, bordH: null }, { bordG: c, bordH: a }, {\n            bordG: null,\n            bordH: null\n          }, { bordG: null, bordH: null }\n        ],\n        [\n          { bordG: b, bordH: a }, { bordG: b, bordH: c }, { bordG: b, bordH: a }, {\n            bordG: b,\n            bordH: c\n          }, { bordG: null, bordH: null }\n        ],\n        [\n          { bordG: null, bordH: null }, { bordG: a, bordH: c }, { bordG: null, bordH: null }, {\n            bordG: null,\n            bordH: null\n          }, { bordG: null, bordH: null }\n        ]\n      ],\n      [\n        [\n          { bordG: null, bordH: null }, { bordG: null, bordH: null }, { bordG: c, bordH: a }, {\n            bordG: null,\n            bordH: null\n          }, { bordG: null, bordH: null }\n        ],\n        [\n          { bordG: null, bordH: null }, { bordG: null, bordH: null }, { bordG: b, bordH: a }, {\n            bordG: b,\n            bordH: c\n          }, { bordG: b, bordH: a }\n        ],\n        [\n          { bordG: null, bordH: null }, { bordG: c, bordH: b }, { bordG: c, bordH: a }, {\n            bordG: null,\n            bordH: null\n          }, { bordG: null, bordH: null }\n        ]\n      ],\n      [\n        [\n          { bordG: null, bordH: null }, { bordG: c, bordH: b }, { bordG: c, bordH: a }, {\n            bordG: null,\n            bordH: null\n          }, { bordG: null, bordH: null }\n        ],\n        [\n          { bordG: null, bordH: null }, { bordG: null, bordH: null }, { bordG: b, bordH: a }, {\n            bordG: b,\n            bordH: c\n          }, { bordG: b, bordH: a }\n        ],\n        [\n          { bordG: null, bordH: null }, { bordG: null, bordH: null }, { bordG: null, bordH: null }, {\n            bordG: a,\n            bordH: c\n          }, { bordG: null, bordH: null }\n        ]\n      ],\n      [\n        [\n          { bordG: null, bordH: null }, { bordG: null, bordH: null }, { bordG: c, bordH: a }, {\n            bordG: null,\n            bordH: null\n          }, { bordG: null, bordH: null }\n        ],\n        [\n          { bordG: null, bordH: null }, { bordG: b, bordH: c }, { bordG: b, bordH: a }, {\n            bordG: b,\n            bordH: c\n          }, { bordG: b, bordH: a }\n        ],\n        [\n          { bordG: null, bordH: null }, { bordG: null, bordH: null }, { bordG: c, bordH: a }, {\n            bordG: null,\n            bordH: null\n          }, { bordG: null, bordH: null }\n        ]\n      ],\n      [\n        [\n          { bordG: null, bordH: null }, { bordG: a, bordH: c }, { bordG: null, bordH: null }, {\n            bordG: null,\n            bordH: null\n          }, { bordG: null, bordH: null }\n        ],\n        [\n          { bordG: null, bordH: null }, { bordG: b, bordH: c }, { bordG: b, bordH: a }, {\n            bordG: b,\n            bordH: c\n          }, { bordG: b, bordH: a }\n        ],\n        [\n          { bordG: null, bordH: null }, { bordG: a, bordH: c }, { bordG: null, bordH: null }, {\n            bordG: null,\n            bordH: null\n          }, { bordG: null, bordH: null }\n        ]\n      ],\n      [\n        [\n          { bordG: null, bordH: null }, { bordG: a, bordH: c }, { bordG: null, bordH: null }, {\n            bordG: null,\n            bordH: null\n          }, { bordG: null, bordH: null }\n        ],\n        [\n          { bordG: null, bordH: null }, { bordG: b, bordH: c }, { bordG: b, bordH: a }, {\n            bordG: b,\n            bordH: c\n          }, { bordG: b, bordH: a }\n        ],\n        [\n          { bordG: null, bordH: null }, { bordG: null, bordH: null }, { bordG: c, bordH: a }, {\n            bordG: null,\n            bordH: null\n          }, { bordG: null, bordH: null }\n        ]\n      ],\n      [\n        [\n          { bordG: null, bordH: null }, { bordG: null, bordH: null }, { bordG: null, bordH: null }, {\n            bordG: a,\n            bordH: c\n          }, { bordG: null, bordH: null }\n        ],\n        [\n          { bordG: null, bordH: null }, { bordG: b, bordH: c }, { bordG: b, bordH: a }, {\n            bordG: b,\n            bordH: c\n          }, { bordG: b, bordH: a }\n        ],\n        [\n          { bordG: null, bordH: null }, { bordG: a, bordH: c }, { bordG: null, bordH: null }, {\n            bordG: null,\n            bordH: null\n          }, { bordG: null, bordH: null }\n        ]\n      ],\n      [\n        [\n          { bordG: null, bordH: null }, { bordG: c, bordH: b }, { bordG: c, bordH: a }, {\n            bordG: null,\n            bordH: null\n          }, { bordG: null, bordH: null }\n        ],\n        [\n          { bordG: null, bordH: null }, { bordG: null, bordH: null }, { bordG: b, bordH: a }, {\n            bordG: b,\n            bordH: c\n          }, { bordG: b, bordH: a }\n        ],\n        [\n          { bordG: null, bordH: null }, { bordG: null, bordH: null }, { bordG: null, bordH: null }, {\n            bordG: null,\n            bordH: null\n          }, { bordG: c, bordH: a }\n        ]\n      ],\n      [\n        [\n          { bordG: null, bordH: null }, { bordG: null, bordH: null }, { bordG: null, bordH: null }, {\n            bordG: null,\n            bordH: null\n          }, { bordG: null, bordH: null }\n        ],\n        [\n          { bordG: b, bordH: a }, { bordG: b, bordH: c }, { bordG: b, bordH: a }, {\n            bordG: null,\n            bordH: null\n          }, { bordG: null, bordH: null }\n        ],\n        [\n          { bordG: null, bordH: null }, { bordG: null, bordH: null }, { bordG: c, bordH: a }, {\n            bordG: c,\n            bordH: b\n          }, { bordG: c, bordH: a }\n        ]\n      ],\n      [\n        [\n          { bordG: null, bordH: null }, { bordG: null, bordH: null }, { bordG: null, bordH: null }, {\n            bordG: null,\n            bordH: null\n          }, { bordG: c, bordH: a }\n        ],\n        [\n          { bordG: null, bordH: null }, { bordG: b, bordH: c }, { bordG: b, bordH: a }, {\n            bordG: b,\n            bordH: c\n          }, { bordG: b, bordH: a }\n        ],\n        [\n          { bordG: null, bordH: null }, { bordG: a, bordH: c }, { bordG: null, bordH: null }, {\n            bordG: null,\n            bordH: null\n          }, { bordG: null, bordH: null }\n        ]\n      ]\n    ]\n  }\n}\n\nclass FauxPatrons {\n  constructor (a, b, c) {\n    this.erzatz = [\n      {\n        patron: [\n          [\n            { bordG: c, bordH: a }, { bordG: null, bordH: null }, { bordG: null, bordH: null }, {\n              bordG: a,\n              bordH: c\n            }, { bordG: null, bordH: null }\n          ],\n          [\n            { bordG: b, bordH: a }, { bordG: b, bordH: c }, { bordG: b, bordH: a }, {\n              bordG: b,\n              bordH: c\n            }, { bordG: null, bordH: null }\n          ],\n          [\n            { bordG: null, bordH: null }, { bordG: null, bordH: null }, {\n              bordG: null,\n              bordH: null\n            }, { bordG: null, bordH: null }, { bordG: null, bordH: null }\n          ]\n        ],\n        fauxCube: true, // est un faux patron même si a=b=c\n        collision: [[0, 0], [0, 3]] // Les faces [0,0] et [0,3] sont les mêmes\n      },\n      {\n        patron: [\n          [\n            { bordG: null, bordH: null }, { bordG: null, bordH: null }, { bordG: c, bordH: a }, {\n              bordG: null,\n              bordH: null\n            }, { bordG: null, bordH: null }\n          ],\n          [\n            { bordG: null, bordH: null }, { bordG: b, bordH: c }, { bordG: b, bordH: a }, {\n              bordG: b,\n              bordH: c\n            }, { bordG: null, bordH: null }\n          ],\n          [\n            { bordG: null, bordH: null }, { bordG: null, bordH: null }, { bordG: c, bordH: a }, {\n              bordG: null,\n              bordH: null\n            }, { bordG: null, bordH: null }\n          ]\n        ],\n        fauxCube: true, // est un faux patron même si a=b=c\n        collision: [[1, 2], [null, null]] // il n'y a pas de collision, il manque la face opposée à la face [1,2]\n      },\n      {\n        patron: [\n          [\n            { bordG: null, bordH: null }, { bordG: null, bordH: null }, {\n              bordG: null,\n              bordH: null\n            }, { bordG: null, bordH: null }, { bordG: null, bordH: null }\n          ],\n          [\n            { bordG: b, bordH: a }, { bordG: b, bordH: c }, { bordG: b, bordH: a }, {\n              bordG: b,\n              bordH: c\n            }, { bordG: null, bordH: null }\n          ],\n          [\n            { bordG: null, bordH: null }, { bordG: a, bordH: c }, { bordG: null, bordH: null }, {\n              bordG: a,\n              bordH: c\n            }, { bordG: null, bordH: null }\n          ]\n        ],\n        fauxCube: true,\n        collision: [[2, 1], [2, 3]]\n      },\n      {\n        patron: [\n          [\n            { bordG: null, bordH: null }, { bordG: null, bordH: null }, {\n              bordG: null,\n              bordH: null\n            }, { bordG: null, bordH: null }, { bordG: null, bordH: null }\n          ],\n          [\n            { bordG: b, bordH: a }, { bordG: b, bordH: c }, { bordG: b, bordH: a }, {\n              bordG: b,\n              bordH: c\n            }, { bordG: null, bordH: null }\n          ],\n          [\n            { bordG: c, bordH: a }, { bordG: null, bordH: null }, { bordG: null, bordH: null }, {\n              bordG: a,\n              bordH: c\n            }, { bordG: null, bordH: null }\n          ]\n        ],\n        fauxCube: true,\n        collision: [[2, 0], [2, 3]]\n      },\n      {\n        patron: [\n          [\n            { bordG: a, bordH: b }, { bordG: a, bordH: c }, { bordG: null, bordH: null }, {\n              bordG: a,\n              bordH: c\n            }, { bordG: null, bordH: null }\n          ],\n          [\n            { bordG: null, bordH: null }, { bordG: b, bordH: c }, { bordG: b, bordH: a }, {\n              bordG: b,\n              bordH: c\n            }, { bordG: null, bordH: null }\n          ],\n          [\n            { bordG: null, bordH: null }, { bordG: null, bordH: null }, {\n              bordG: null,\n              bordH: null\n            }, { bordG: null, bordH: null }, { bordG: null, bordH: null }\n          ]\n        ],\n        fauxCube: true,\n        collision: [[0, 1], [0, 3]]\n      },\n      {\n        patron: [\n          [\n            { bordG: null, bordH: null }, { bordG: null, bordH: null }, { bordG: c, bordH: a }, {\n              bordG: null,\n              bordH: null\n            }, { bordG: null, bordH: null }\n          ],\n          [\n            { bordG: b, bordH: c }, { bordG: b, bordH: a }, { bordG: b, bordH: a }, {\n              bordG: b,\n              bordH: c\n            }, { bordG: null, bordH: null }\n          ],\n          [\n            { bordG: null, bordH: null }, { bordG: null, bordH: null }, { bordG: c, bordH: a }, {\n              bordG: null,\n              bordH: null\n            }, { bordG: null, bordH: null }\n          ]\n        ],\n        fauxCube: false, // Si a===c, c'est bien un patron de pave, il n'est faux que si c!==a (il faudra éviter ce cas pour les pavés)\n        collision: [[1, 1], [1, 2]]\n      }\n    ]\n  }\n}\n\nexport default class PatronsSolides extends Exercice {\n  constructor () {\n    super()\n    this.sup = '1-2-3' // Cette ligne est très importante pour faire faire un exercice simple !\n    this.nbQuestions = 3\n    this.besoinFormulaireTexte = ['Trois dimensions du parallélépipède rectangle séparés par des tirets']\n  }\n\n  nouvelleVersion () {\n    this.listeQuestions = []\n    this.listeCorrections = []\n\n    function formateGrille (modele) {\n      const largeurs = []\n      for (let x = 0, xMax; x < 5; x++) {\n        xMax = 0\n        for (let y = 0; y < 3; y++) {\n          xMax = Math.max(xMax, modele[y][x].bordH || 0)\n        }\n        largeurs[x] = xMax\n      }\n      const hauteurs = []\n      for (let y = 0, yMax; y < 3; y++) {\n        yMax = 0\n        for (let x = 0; x < 5; x++) {\n          yMax = Math.max(yMax, modele[y][x].bordG || 0)\n        }\n        hauteurs[y] = yMax\n      }\n      return [largeurs, hauteurs]\n    }\n\n    function dessinePatron (modele) {\n      const forme = []\n      const [largeurs, hauteurs] = formateGrille(modele)\n      for (let x = 0, xOffset = 0; x < 5; x++) {\n        if (largeurs[x] !== 0) {\n          for (let y = 0, yOffset = 0; y < 3; y++) {\n            if (hauteurs[y] !== 0) {\n              if (modele[y][x].bordG) {\n                forme.push(new BoiteBuilder({\n                  xMin: xOffset,\n                  yMin: yOffset,\n                  xMax: xOffset + largeurs[x],\n                  yMax: yOffset + hauteurs[y]\n                }).render())\n              }\n              yOffset += hauteurs[y]\n            }\n          }\n          xOffset += largeurs[x]\n        }\n      }\n      return forme\n    }\n\n    const dimensions = this.sup.split('-')\n    const [a, b, c] = [parseInt(dimensions[0]), parseInt(dimensions[1]), parseInt(dimensions[2])]\n    for (let i = 0; i < this.nbQuestions; i++) {\n      /*  const a = randint(1, 5)\n                                            const b = randint(1, 5, a)\n                                            const c = randint(1, 5, [a, b])\n                                            */\n      const mesModeles = new ModelePatrons(a, b, c)\n      const mesFaux = new FauxPatrons(a, b, c)\n      const nombreDeFaux = randint(1, 3)\n      const nombreDeVrais = 5 - nombreDeFaux\n      const vraisPatronsNumeros = shuffle(range(10)).slice(0, nombreDeVrais)\n      const fauxPatronsNumeros = shuffle(range(5)).slice(0, nombreDeFaux)\n      let propositions = []\n      for (const indice of vraisPatronsNumeros) {\n        propositions.push({ patron: dessinePatron(mesModeles.patrons[indice]), trueOrfalse: true })\n      }\n      for (const indice of fauxPatronsNumeros) {\n        propositions.push({ patron: dessinePatron(mesFaux.erzatz[indice].patron), trueOrfalse: false })\n      }\n      propositions = shuffle(propositions)\n      let texte = ''\n      for (const proposition of propositions) {\n        texte += mathalea2d(Object.assign(fixeBordures(proposition.patron), { style: 'display: inline' }), proposition.patron)\n      }\n      this.listeQuestions.push(texte)\n      this.listeCorrections.push('')\n    }\n    listeQuestionsToContenu(this)\n  }\n}\n"],"names":["titre","interactifReady","interactifType","uuid","ref","dateDePublication","ModelePatrons","a","b","c","__publicField","FauxPatrons","PatronsSolides","Exercice","formateGrille","modele","largeurs","x","xMax","y","hauteurs","yMax","dessinePatron","forme","xOffset","yOffset","BoiteBuilder","dimensions","i","mesModeles","mesFaux","nombreDeFaux","randint","nombreDeVrais","vraisPatronsNumeros","shuffle","range","fauxPatronsNumeros","propositions","indice","texte","proposition","mathalea2d","fixeBordures","listeQuestionsToContenu"],"mappings":"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"}