File: /home/mmtprep/public_html/mathzen.mmtprep.com/assets/scratchblock-QJouLVCF.js.map
{"version":3,"file":"scratchblock-QJouLVCF.js","sources":["../../src/modules/scratchblock.js"],"sourcesContent":["import { ObjetMathalea2D } from './2dGeneralites.js'\nimport { context } from './context.js'\n\n/**\n * Traducteur scratch3 (Latex) -> scratchblocks\n * On lui passe une chaine de caractères contenant une série de commande Latex du package Latex Scratch3\n * Elle retourne une chaine de caractères contenant l'équivalent en langage scratchblocks si le contexte est isHtml !\n * Si le contexte est !isHtml alors elle retourne la chaine passée en argument.\n * http://mirrors.ctan.org/macros/latex/contrib/scratch3/scratch3-fr.pdf\n * https://scratchblocks.github.io\n * @author Jean-Claude Lhote.\n */\n\nexport function scratchblock (stringLatex) {\n const regex1 = /[\\\\{}]/\n const regex3 = /[[]<>]/\n const regex4 = /[{ ]/\n const litcommande = function (souschaine) {\n let extrait\n if (souschaine[0] === '}') {\n return '}'\n } else {\n extrait = souschaine.split(regex4)[0]\n return extrait\n }\n }\n\n /*****************************************************/\n /** ********* La fonction d'analyse récursive *********/\n /*****************************************************/\n const translatex = function (chaine, index, compteAccolades) {\n let resultat = []; let texte = []; let texte2 = []; let texte3 = []; let taille; let string; let fleche\n let compteur, debut // pour les boucles et les if\n const souschaine = chaine.substring(index)\n const commande = litcommande(souschaine)\n switch (commande.substring(0, 5)) {\n case '\\\\bloc':\n string = commande.split('{')[0]\n taille = string.length\n string = string.substring(6)\n compteAccolades++\n switch (string) {\n case 'stop':\n texte = translatex(chaine, index + taille + 1, compteAccolades)\n texte2 = translatex(chaine, texte[1], texte[2])\n resultat = [`${texte[0]} ${texte2[0]} `, texte2[1], texte2[2]]\n break\n case 'move':\n texte = translatex(chaine, index + taille + 1, compteAccolades)\n resultat = [texte[0], texte[1], texte[2]]\n break\n case 'variable':\n texte = translatex(chaine, index + taille + 1, compteAccolades)\n resultat = [texte[0], texte[1], texte[2]]\n break\n case 'control':\n texte = translatex(chaine, index + taille + 1, compteAccolades)\n resultat = [texte[0], texte[1], texte[2]]\n break\n case 'pen':\n texte = translatex(chaine, index + taille + 1, compteAccolades)\n resultat = [texte[0] + ' :: pen', texte[1], texte[2]]\n break\n case 'list':\n texte = translatex(chaine, index + taille + 1, compteAccolades)\n resultat = [texte[0] + ' :: list', texte[1], texte[2]]\n break\n case 'init':\n texte = translatex(chaine, index + taille + 1, compteAccolades)\n resultat = [texte[0], texte[1], texte[2]]\n break\n case 'space\\n':\n compteAccolades--\n resultat = ['\\n', 11 + index, compteAccolades]\n break\n case 'if':\n texte = translatex(chaine, index + taille + 1, compteAccolades)\n texte2 = translatex(chaine, texte[1], texte[2])\n texte3 = translatex(chaine, texte2[1], texte2[2])\n resultat = [`${texte[0]} ${texte2[0]} ${texte3[0]}`, texte3[1] + 1, texte3[2] - 1]\n compteAccolades = resultat[2]\n compteur = compteAccolades + 1\n debut = chaine.substring(resultat[1]).indexOf('{') + resultat[1]\n resultat[1] = debut + 1\n resultat[0] += '\\n'\n while (compteur > compteAccolades) {\n texte = translatex(chaine, resultat[1], compteur)\n resultat[0] += ' ' + texte[0]\n resultat[1] = texte[1]\n compteur = texte[2]\n }\n resultat[0] += ' fin'\n break\n\n case 'ifelse':\n texte = translatex(chaine, index + taille + 1, compteAccolades)\n texte2 = translatex(chaine, texte[1], texte[2])\n texte3 = translatex(chaine, texte2[1], texte2[2])\n resultat = [`${texte[0]} ${texte2[0]} ${texte3[0]}`, texte3[1] + 1, texte3[2] - 1]\n compteAccolades = resultat[2]\n compteur = compteAccolades + 1\n debut = chaine.substring(resultat[1]).indexOf('{') + resultat[1]\n resultat[1] = debut + 1\n resultat[0] += '\\n'\n while (compteur > compteAccolades) {\n texte = translatex(chaine, resultat[1], compteur)\n resultat[0] += ' ' + texte[0]\n resultat[1] = texte[1]\n compteur = texte[2]\n }\n resultat[0] += ' sinon'\n compteur = compteAccolades + 1\n debut = chaine.substring(resultat[1]).indexOf('{') + resultat[1]\n resultat[1] = debut + 1\n resultat[0] += '\\n'\n while (compteur > compteAccolades) {\n texte = translatex(chaine, resultat[1], compteur)\n resultat[0] += ' ' + texte[0]\n resultat[1] = texte[1]\n compteur = texte[2]\n }\n resultat[0] += ' fin'\n break\n case 'repeat':\n texte = translatex(chaine, index + taille + 1, compteAccolades)\n if (texte[0].split(' ')[1] !== 'indéfiniment') {\n if (texte[0].split(' ')[1] !== \"jusqu'à\") {\n texte2 = translatex(chaine, texte[1], texte[2])\n texte3 = translatex(chaine, texte2[1], texte2[2])\n resultat = [`${texte[0]} ${texte2[0]} ${texte3[0]}`, texte3[1] + 1, texte3[2] - 1]\n compteAccolades = resultat[2]\n } else {\n texte2 = translatex(chaine, texte[1], texte[2])\n resultat = [`${texte[0]} ${texte2[0]} `, texte2[1] + 1, texte2[2] - 1]\n compteAccolades = resultat[2]\n }\n } else {\n resultat = [`${texte[0]} `, texte[1] + 1, texte[2] - 1]\n compteAccolades = resultat[2]\n }\n compteur = compteAccolades + 1\n debut = chaine.substring(resultat[1]).indexOf('{') + resultat[1]\n resultat[1] = debut + 1\n resultat[0] += '\\n'\n while (compteur > compteAccolades) {\n texte = translatex(chaine, resultat[1], compteur)\n resultat[0] += ' ' + texte[0]\n resultat[1] = texte[1]\n compteur = texte[2]\n }\n resultat[0] += ' fin'\n break\n default:\n texte = translatex(chaine, index + taille + 1, compteAccolades)\n resultat = [texte[0], texte[1], texte[2]]\n break\n }\n\n break\n case '\\\\oval':\n string = commande.split('{')[0]\n taille = string.length\n string = string.substring(5)\n compteAccolades++\n if (string.charAt(string.length - 1) === '*') {\n fleche = true\n string = string.substring(0, string.length - 1)\n } else fleche = false\n switch (string) {\n case 'num':\n texte = translatex(chaine, index + taille + 1, compteAccolades)\n if (isNaN(texte[0]) && texte[0].indexOf(regex3)) {\n resultat = [`[${texte[0]}]`, texte[1] + 1, texte[2] - 1]\n } else {\n resultat = [`(${texte[0]})`, texte[1] + 1, texte[2] - 1]\n }\n break\n case 'moreblocks':\n texte = translatex(chaine, index + taille + 1, compteAccolades)\n if (fleche) {\n resultat = [`(${texte[0]} v)`, texte[1], texte[2]]\n } else {\n resultat = [`(${texte[0]})`, texte[1], texte[2]]\n }\n break\n case 'variable':\n texte = translatex(chaine, index + taille + 1, compteAccolades)\n if (fleche) {\n resultat = [`(${texte[0]} v)`, texte[1] + 1, texte[2] - 1]\n } else {\n resultat = [`(${texte[0]})`, texte[1] + 1, texte[2] - 1]\n }\n break\n case 'sound':\n texte = translatex(chaine, index + taille + 1, compteAccolades)\n if (fleche) {\n resultat = [`(${texte[0]} v :: sound)`, texte[1] + 1, texte[2] - 1]\n } else {\n resultat = [`(${texte[0]} :: sound)`, texte[1] + 1, texte[2] - 1]\n }\n break\n case 'sensing':\n texte = translatex(chaine, index + taille + 1, compteAccolades)\n if (fleche) {\n resultat = [`(${texte[0]} v :: sensing)`, texte[1] + 1, texte[2] - 1]\n } else {\n resultat = [`(${texte[0]} :: sensing)`, texte[1] + 1, texte[2] - 1]\n }\n break\n case 'operator':\n texte = translatex(chaine, index + taille + 1, compteAccolades)\n texte2 = translatex(chaine, texte[1], texte[2])\n resultat = [`(${texte[0]} ${texte2[0]}`, texte2[1], texte2[2]]\n while (chaine.charAt(texte2[1]) !== '}') {\n texte2 = translatex(chaine, texte2[1], texte2[2])\n resultat[0] += ' ' + texte2[0]\n }\n resultat[0] += ')'\n resultat[1] = texte2[1] + 1\n resultat[2] = texte2[2] - 1\n break\n\n default:\n texte = translatex(chaine, index + taille + 1, compteAccolades)\n if (fleche) {\n resultat = [`(${texte[0]} v)`, texte[1] + 1, texte[2] - 1]\n } else {\n resultat = [`(${texte[0]})`, texte[1] + 1, texte[2] - 1]\n }\n break\n }\n\n break\n case '\\\\bool':\n string = commande.split(/\\{ /)[0]\n taille = string.length\n string = string.substring(5, 9)\n switch (string) {\n case 'oper':\n compteAccolades++\n texte = translatex(chaine, index + taille + 1, compteAccolades)\n texte2 = translatex(chaine, texte[1], texte[2])\n resultat = [`<${texte[0]} ${texte2[0]}`, texte2[1], texte2[2]]\n while (chaine.charAt(texte2[1]) !== '}') {\n texte2 = translatex(chaine, texte2[1], texte2[2])\n resultat[0] += ' ' + texte2[0]\n }\n resultat[0] += ' :: operators boolean>'\n resultat[1] = texte2[1] + 1\n resultat[2] = texte2[2] - 1\n break\n case 'empt':\n resultat = ['< vide :: operators boolean>', index + taille + 1, compteAccolades]\n break\n case 'sens':\n compteAccolades++\n texte = translatex(chaine, index + taille + 1, compteAccolades)\n texte2 = translatex(chaine, texte[1], texte[2])\n resultat = [`<${texte[0]} ${texte2[0]}`, texte2[1], texte2[2]]\n while (chaine.charAt(texte2[1]) !== '}') {\n texte2 = translatex(chaine, texte2[1], texte2[2])\n resultat[0] += ' ' + texte2[0]\n }\n resultat[0] += ' :: sensing>'\n resultat[1] = texte2[1] + 1\n resultat[2] = texte2[2] - 1\n break\n case 'list':\n compteAccolades++\n texte = translatex(chaine, index + taille + 1, compteAccolades)\n texte2 = translatex(chaine, texte[1], texte[2])\n resultat = [`<${texte[0]} ${texte2[0]}`, texte2[1], texte2[2]]\n while (chaine.charAt(texte2[1]) !== '}') {\n texte2 = translatex(chaine, texte2[1], texte2[2])\n resultat[0] += ' ' + texte2[0]\n }\n resultat[0] += ' :: list>'\n resultat[1] = texte2[1] + 1\n resultat[2] = texte2[2] - 1\n break\n default:\n texte = translatex(chaine, index + taille + 1, compteAccolades)\n resultat = [`<${texte[0]}>`, texte[1], texte[2]]\n break\n }\n break\n case '\\\\init':\n string = commande.split('{')[0]\n taille = string.length\n compteAccolades++\n texte = translatex(chaine, index + taille + 1, compteAccolades)\n texte2 = translatex(chaine, texte[1], texte[2])\n resultat = [`${texte[0]} ${texte2[0]} `, texte2[1], texte2[2]]\n break\n case '\\\\name':\n string = commande.split('{')[0]\n taille = string.length\n compteAccolades++\n texte = translatex(chaine, index + taille + 1, compteAccolades)\n texte2 = translatex(chaine, texte[1], texte[2])\n resultat = [`${texte[0]} ${texte2[0]}`, texte2[1], texte2[2]]\n while (chaine.charAt(texte2[1]) !== '}') {\n texte2 = translatex(chaine, texte2[1], texte2[2])\n resultat[0] += ' ' + texte2[0]\n }\n resultat[1] = texte2[1] + 1\n resultat[2] = texte2[2] - 1\n break\n default:\n switch (commande) {\n case '}':\n compteAccolades--\n resultat = [' ', 1 + index, compteAccolades]\n break\n case '\\\\begin':\n compteAccolades++\n if (chaine.substring(15 + index)[0] === '[') {\n index = chaine.substring(15 + index).indexOf(']') + 16 + index\n } else {\n index += 15\n }\n resultat = [' <!-- Code Scratch -->', index, compteAccolades]\n break\n case '\\\\end':\n compteAccolades--\n resultat = [' <!-- Fin du Code Scratch -->\\n', 13 + index, compteAccolades]\n break\n case '\\\\turnleft':\n resultat = ['gauche ', 11 + index, compteAccolades]\n break\n case '\\\\turnright':\n resultat = ['droite ', 12 + index, compteAccolades]\n break\n case '\\\\greenflag':\n resultat = [' @greenFlag ', 10 + index, compteAccolades]\n break\n case '\\\\selectmenu':\n compteAccolades++\n texte = translatex(chaine, 12 + index, compteAccolades)\n resultat = [`[${texte[0]} v]`, texte[1] + 1, texte[2] - 1]\n break\n default:\n string = chaine.substring(index).split(regex1)[0]\n resultat = [string, string.length + index, compteAccolades]\n break\n }\n break\n }\n return resultat\n }\n /*********************************************/\n /** *********** Fin de translatex *************/\n /*********************************************/\n\n // boucle pricipale de scratchblock2\n let codeScratch = ''\n let fin; let result = []; let index\n let compteur = 0\n if (!((stringLatex.match(/\\{/g) || []).length === (stringLatex.match(/\\}/g) || []).length)) {\n // console.log(\"Il n'y a pas le même nombre de { que de }. Je préfère m'arrêter.\")\n return false\n }\n if (!context.isHtml) {\n codeScratch = stringLatex\n } else {\n codeScratch = '<pre class=\\'blocks\\'>'\n index = 0\n fin = false\n while (!fin) {\n result = translatex(stringLatex, index, compteur)\n codeScratch += result[0]\n index = result[1]\n compteur = result[2]\n if (compteur === 0) fin = true\n }\n codeScratch += '</pre>\\n'\n }\n return codeScratch\n}\n\n/**\n * Représente une boussole pour les 4 orientations possible dans Scratch\n * Il n'y a pas d'arguments, c'est un objet statique qui a sa méthode svg() et sa méthode tikz()\n * Il est difficile de modifier la taille de l'objet à cause du texte des blocks\n * @class\n * @author Jean-Claude Lhote, Sylvain Chambon, Sébastien Lozano\n * @return {RoseDesVents}\n */\nexport function RoseDesVents () {\n ObjetMathalea2D.call(this)\n this.bordures = [-6, -6, 6, 6]\n this.svg = function (coeff) {\n function cadran () {\n let group = '<g>\\n'\n for (let alpha = 0; alpha < 360; alpha += 15) {\n group += `<line x1=\"${115 + Math.round(45 * Math.cos(alpha * Math.PI / 180))}\" y1=\"${115 + Math.round(45 * Math.sin(alpha * Math.PI / 180))}\" x2=\"${115 + Math.round(35 * Math.cos(alpha * Math.PI / 180))}\" y2=\"${115 + Math.round(35 * Math.sin(alpha * Math.PI / 180))}\" stroke=\"white\" />\\n`\n }\n return group + '</g>\\n'\n }\n \n function sorientera (angle) {\n return `<g id=\"sorientera${angle}\" style=\"transform: scale(0.675)\">\n<g transform=\"translate(0 0)\">\n<g transform=\"translate(2 1)\">\n<path class=\"sb3-motion\" d=\"M 0 4\n A 4 4 0 0 1 4 0\n H 12 c 2 0 3 1 4 2\n l 4 4\n c 1 1 2 2 4 2\n h 12\n c 2 0 3 -1 4 -2\n l 4 -4\n c 1 -1 2 -2 4 -2\n L 139 0\n a 4 4 0 0 1 4 4 L 143 44 a 4 4 0 0 1 -4 4 L 48 48 c -2 0 -3 1 -4 2 l -4 4 c -1 1 -2 2 -4 2 h -12 c -2 0 -3 -1 -4 -2 l -4 -4 c -1 -1 -2 -2 -4 -2 L 4 48 a 4 4 0 0 1 -4 -4 Z\"></path>\n <text class=\"sb3-label sb3-\" x=\"0\" y=\"13\" transform=\"translate(8 17)\">s'orienter</text>\n <text class=\"sb3-label sb3-\" x=\"0\" y=\"13\" transform=\"translate(78 17)\">à</text>\n <g transform=\"translate(95 8)\">\n <rect rx=\"16\" ry=\"16\" x=\"0\" y=\"0\" width=\"40\" height=\"32\" class=\"sb3-motion sb3-input sb3-input-number\"></rect>\n <text class=\"sb3-label sb3-literal-number\" x=\"0\" y=\"13\" transform=\"translate(11 9)\">${angle}</text>\n </g>\n </g>\n </g>\n </g>`\n }\n \n const code = `<g class=\"roseDesVents\" id=roseDesVents${this.id} transform=\"translate(-115 -115) scale(${coeff / 20})\">\n<rect x=\"50\" y=\"50\" rx=\"4\" ry=\"4\" width=\"130\" height=\"130\" fill=\"#4c97ff\" stroke=\"#3373cc\"/>\n<circle r=\"50\" cx=\"115\" cy=\"115\" fill=\"#3373cc\" stroke=\"#3373cc\"/>\n${cadran()}\n<clipPath id=\"monClip\">\n <rect x=\"115\" y=\"50\" width=\"50\" height=\"65\"></rect>\n </clipPath>\n <circle r=\"50\" cx=\"115\" cy=\"115\" id=\"quartDeCercle\" fill-opacity=\"0.3\" fill=\"white\" clip-path=\"url(#monClip)\"/>\n <defs>\n <g id=\"direction\" x=\"0\" y=\"0\">\n <circle r=\"10\" cx=\"0\" cy=\"0\" fill=\"white\"/>\n <path d=\"M -6 3 h 7 v 3 l 5 -6 l -5 -6 v 3 h -7 v 6 z\" fill=\"#4c97ff\" />\n </g>\n </defs>\n <use href=\"#direction\" x=\"165\" y=\"115\" />\n <use href=\"#direction\" transform=\"rotate(-90 115 65)\" x=\"115\" y=\"65\" />\n <use href=\"#direction\" transform=\"rotate(-180 65 115)\" x=\"65\" y=\"115\" />\n <use href=\"#direction\" transform=\"rotate(90 115 165)\" x=\"115\" y=\"165\" />\n <g transform=\"translate(65 0)\">${sorientera(0)}</g>\n<g transform=\"translate(230 65) rotate(90)\">${sorientera(90)}</g>\n<g transform=\"translate(165 230) rotate(180)\">${sorientera(180)}</g>\n<g transform=\"translate(0 165) rotate(-90)\">${sorientera(-90)}</g>\n</g>\n`\n return code\n }\n this.tikz = function () {\n const code = `\\\\node (centre) {\n \\\\begin{tikzpicture}[baseline, scale=0.5]\n \\\\definecolor{scratchBlue}{RGB}{76, 151, 255}\n \\\\definecolor{scratchBlue2}{RGB}{51, 115, 204}\n \\\\pgfmathsetmacro{\\\\rayon}{1.5}\n \\\\coordinate (O) at (2,2);\n \\\\draw[scratchBlue2,thin,fill=scratchBlue,rounded corners] (0,0) rectangle (4,4);\n \\\\fill[scratchBlue2] (O) circle (\\\\rayon);\n \\\\fill[white,opacity=0.3] (O) -- ++(\\\\rayon,0) arc [start angle=0, end angle=90, radius=\\\\rayon cm] -- (O);\n \\\\draw[white,thick] ($(O)+(0,\\\\rayon)$) -- (O) -- ($(O)+(\\\\rayon,0)$) coordinate (dir90);\n \\\\fill[white] (O) circle (2pt);\n \\\\foreach \\\\angle in {0,15,...,345} {\n \\\\coordinate (A) at ($(O)+(\\\\angle:1.3)$);\n \\\\draw[white,thin] ($(O)!0.8!(A)$) -- (A);\n }\n \\\\fill[white] (dir90) circle (10pt);\n \\\\node[scratchBlue,fill=scratchBlue,single arrow,scale=0.2] at (dir90) {aa};\n \\\\coordinate (N) at (2,\\\\rayon+2);\n \\\\fill[white] (N) circle (10pt);\n \\\\node[scratchBlue,fill=scratchBlue,single arrow,scale=0.2, rotate=90] at (N) {aa};\n \\\\coordinate (S) at (2,2-\\\\rayon);\n \\\\fill[white] (S) circle (10pt);\n \\\\node[scratchBlue,fill=scratchBlue,single arrow,scale=0.2, rotate=-90] at (S) {aa};\n \\\\coordinate (W) at (2-\\\\rayon,2);\n \\\\fill[white] (W) circle (10pt);\n \\\\node[scratchBlue,fill=scratchBlue,single arrow,scale=0.2, rotate=180] at (W) {aa};\n \n \\\\end{tikzpicture}\n };\n \\\\node[above] at (centre.north){\n \\\\begin{scratch}[scale=0.5]\n \\\\blockmove{s'orienter à \\\\ovalnum{$0$}}\n \\\\end{scratch}\n };\n \\\\node[above,rotate=-90] at (centre.east) {\n \\\\begin{scratch}[scale=0.5]\n \\\\blockmove{s'orienter à \\\\ovalnum{$90$}}\n \\\\end{scratch}\n };\n \\\\node[above, rotate=180] at (centre.south){\n \\\\begin{scratch}[scale=0.5]\n \\\\blockmove{s'orienter à \\\\ovalnum{$180$}}\n \\\\end{scratch}\n };\n \\\\node[above,rotate=90] at (centre.west){\n \\\\begin{scratch}[scale=0.5]\n \\\\blockmove{s'orienter à \\\\ovalnum{$-90$}}\n \\\\end{scratch}\n };`\n return code\n }\n}\n\n/**\n * Crée une instance de RoseDesVents (une boussole Scratch)\n * Il n'y a pas d'arguments, c'est un objet statique qui a sa méthode svg() et sa méthode tikz()\n * Il est difficile de modifier la taille de l'objet à cause du texte des blocks\n * @returns {RoseDesVents}\n */\nexport function roseDesVents () {\n return new RoseDesVents()\n}\n"],"names":["scratchblock","stringLatex","regex1","regex3","regex4","litcommande","souschaine","extrait","translatex","chaine","index","compteAccolades","resultat","texte","texte2","texte3","taille","string","fleche","compteur","debut","commande","codeScratch","fin","result","context","RoseDesVents","ObjetMathalea2D","coeff","cadran","group","alpha","sorientera","angle","roseDesVents"],"mappings":"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"}