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/pyramide-Vxc65cUH.js.map
{"version":3,"file":"pyramide-Vxc65cUH.js","sources":["../../src/modules/pyramide.js"],"sourcesContent":["import { BoiteBuilder } from '../lib/2d/polygones.js'\nimport { choice } from '../lib/outils/arrayOutils'\nimport { stringNombre } from '../lib/outils/texNombre.js'\nimport { fraction } from './fractions.js'\nimport { randint } from './outils.js'\n\nexport default class Pyramide {\n  /**\n     *\n     * @param {object} param0\n     * @param {string} param0.operation\n     * @param {number} param0.nombreEtages\n     * @param {number[]|number[][]} param0.rangeData\n     * @param {number[]}  param0.exclusions\n     * @param {boolean} param0.fractionOn\n     */\n  constructor ({ operation = '+', nombreEtages = 3, rangeData = [1, 10], exclusions = [], fractionOn = false } = {}) {\n    this.operation = operation\n    this.nombreEtages = nombreEtages\n    this.rangeData = rangeData\n    this.valeurs = []\n    this.isVisible = []\n    this.fractionOn = fractionOn\n    for (let y = nombreEtages - 1; y >= 0; y--) {\n      this.valeurs[y] = []\n      this.isVisible[y] = []\n      for (let x = 0, num, den; x <= y; x++) {\n        if (y === nombreEtages - 1) {\n          if (this.fractionOn) {\n            den = choice(rangeData[1])\n            num = randint(rangeData[0][0], rangeData[0][1], exclusions.concat([den]))\n            this.valeurs[y][x] = fraction(num, den).simplifie()\n          } else {\n            this.valeurs[y][x] = randint(rangeData[0], rangeData[1], exclusions)\n          }\n        } else {\n          switch (operation) {\n            case '+':\n              if (this.fractionOn) {\n                this.valeurs[y][x] = this.valeurs[y + 1][x].sommeFraction(this.valeurs[y + 1][x + 1]).simplifie()\n              } else {\n                this.valeurs[y][x] = this.valeurs[y + 1][x] + this.valeurs[y + 1][x + 1]\n              }\n              break\n            case '*':\n              if (this.fractionOn) {\n                this.valeurs[y][x] = this.valeurs[y + 1][x].produitFraction(this.valeurs[y + 1][x + 1]).simplifie()\n              } else {\n                this.valeurs[y][x] = this.valeurs[y + 1][x] * this.valeurs[y + 1][x + 1]\n              }\n\n              break\n          }\n        }\n        this.isVisible[y][x] = false\n      }\n    }\n  }\n\n  visible = (x, y) => {\n    return this.isVisible[y][x]\n  }\n\n  estSolvable = function (x, y) {\n    if (this.visible(x, y)) return true\n    else if (y === this.nombreEtages - 1) return false\n    else return this.estSolvable(x, y + 1) && this.estSolvable(x + 1, y + 1)\n  }\n\n  choisisUneCaseNonVisible = function () {\n    let x, y\n    let trouve = false\n    let cpt = 0\n    do {\n      cpt++\n      y = randint(1, this.nombreEtages - 1)\n      x = randint(0, y)\n      let seul = true\n      for (let i = 0; i < y; i++) {\n        if (i !== x && !this.visible(i, y)) seul = false\n      }\n      if (seul && cpt < 20) trouve = false\n      else trouve = !this.visible(x, y)\n    } while (!trouve)\n    return [x, y]\n  }\n\n  aleatoirise = function () {\n    let solvable = false\n    do {\n      const [x, y] = this.choisisUneCaseNonVisible()\n      this.isVisible[y][x] = true\n      solvable = this.estSolvable(0, 0)\n    } while (!solvable)\n  }\n\n  representeMoi = function (xO = 0, yO = 0) {\n    const objets = []\n    const hCase = this.fractionOn ? 2 : 1\n    for (let y = this.nombreEtages; y > 0; y--) {\n      for (let x = 0; x < y; x++) {\n        //  if (this.isVisible[y - 1][x]) {\n        /* objets.push(boite({\n                                                       Xmin: xO + x * 4 + (this.nombreEtages - y) * 2,\n                                                       Ymin: yO + (this.nombreEtages - y) * hCase,\n                                                       Xmax: xO + x * 4 + 4 + (this.nombreEtages - y) * 2,\n                                                       Ymax: yO + (1 + this.nombreEtages - y) * hCase,\n                                                       texteIn: this.fractionOn ? `$${this.valeurs[y - 1][x].texFractionSimplifiee}$` : stringNombre(this.valeurs[y - 1][x], 0),\n                                                       texteOpacite: 1\n                                                     }))\n                                                     */\n        objets.push(new BoiteBuilder({\n          xMin: xO + x * 4 + (this.nombreEtages - y) * 2,\n          yMin: yO + (this.nombreEtages - y) * hCase,\n          xMax: xO + x * 4 + 4 + (this.nombreEtages - y) * 2,\n          yMax: yO + (1 + this.nombreEtages - y) * hCase\n        }).addTextIn({\n          textIn: !this.isVisible[y - 1][x]\n            ? ''\n            : this.fractionOn\n              ? this.valeurs[y - 1][x].texFractionSimplifiee\n              : stringNombre(this.valeurs[y - 1][x], 0),\n          opacite: 1\n        }).render())\n      }\n    }\n    return objets\n  }\n}\n"],"names":["Pyramide","operation","nombreEtages","rangeData","exclusions","fractionOn","__publicField","x","y","trouve","cpt","randint","seul","i","solvable","xO","yO","objets","hCase","BoiteBuilder","stringNombre","num","den","choice","fraction"],"mappings":"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"}