exercices/6e/6C12-3.js

import Exercice from '../Exercice.js'
import { context } from '../../modules/context.js'
import { listeQuestionsToContenu, randint, choice, stringNombre, texteEnCouleurEtGras, texteGras, prenomM, arrondi, prenomF, nomDuMois, jour, rangeMinMax, compteOccurences, contraindreValeur, combinaisonListes, sp } from '../../modules/outils.js'
import { propositionsQcm } from '../../modules/interactif/questionQcm.js'
export const amcReady = true
export const amcType = 'qcmMult' // type de question AMC
export const interactifReady = true
export const interactifType = 'qcm'

export const titre = 'Trouver les informations utiles ou inutiles pour résoudre des problèmes'

// Gestion de la date de publication initiale
export const dateDePublication = '01/12/2021'

/**
 * Trouver les informations utiles ou inutiles pour résoudre des problèmes
 * On peut choisir des problèmes qui n'ont pas de solution.
 * @author Eric Elter
* Référence 6C12-3
 */
export const uuid = '7fb24'
export const ref = '6C12-3'
export default function ExerciceInformationsProblemes () {
  // Multiplier deux nombres
  Exercice.call(this) // Héritage de la classe Exercice()
  this.sup = 1
  this.sup2 = 11
  this.sup3 = false
  this.titre = titre
  this.spacing = 2
  this.nbQuestions = 10

  this.nouvelleVersion = function () {
    this.autoCorrection = []
    this.listeQuestions = [] // Liste de questions
    this.listeCorrections = [] // Liste de questions corrigées
    // Ebauche de la consigne en fonction des possibilités
    const cocheIndique = ['coche', 'indique']
    const chaqueCe = ['chaque', 'ce']
    const affirmatifNegatif = ['servent', 'ne servent pas']
    this.consigne = 'Dans '
    this.consigne += this.nbQuestions === 1 ? chaqueCe[1] : chaqueCe[0]
    this.consigne += ' problème, '
    this.consigne += context.vue === 'diap' ? cocheIndique[1] : cocheIndique[0]
    this.consigne += ' les informations qui '
    this.consigne += this.sup !== 1 ? affirmatifNegatif[1] : affirmatifNegatif[0]
    this.consigne += ' à sa résolution.'
    // Fin de l'ébauche de la consigne en fonction des possibilités

    let listeDesProblemes = []
    if (!this.sup2) { // Si aucune liste n'est saisie
      listeDesProblemes = rangeMinMax(1, 10)
    } else {
      if (typeof (this.sup2) === 'number') { // Si c'est un nombre c'est que le nombre a été saisi dans la barre d'adresses
        listeDesProblemes[0] = contraindreValeur(1, 11, this.sup2, 11)
      } else {
        listeDesProblemes = this.sup2.split('-')// Sinon on créé un tableau à partir des valeurs séparées par des -
        for (let i = 0; i < listeDesProblemes.length; i++) { // on a un tableau avec des strings : ['1', '1', '2']
          listeDesProblemes[i] = contraindreValeur(1, 11, parseInt(listeDesProblemes[i]), 11) // parseInt en fait un tableau d'entiers
        }
      }
    }
    if (compteOccurences(listeDesProblemes, 11) > 0) listeDesProblemes = rangeMinMax(1, 10) // Teste si l'utilisateur a choisi tout
    listeDesProblemes = combinaisonListes(listeDesProblemes, this.nbQuestions)
    const FamilleH = ['père', 'frère', 'cousin', 'grand-père', 'voisin']
    const FamilleF = ['mère', 'sœur', 'cousine', 'grand-mère', 'tante', 'voisine']

    let choixVersion = 0

    for (
      let i = 0, nb, nb1, nb2, nb3, nb4, nb5, quidam, quidam2, personnage1, texte, texteCorr;
      i < this.nbQuestions;
      i++
    ) {
      this.autoCorrection[i] = {}
      choixVersion = this.sup3 ? choice([1, 2, 3]) : choice([1, 2])
      texte = ''
      texteCorr = ''
      switch (listeDesProblemes[i]) {
        case 1 :
          nb1 = randint(17, 35)
          nb2 = randint(7, 15)
          nb4 = randint(3, 10)
          nb5 = 10 * randint(20, 60)
          texte += `Dans une classe de ${nb1} élèves âgés de ${nb2}  à ${nb2 + 2}  ans,`
          texte += ` un professeur distribue à chaque enfant ${nb4} livres pesant en moyenne ${nb5} g chacun.<br>`

          switch (choixVersion) {
            case 1:
              texte += 'Quel est le nombre total de livres distribués ?'
              if (this.sup === 1) {
                texteCorr += texteEnCouleurEtGras(nb1 + ' élèves')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb4 + ' livres') + ' sont utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteEnCouleurEtGras(nb1) + `$${sp()}\\times${sp()}$` + texteEnCouleurEtGras(nb4 + ' livres') + '.'
              } else {
                texteCorr += texteEnCouleurEtGras(nb2 + ' ans') + ', ' + texteEnCouleurEtGras(nb2 + 2 + ' ans')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb5 + ' g') + ' ne sont pas utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteGras(nb1) + `$${sp()}\\times${sp()}$` + texteGras(nb4 + ' livres') + '.'
              }
              this.autoCorrection[i].enonce = `${texte}\n`
              this.autoCorrection[i].propositions = [
                {
                  texte: `${nb1} élèves`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb2} ans`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb2 + 2} ans`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb4} livres`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb5} g`,
                  statut: this.sup !== 1
                }
              ]
              break
            case 2:
              texte += 'Quelle est la masse moyenne des livres distribués à chaque enfant ?'
              if (this.sup === 1) {
                texteCorr += texteEnCouleurEtGras(nb5 + ' g')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb4 + ' livres') + ' sont utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteEnCouleurEtGras(nb5 + ' g') + `$${sp()}\\times${sp()}$` + texteEnCouleurEtGras(nb4) + '.'
              } else {
                texteCorr += texteEnCouleurEtGras(nb2 + ' ans') + ', ' + texteEnCouleurEtGras(nb2 + 2 + ' ans')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb1 + ' élèves') + ' ne sont pas utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteGras(nb5 + ' g') + `$${sp()}\\times${sp()}$` + texteGras(nb4) + '.'
              }
              this.autoCorrection[i].enonce = `${texte}\n`
              this.autoCorrection[i].propositions = [
                {
                  texte: `${nb1} élèves`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb2} ans`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb2 + 2} ans`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb4} livres`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb5} g`,
                  statut: this.sup === 1
                }
              ]

              break
            default:
              texte += `Quel est, dans cette classe, le nombre exact d'enfants de ${nb2 + 1} ans ?`
              if (this.sup === 1) {
                texteCorr += 'Aucune donnée n\'est utile pour la résolution du problème.<br>'
              } else {
                texteCorr += texteEnCouleurEtGras(nb1 + ' élèves') + ', ' + texteEnCouleurEtGras(nb2 + ' ans') + ', '
                texteCorr += texteEnCouleurEtGras(nb2 + 2 + ' ans') + ', ' + texteEnCouleurEtGras(nb4 + ' livres')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb5 + ' g') + ' ne sont pas utiles pour la résolution du problème.<br>'
              }
              texteCorr += 'On ne peut pas répondre à ce problème. Il manque des informations.'
              this.autoCorrection[i].enonce = `${texte}\n`
              this.autoCorrection[i].propositions = [
                {
                  texte: `${nb1} élèves`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb2} ans`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb2 + 2} ans`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb4} livres`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb5} g`,
                  statut: this.sup !== 1
                }
              ]

              break
          }
          break
        case 2:
          quidam = prenomM()
          nb1 = randint(2, 5)
          nb2 = choice([250, 500, 600, 750])
          nb3 = stringNombre(arrondi(randint(10, 50) / 10 + randint(1, 9) / 100))
          nb4 = randint(2, 5, [nb1])
          nb5 = stringNombre(arrondi(randint(20, 40) / 10 + randint(1, 9) / 100))
          texte += `Au marché, ${quidam} achète ${nb1} barquettes de haricots verts de ${nb2}${sp(1)}g chacune à ${nb3}${sp(1)}€ pièce `
          texte += ` et ${nb4}${sp(1)}ananas coûtant ${nb5}${sp(1)}€ l'unité.<br>`

          switch (choixVersion) {
            case 1:
              texte += 'Quel est le prix total des fruits achetés ?'
              if (this.sup === 1) {
                texteCorr += texteEnCouleurEtGras(nb4 + ' ananas')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb5 + ' €') + ' sont utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteEnCouleurEtGras(nb4) + `$${sp()}\\times${sp()}$` + texteEnCouleurEtGras(nb5 + ' €') + '.'
              } else {
                texteCorr += texteEnCouleurEtGras(nb1 + ' barquettes') + ', ' + texteEnCouleurEtGras(nb2 + ' g')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb3 + ' €') + ' ne sont pas utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteGras(nb4) + `$${sp()}\\times${sp()}$` + texteGras(nb5 + ' €') + '.'
              }

              this.autoCorrection[i].enonce = `${texte}\n`
              this.autoCorrection[i].propositions = [
                {
                  texte: `${nb1} barquettes`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb2} g`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb3} €`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb4} ananas`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb5} €`,
                  statut: this.sup === 1
                }
              ]
              break
            case 2:
              texte += 'Quel est le prix total des légumes achetés ?'
              if (this.sup === 1) {
                texteCorr += texteEnCouleurEtGras(nb1 + ' barquettes')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb3 + ' €') + ' sont utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteEnCouleurEtGras(nb1) + `$${sp()}\\times${sp()}$` + texteEnCouleurEtGras(nb3 + ' €') + '.'
              } else {
                texteCorr += texteEnCouleurEtGras(nb4 + ' ananas') + ', ' + texteEnCouleurEtGras(nb2 + ' g')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb5 + ' €') + ' ne sont pas utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteGras(nb1) + `$${sp()}\\times${sp()}$` + texteGras(nb3 + ' €') + '.'
              }

              this.autoCorrection[i].enonce = `${texte}\n`
              this.autoCorrection[i].propositions = [
                {
                  texte: `${nb1} barquettes`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb2} g`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb3} €`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb4} ananas`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb5} €`,
                  statut: this.sup !== 1
                }
              ]
              break
            default:
              texte += 'Quel est le prix total des boissons achetées ?'
              if (this.sup === 1) {
                texteCorr += 'Aucune donnée n\'est utile pour la résolution du problème.<br>'
              } else {
                texteCorr += texteEnCouleurEtGras(nb1 + ' barquettes') + ', ' + texteEnCouleurEtGras(nb2 + ' g') + ', '
                texteCorr += texteEnCouleurEtGras(nb3 + ' €') + ', ' + texteEnCouleurEtGras(nb4 + ' ananas')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb5 + ' €') + ' ne sont pas utiles pour la résolution du problème.<br>'
              }
              texteCorr += 'On ne peut pas répondre à ce problème. Il manque des informations.'
              this.autoCorrection[i].enonce = `${texte}\n`
              this.autoCorrection[i].propositions = [
                {
                  texte: `${nb1} barquettes`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb2} g`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb3} €`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb4} ananas`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb5} €`,
                  statut: this.sup !== 1
                }
              ]
              break
          }
          break

        case 3:
          quidam = prenomM()
          quidam2 = prenomF()
          nb1 = randint(501, 978)
          nb2 = randint(230, 450)
          nb3 = randint(5, 11)
          nb4 = randint(110, 230)
          nb5 = randint(128, nb1 / 2)
          texte += `Le village de Sainte-${quidam2}-Les-Trois-Vallées compte ${nb1} habitants et se situe à une altitude de ${nb2} m.`
          texte += ` À ${nb3} km de là, le village de Saint-${quidam}-Le-Bouquetin, situé ${nb4} m plus haut, compte ${nb5} habitants de moins.<br>`

          switch (choixVersion) {
            case 1:
              texte += `Combien d'habitants compte le village de Saint-${quidam}-Le-Bouquetin ?`
              if (this.sup === 1) {
                texteCorr += texteEnCouleurEtGras(nb1 + ' habitants')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb5 + ' habitants') + ' sont utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteEnCouleurEtGras(nb1 + ' habitants') + `$${sp()}-${sp()}$` + texteEnCouleurEtGras(nb5 + ' habitants') + '.'
              } else {
                texteCorr += texteEnCouleurEtGras(nb2 + ' m') + ', ' + texteEnCouleurEtGras(nb3 + ' km')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb4 + ' m') + ' ne sont pas utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteGras(nb1 + ' habitants') + `$${sp()}-${sp()}$` + texteGras(nb5 + ' habitants') + '.'
              }

              this.autoCorrection[i].enonce = `${texte}\n`
              this.autoCorrection[i].propositions = [
                {
                  texte: `${nb1} habitants`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb2} m`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb3} km`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb4} m`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb5} habitants`,
                  statut: this.sup === 1
                }
              ]
              break
            case 2:
              texte += `À quelle altitude se situe le village de Saint-${quidam}-Le-Bouquetin ?`
              if (this.sup === 1) {
                texteCorr += texteEnCouleurEtGras(nb2 + ' m')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb4 + ' m') + ' sont utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteEnCouleurEtGras(nb2 + ' m') + `$${sp()}+${sp()}$` + texteEnCouleurEtGras(nb4 + ' m') + '.'
              } else {
                texteCorr += texteEnCouleurEtGras(nb1 + ' habitants') + ', ' + texteEnCouleurEtGras(nb3 + ' km')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb5 + ' habitants') + ' ne sont pas utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteGras(nb2 + ' m') + `$${sp()}+${sp()}$` + texteGras(nb4 + ' m') + '.'
              }

              this.autoCorrection[i].enonce = `${texte}\n`
              this.autoCorrection[i].propositions = [
                {
                  texte: `${nb1} habitants`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb2} m`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb3} km`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb4} m`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb5} habitants`,
                  statut: this.sup !== 1
                }
              ]
              break
            default:
              texte += `Combien de garçons compte le village de Sainte-${quidam2}-Les-Trois-Vallées ?`
              if (this.sup === 1) {
                texteCorr += 'Aucune donnée n\'est utile pour la résolution du problème.<br>'
              } else {
                texteCorr += texteEnCouleurEtGras(nb1 + ' habitants') + ', ' + texteEnCouleurEtGras(nb2 + ' m') + ', '
                texteCorr += texteEnCouleurEtGras(nb3 + ' km') + ', ' + texteEnCouleurEtGras(nb4 + ' m')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb5 + ' habitants') + ' ne sont pas utiles pour la résolution du problème.<br>'
              }
              texteCorr += 'On ne peut pas répondre à ce problème. Il manque des informations.'
              this.autoCorrection[i].enonce = `${texte}\n`
              this.autoCorrection[i].propositions = [
                {
                  texte: `${nb1} habitants`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb2} m`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb3} km`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb4} m`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb5} habitants`,
                  statut: this.sup !== 1
                }
              ]
              break
          }
          break
        case 4:
          personnage1 = choice(FamilleH)
          quidam2 = prenomF()
          nb1 = '1 h ' + 5 * randint(1, 10) + ' min'
          nb2 = stringNombre(arrondi(randint(50, 90) / 10 + randint(1, 9) / 100))
          nb3 = randint(5, 9)
          nb4 = choice([10, 20, 50])
          nb5 = 4 * randint(12, 24)
          texte += `${quidam2} vient de lire en ${nb1} un manga qu'elle avait payé ${nb2} €. `
          texte += `Elle a remarqué que sur chaque page, il y avait exactement ${nb3} cases. `
          texte += `C'est grâce au billet de ${nb4} € que lui a donné son ${personnage1}, que ${quidam2} a pu s'acheter ce livre de ${nb5} pages.<br>`

          switch (choixVersion) {
            case 1:
              texte += `Combien y a-t-il de cases dans le manga de ${quidam2} ?`
              if (this.sup === 1) {
                texteCorr += texteEnCouleurEtGras(nb3 + ' cases')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb5 + ' pages') + ' sont utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteEnCouleurEtGras(nb3 + ' cases') + `$${sp()}\\times${sp()}$` + texteEnCouleurEtGras(nb5) + '.'
              } else {
                texteCorr += texteEnCouleurEtGras(nb1) + ', ' + texteEnCouleurEtGras(nb2 + ' €')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb4 + ' €') + ' ne sont pas utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteGras(nb3 + ' cases') + `$${sp()}\\times${sp()}$` + texteGras(nb5) + '.'
              }

              this.autoCorrection[i].enonce = `${texte}\n`
              this.autoCorrection[i].propositions = [
                {
                  texte: `${nb1}`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb2} €`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb3} cases`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb4} €`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb5} pages`,
                  statut: this.sup === 1
                }
              ]
              break
            case 2:
              texte += `Lorsqu'elle a acheté son manga, quelle somme d'argent a-t-on rendu à ${quidam2} ?`
              if (this.sup === 1) {
                texteCorr += texteEnCouleurEtGras(nb2 + ' €')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb4 + ' €') + ' sont utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteEnCouleurEtGras(nb4 + ' €') + `$${sp()}-${sp()}$` + texteEnCouleurEtGras(nb2 + ' €') + '.'
              } else {
                texteCorr += texteEnCouleurEtGras(nb1) + ', ' + texteEnCouleurEtGras(nb3 + ' cases')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb5 + ' pages') + ' ne sont pas utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteGras(nb4 + ' €') + `$${sp()}-${sp()}$` + texteGras(nb2 + ' €') + '.'
              }

              this.autoCorrection[i].enonce = `${texte}\n`
              this.autoCorrection[i].propositions = [
                {
                  texte: `${nb1}`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb2} €`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb3} cases`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb4} €`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb5} pages`,
                  statut: this.sup !== 1
                }
              ]
              break
            default:
              texte += `À quelle heure ${quidam2} a-t-elle commencé à lire son manga ?`
              if (this.sup === 1) {
                texteCorr += 'Aucune donnée n\'est utile pour la résolution du problème.<br>'
              } else {
                texteCorr += texteEnCouleurEtGras(nb1) + ', ' + texteEnCouleurEtGras(nb2 + ' €') + ', '
                texteCorr += texteEnCouleurEtGras(nb3 + ' cases') + ', ' + texteEnCouleurEtGras(nb4 + ' €')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb5 + ' pages') + ' ne sont pas utiles pour la résolution du problème.<br>'
              }
              texteCorr += 'On ne peut pas répondre à ce problème. Il manque des informations.'
              this.autoCorrection[i].enonce = `${texte}\n`
              this.autoCorrection[i].propositions = [
                {
                  texte: `${nb1}`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb2} €`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb3} cases`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb4} €`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb5} pages`,
                  statut: this.sup !== 1
                }
              ]
              break
          }
          break
        case 5:
          personnage1 = randint(1, 2) === 1 ? 'sa ' + choice(FamilleF) : 'son ' + choice(FamilleH)
          if (randint(1, 2) === 1) {
            quidam = prenomM()
            quidam2 = 'il'
          } else {
            quidam = prenomF()
            quidam2 = 'elle'
          }
          nb = randint(13, 21)
          nb1 = jour() + ' ' + randint(2, 29) + ' ' + nomDuMois(randint(1, 12))
          nb2 = nb + ' h ' + 5 * randint(2, 11) + ' min'
          nb3 = nb + 2 + ' h ' + 5 * randint(2, 11) + ' min'
          nb4 = nb + 1 + ' h ' + 5 * randint(2, 11) + ' min'
          nb5 = randint(37, 58)
          texte += `${quidam} décide de programmer la box de ${personnage1} pour enregistrer un film prévu le ${nb1} et une émission prévue le lendemain. `
          texte += `Le film doit commencer à ${nb2} et se terminer à ${nb3}. L'émission commence à ${nb4} et dure ${nb5} minutes.<br>`

          switch (choixVersion) {
            case 1:
              texte += 'Quelle est la durée prévue du film ?'
              if (this.sup === 1) {
                texteCorr += texteEnCouleurEtGras(nb2)
                texteCorr += ' et ' + texteEnCouleurEtGras(nb3) + ' sont utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteEnCouleurEtGras(nb3) + `$${sp()}-${sp()}$` + texteEnCouleurEtGras(nb2) + '.'
              } else {
                texteCorr += texteEnCouleurEtGras(nb4) + ', ' + texteEnCouleurEtGras(nb1)
                texteCorr += ' et ' + texteEnCouleurEtGras(nb5 + ' minutes') + ' ne sont pas utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteGras(nb3) + `$${sp()}-${sp()}$` + texteGras(nb2) + '.'
              }

              this.autoCorrection[i].enonce = `${texte}\n`
              this.autoCorrection[i].propositions = [
                {
                  texte: `${nb1}`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb2}`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb3}`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb4}`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb5 + ' minutes'}`,
                  statut: this.sup !== 1
                }
              ]
              break
            case 2:
              texte += 'À quelle heure se termine l\'émission ?'
              if (this.sup === 1) {
                texteCorr += texteEnCouleurEtGras(nb4)
                texteCorr += ' et ' + texteEnCouleurEtGras(nb5 + ' minutes') + ' sont utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteEnCouleurEtGras(nb4) + `$${sp()}+${sp()}$` + texteEnCouleurEtGras(nb5 + ' minutes') + '.'
              } else {
                texteCorr += texteEnCouleurEtGras(nb2) + ', ' + texteEnCouleurEtGras(nb3)
                texteCorr += ' et ' + texteEnCouleurEtGras(nb1) + ' ne sont pas utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteGras(nb4) + `$${sp()}+${sp()}$` + texteGras(nb5 + ' minutes') + '.'
              }

              this.autoCorrection[i].enonce = `${texte}\n`
              this.autoCorrection[i].propositions = [
                {
                  texte: `${nb1}`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb2}`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb3}`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb4}`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb5 + ' minutes'}`,
                  statut: this.sup === 1
                }
              ]
              break
            default:
              texte += `À quelle heure de sa journée, ${quidam} décide-t-${quidam2} de programmer la box de ${personnage1} ?`
              if (this.sup === 1) {
                texteCorr += 'Aucune donnée n\'est utile pour la résolution du problème.<br>'
              } else {
                texteCorr += texteEnCouleurEtGras(nb2) + ', ' + texteEnCouleurEtGras(nb3) + ', '
                texteCorr += texteEnCouleurEtGras(nb4) + ', ' + texteEnCouleurEtGras(nb5 + ' minutes')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb1) + ' ne sont pas utiles pour la résolution du problème.<br>'
              }
              texteCorr += 'On ne peut pas répondre à ce problème. Il manque des informations.'
              this.autoCorrection[i].enonce = `${texte}\n`
              this.autoCorrection[i].propositions = [
                {
                  texte: `${nb1}`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb2}`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb3}`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb4}`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb5 + ' minutes'}`,
                  statut: this.sup !== 1
                }
              ]
              break
          }
          break
        case 6:
          personnage1 = choice(FamilleF)
          quidam = choice(FamilleH)
          quidam2 = prenomF()
          nb1 = choice([15, 18, 21])
          nb2 = randint(214, 625)
          nb3 = randint(15, 18)
          nb4 = stringNombre(arrondi(randint(2054, 3298) / 100))
          nb5 = choice([2, 3, 4, 6, 12])
          texte += `La ${personnage1} de ${quidam2} lui a acheté un superbe vélo de ${nb1} vitesses, coûtant ${nb2} €, avec des roues de ${nb3} pouces. `
          texte += `Pour la protéger, son ${quidam} lui a offert un casque et du matériel d'éclairage valant ${nb4} €. `
          texte += `La ${personnage1} de ${quidam2} a décidé de payer le vélo en ${nb5} fois.<br>`

          switch (choixVersion) {
            case 1:
              texte += `Quel est le montant de chaque versement que payera la ${personnage1} de ${quidam2} ?`
              if (this.sup === 1) {
                texteCorr += texteEnCouleurEtGras(nb2 + ' €')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb5 + ' fois') + ' sont utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteEnCouleurEtGras(nb2 + ' €') + `$${sp()}\\div${sp()}$` + texteEnCouleurEtGras(nb5) + '.'
              } else {
                texteCorr += texteEnCouleurEtGras(nb1 + ' vitesses') + ', ' + texteEnCouleurEtGras(nb3 + ' pouces')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb4 + ' €') + ' ne sont pas utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteGras(nb2 + ' €') + `$${sp()}\\div${sp()}$` + texteGras(nb5) + '.'
              }

              this.autoCorrection[i].enonce = `${texte}\n`
              this.autoCorrection[i].propositions = [
                {
                  texte: `${nb1} vitesses`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb2} €`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb3} pouces`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb4} €`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb5} fois`,
                  statut: this.sup === 1
                }
              ]
              break
            case 2:
              texte += `Quel est le montant total des cadeaux offerts à ${quidam2} ?`
              if (this.sup === 1) {
                texteCorr += texteEnCouleurEtGras(nb2 + ' €')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb4 + ' €') + ' sont utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteEnCouleurEtGras(nb4 + ' €') + `$${sp()}+${sp()}$` + texteEnCouleurEtGras(nb2 + ' €') + '.'
              } else {
                texteCorr += texteEnCouleurEtGras(nb1 + ' vitesses') + ', ' + texteEnCouleurEtGras(nb3 + ' pouces')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb5 + ' fois') + ' ne sont pas utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteGras(nb4 + ' €') + `$${sp()}+${sp()}$` + texteGras(nb2 + ' €') + '.'
              }

              this.autoCorrection[i].enonce = `${texte}\n`
              this.autoCorrection[i].propositions = [
                {
                  texte: `${nb1} vitesses`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb2} €`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb3} pouces`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb4} €`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb5} fois`,
                  statut: this.sup !== 1
                }
              ]
              break
            default:
              texte += `Pour quel âge, ${quidam2} a-t-elle reçu son vélo comme cadeau d'anniversaire ?`
              if (this.sup === 1) {
                texteCorr += 'Aucune donnée n\'est utile pour la résolution du problème.<br>'
              } else {
                texteCorr += texteEnCouleurEtGras(nb1 + ' vitesses') + ', ' + texteEnCouleurEtGras(nb2 + ' €') + ', '
                texteCorr += texteEnCouleurEtGras(nb3 + ' pouces') + ', ' + texteEnCouleurEtGras(nb4 + ' €')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb5 + ' fois') + ' ne sont pas utiles pour la résolution du problème.<br>'
              }
              texteCorr += 'On ne peut pas répondre à ce problème. Il manque des informations.'
              this.autoCorrection[i].enonce = `${texte}\n`
              this.autoCorrection[i].propositions = [
                {
                  texte: `${nb1} vitesses`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb2} €`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb3} pouces`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb4} €`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb5} fois`,
                  statut: this.sup !== 1
                }
              ]
              break
          }
          break
        case 7:
          personnage1 = choice(FamilleF)
          quidam = prenomM()
          quidam2 = prenomF()
          nb1 = randint(0, 3)
          nb2 = ['3ème', '4ème', '5ème', '6ème'][nb1]
          nb3 = [14, 13, 12, 11][nb1]
          nb4 = stringNombre(arrondi(randint(132, 151) / 100))
          nb5 = randint(21, 42)
          texte += `${quidam}, un élève de ${nb2}, de ${nb3} ans, mesure ${nb4} m. `
          texte += `${quidam2} a ${nb1 + 2} ans de plus que ${quidam} et mesure ${nb5} cm de plus.<br>`

          switch (choixVersion) {
            case 1:
              texte += `Quel est l'âge de ${quidam2} ?`
              if (this.sup === 1) {
                texteCorr += texteEnCouleurEtGras(nb3 + ' ans')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb1 + 2 + ' ans') + ' sont utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteEnCouleurEtGras(nb3 + ' ans') + `$${sp()}+${sp()}$` + texteEnCouleurEtGras(nb1 + 2 + ' ans ') + '.'
              } else {
                texteCorr += texteEnCouleurEtGras(nb2) + ', ' + texteEnCouleurEtGras(nb4 + ' m')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb5 + ' cm') + ' ne sont pas utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteGras(nb3 + ' ans') + `$${sp()}+${sp()}$` + texteGras(nb1 + 2 + ' ans ') + '.'
              }

              this.autoCorrection[i].enonce = `${texte}\n`
              this.autoCorrection[i].propositions = [
                {
                  texte: `${nb1 + 2} ans`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb2}`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb3} ans`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb4} m`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb5} cm`,
                  statut: this.sup !== 1
                }
              ]
              break
            case 2:
              texte += `Combien mesure ${quidam2} ?`
              if (this.sup === 1) {
                texteCorr += texteEnCouleurEtGras(nb4 + ' m')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb5 + ' cm') + ' sont utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteEnCouleurEtGras(nb4 + ' m') + `$${sp()}+${sp()}$` + texteEnCouleurEtGras(nb5 + ' cm') + '.'
              } else {
                texteCorr += texteEnCouleurEtGras(nb1 + 2 + ' ans, ') + texteEnCouleurEtGras(nb3 + ' ans')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb2) + ' ne sont pas utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteGras(nb4 + ' m') + `$${sp()}+${sp()}$` + texteGras(nb5 + ' cm') + '.'
              }

              this.autoCorrection[i].enonce = `${texte}\n`
              this.autoCorrection[i].propositions = [
                {
                  texte: `${nb1 + 2} ans`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb2}`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb3} ans`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb4} m`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb5} cm`,
                  statut: this.sup === 1
                }
              ]
              break
            default:
              texte += `En quelle classe est ${quidam2} ?`
              if (this.sup === 1) {
                texteCorr += 'Aucune donnée n\'est utile pour la résolution du problème.<br>'
              } else {
                texteCorr += texteEnCouleurEtGras(nb1 + 2 + ' ans') + ', ' + texteEnCouleurEtGras(nb2) + ', '
                texteCorr += texteEnCouleurEtGras(nb3 + ' ans') + ', ' + texteEnCouleurEtGras(nb4 + ' m')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb5 + ' cm') + ' ne sont pas utiles pour la résolution du problème.<br>'
              }
              texteCorr += 'On ne peut pas répondre à ce problème. Il manque des informations.'
              this.autoCorrection[i].enonce = `${texte}\n`
              this.autoCorrection[i].propositions = [
                {
                  texte: `${nb1 + 2} ans`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb2}`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb3} ans`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb4} m`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb5} cm`,
                  statut: this.sup !== 1
                }
              ]
              break
          }
          break
        case 8:
          personnage1 = choice(FamilleH)
          quidam = prenomM()
          nb1 = randint(45, 58)
          nb2 = randint(3, 5)
          nb3 = randint(7, 9) + ' h ' + 5 * randint(2, 11) + ' min'
          nb4 = stringNombre(arrondi(randint(9, 15, [10]) / 10), 1) + '0'
          nb5 = 5 * randint(4, 11)
          texte += `Le ${personnage1} de ${quidam}, âgé de ${nb1} ans, se rend ${nb2} fois par semaine à ${choice(['Paris', 'Toulouse', 'Bordeaux', 'Rouen'])} en train. `
          texte += `Une fois arrivé, il prend le métro à ${nb3}, après avoir acheté systèmatiquement le même journal, dans un kiosque de la gare, qui coûte ${nb4} €. Son trajet en métro dure ${nb5} minutes pour se rendre au travail.<br>`

          switch (choixVersion) {
            case 1:
              texte += `Combien le ${personnage1} de ${quidam} dépense-t-il chaque semaine pour son journal ?`
              if (this.sup === 1) {
                texteCorr += texteEnCouleurEtGras(nb2 + ' fois')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb4 + ' €') + ' sont utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteEnCouleurEtGras(nb2) + `$${sp()}\\times${sp()}$` + texteEnCouleurEtGras(nb4 + ' € ') + '.'
              } else {
                texteCorr += texteEnCouleurEtGras(nb1 + ' ans') + ', ' + texteEnCouleurEtGras(nb3)
                texteCorr += ' et ' + texteEnCouleurEtGras(nb5 + ' min') + ' ne sont pas utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteGras(nb2) + `$${sp()}\\times${sp()}$` + texteGras(nb4 + ' € ') + '.'
              }

              this.autoCorrection[i].enonce = `${texte}\n`
              this.autoCorrection[i].propositions = [
                {
                  texte: `${nb1} ans`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb2} fois`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb3}`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb4} €`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb5} min`,
                  statut: this.sup !== 1
                }
              ]
              break
            case 2:
              texte += `À quelle heure le ${personnage1} de ${quidam} arrive-t-il à son travail ?`
              if (this.sup === 1) {
                texteCorr += texteEnCouleurEtGras(nb3)
                texteCorr += ' et ' + texteEnCouleurEtGras(nb5 + ' min') + ' sont utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteEnCouleurEtGras(nb3) + `$${sp()}+${sp()}$` + texteEnCouleurEtGras(nb5 + ' min') + '.'
              } else {
                texteCorr += texteEnCouleurEtGras(nb1 + ' ans, ') + texteEnCouleurEtGras(nb2 + ' fois')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb4 + ' €') + ' ne sont pas utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteGras(nb3) + `$${sp()}+${sp()}$` + texteGras(nb5 + ' min') + '.'
              }

              this.autoCorrection[i].enonce = `${texte}\n`
              this.autoCorrection[i].propositions = [
                {
                  texte: `${nb1} ans`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb2} fois`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb3}`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb4} €`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb5} min`,
                  statut: this.sup === 1
                }
              ]
              break
            default:
              texte += `À quelle heure le ${personnage1} de ${quidam} est-il parti de chez lui ?`
              if (this.sup === 1) {
                texteCorr += 'Aucune donnée n\'est utile pour la résolution du problème.<br>'
              } else {
                texteCorr += texteEnCouleurEtGras(nb1 + ' ans') + ', ' + texteEnCouleurEtGras(nb3) + ', '
                texteCorr += texteEnCouleurEtGras(nb2 + ' fois') + ', ' + texteEnCouleurEtGras(nb4 + ' €')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb5 + ' min') + ' ne sont pas utiles pour la résolution du problème.<br>'
              }
              texteCorr += 'On ne peut pas répondre à ce problème. Il manque des informations.'
              this.autoCorrection[i].enonce = `${texte}\n`
              this.autoCorrection[i].propositions = [
                {
                  texte: `${nb1} ans`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb2} fois`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb3}`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb4} €`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb5} min`,
                  statut: this.sup !== 1
                }
              ]
              break
          }
          break
        case 9:
          personnage1 = choice(FamilleF)
          quidam = prenomM()
          quidam2 = prenomF()
          nb1 = randint(21, 39)
          nb2 = randint(7, 18)
          nb3 = randint(7, 15)
          nb4 = randint(10, 12) + ' h ' + 5 * randint(2, 11) + ' min'
          nb5 = randint(16, 29)
          texte += `Un livreur part de son entrepôt avec ${nb1} colis. Au premier arrêt, le plus près, il depose ${nb2} colis. ${nb3} km plus loin, il livre le reste de ses colis. `
          texte += `Ensuite, à ${nb4}, le livreur reprend la même route et retourne à l'entrepôt, à ${nb5} km de là.<br>`

          switch (choixVersion) {
            case 1:
              texte += 'Quelle distance sépare l\'entrepôt du premier arrêt ?'
              if (this.sup === 1) {
                texteCorr += texteEnCouleurEtGras(nb3 + ' km')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb5 + ' km') + ' sont utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteEnCouleurEtGras(nb5 + ' km') + `$${sp()}-${sp()}$` + texteEnCouleurEtGras(nb3 + ' km ') + '.'
              } else {
                texteCorr += texteEnCouleurEtGras(nb1 + ' colis') + ', ' + texteEnCouleurEtGras(nb2 + ' colis')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb4) + ' ne sont pas utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteEnCouleurEtGras(nb5 + ' km') + `$${sp()}-${sp()}$` + texteEnCouleurEtGras(nb3 + ' km ') + '.'
              }

              this.autoCorrection[i].enonce = `${texte}\n`
              this.autoCorrection[i].propositions = [
                {
                  texte: `${nb1} colis`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb2} colis`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb3} km`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb4}`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb5} km`,
                  statut: this.sup === 1
                }
              ]
              break
            case 2:
              texte += 'Combien de colis le livreur a-t-il déposé à son deuxième arrêt ?'
              if (this.sup === 1) {
                texteCorr += texteEnCouleurEtGras(nb1 + ' colis')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb2 + ' colis') + ' sont utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteEnCouleurEtGras(nb1 + ' colis') + `$${sp()}-${sp()}$` + texteEnCouleurEtGras(nb2 + ' colis') + '.'
              } else {
                texteCorr += texteEnCouleurEtGras(nb3 + ' km, ') + texteEnCouleurEtGras(nb4)
                texteCorr += ' et ' + texteEnCouleurEtGras(nb5 + ' km') + ' ne sont pas utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteGras(nb1 + ' colis') + `$${sp()}-${sp()}$` + texteGras(nb2 + ' colis') + '.'
              }

              this.autoCorrection[i].enonce = `${texte}\n`
              this.autoCorrection[i].propositions = [
                {
                  texte: `${nb1} colis`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb2} colis`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb3} km`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb4}`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb5} km`,
                  statut: this.sup !== 1
                }
              ]
              break
            default:
              texte += 'À quelle heure ce livreur est-il rentré à l\'entrepôt ?'
              if (this.sup === 1) {
                texteCorr += 'Aucune donnée n\'est utile pour la résolution du problème.<br>'
              } else {
                texteCorr += texteEnCouleurEtGras(nb1 + ' colis') + ', ' + texteEnCouleurEtGras(nb4) + ', '
                texteCorr += texteEnCouleurEtGras(nb2 + ' colis') + ', ' + texteEnCouleurEtGras(nb3 + ' km')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb5 + ' km') + ' ne sont pas utiles pour la résolution du problème.<br>'
              }
              texteCorr += 'On ne peut pas répondre à ce problème. Il manque des informations.'
              this.autoCorrection[i].enonce = `${texte}\n`
              this.autoCorrection[i].propositions = [
                {
                  texte: `${nb1} colis`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb2} colis`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb3} km`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb4}`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb5} km`,
                  statut: this.sup !== 1
                }
              ]
              break
          }
          break
        case 10:
          quidam = choice(['du Havre', 'de Rotterdam', 'de Hambourg', 'de Marseille', 'de Lisbonne'])
          quidam2 = choice(['Hong-Kong', 'Rio de Janeiro', 'Auckland', 'Sidney', 'Kuala Lumpur'])
          nb1 = randint(85, 153)
          nb2 = randint(67, 86)
          nb3 = randint(7, 15)
          nb4 = randint(21, 35)
          nb5 = randint(21, 35)
          texte += `Un cargo mesurant ${nb1} m transporte ${nb2} gros conteneurs de ${nb3} tonnes chacun ${quidam} à ${quidam2}. `
          texte += `Ce bateau transporte aussi ${nb4} petits conteneurs pour une masse totale de ${nb5} tonnes.<br>`

          switch (choixVersion) {
            case 1:
              texte += 'Quelle est la masse de chacun des petits conteneurs, sachant qu\'ils ont tous la même masse ?'
              if (this.sup === 1) {
                texteCorr += texteEnCouleurEtGras(nb4 + ' conteneurs')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb5 + ' tonnes') + ' sont utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteEnCouleurEtGras(nb5 + ' tonnes') + `$${sp()}\\div${sp()}$` + texteEnCouleurEtGras(nb4) + '.'
              } else {
                texteCorr += texteEnCouleurEtGras(nb1 + ' m') + ', ' + texteEnCouleurEtGras(nb2 + ' conteneurs')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb3 + ' tonnes') + ' ne sont pas utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteGras(nb5 + ' tonnes') + `$${sp()}\\div${sp()}$` + texteGras(nb4) + '.'
              }

              this.autoCorrection[i].enonce = `${texte}\n`
              this.autoCorrection[i].propositions = [
                {
                  texte: `${nb1} m`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb2} conteneurs`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb3} tonnes`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb4} conteneurs`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb5} tonnes`,
                  statut: this.sup === 1
                }
              ]
              break
            case 2:
              texte += 'Quelle est la masse totale des gros conteneurs ?'
              if (this.sup === 1) {
                texteCorr += texteEnCouleurEtGras(nb2 + ' conteneurs')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb3 + ' tonnes') + ' sont utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteEnCouleurEtGras(nb2) + `$${sp()}\\times${sp()}$` + texteEnCouleurEtGras(nb3 + ' tonnes') + '.'
              } else {
                texteCorr += texteEnCouleurEtGras(nb1 + ' m, ') + texteEnCouleurEtGras(nb4 + ' conteneurs')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb5 + ' tonnes') + ' ne sont pas utiles pour la résolution du problème.<br>'
                texteCorr += 'La solution du problème est donnée par : '
                texteCorr += texteGras(nb2) + `$${sp()}\\times${sp()}$` + texteGras(nb3 + ' tonnes') + '.'
              }

              this.autoCorrection[i].enonce = `${texte}\n`
              this.autoCorrection[i].propositions = [
                {
                  texte: `${nb1} m`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb2} conteneurs`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb3} tonnes`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb4} conteneurs`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb5} tonnes`,
                  statut: this.sup !== 1
                }
              ]
              break
            default:
              texte += 'Quelle est la longueur d\'un gros conteneur ?'
              if (this.sup === 1) {
                texteCorr += 'Aucune donnée n\'est utile pour la résolution du problème.<br>'
              } else {
                texteCorr += texteEnCouleurEtGras(nb1 + ' m') + ', ' + texteEnCouleurEtGras(nb4 + ' conteneurs') + ', '
                texteCorr += texteEnCouleurEtGras(nb2 + ' conteneurs') + ', ' + texteEnCouleurEtGras(nb3 + ' tonnes')
                texteCorr += ' et ' + texteEnCouleurEtGras(nb5 + ' tonnes') + ' ne sont pas utiles pour la résolution du problème.<br>'
              }
              texteCorr += 'On ne peut pas répondre à ce problème. Il manque des informations.'
              this.autoCorrection[i].enonce = `${texte}\n`
              this.autoCorrection[i].propositions = [
                {
                  texte: `${nb1} m`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb2} conteneurs`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb3} tonnes`,
                  statut: this.sup === 1
                },
                {
                  texte: `${nb4} conteneurs`,
                  statut: this.sup !== 1
                },
                {
                  texte: `${nb5} tonnes`,
                  statut: this.sup === 1
                }
              ]
              break
          }
          break
      }
      this.autoCorrection[i].options = {
        ordered: false,
        lastChoice: 5 // A creuser pour supprimer ou mettre nbquestions
      }
      if (!context.isAmc) {
        texte += propositionsQcm(this, i).texte
      }
      this.listeQuestions.push(texte)
      this.listeCorrections.push(texteCorr)
    }
    listeQuestionsToContenu(this)
  }
  this.besoinFormulaireNumerique = ['Choix de la formulation', 2, '1 : Coche les informations qui servent à sa résolution.\n2 : Coche les informations qui NE servent PAS à sa résolution.']
  this.besoinFormulaire2Texte = ['Choix des problèmes', 'Nombres séparés par des tirets\n1 : Livres\n2 : Haricots\n3 : Villages de montagne\n4 : Manga\n5 : Film\n6 : Vélo\n7 : Taille\n8 : Gare\n9 : Livreur\n10 : Cargo\n11 : Tous les problèmes\n']
  this.besoinFormulaire3CaseACocher = ['Certains problèmes peuvent être insolubles']
}