\clearpage
\section{Labyrinthe de nombres}\label{DocLabyNombre}
\index{Jeux}\index[cle]{LabyNombre@\lstinline+\LabyNombre+}
\begin{tcolorbox}[tikzRemarque]
  Cette commande est uniquement disponible en compilant avec \hologo{LuaLaTeX}.
\end{tcolorbox}
La commande \lstinline!\LabyNombre! permet de construire un \og labyrinthe\fg{} tel que celui-ci :
\begin{center}
  \LabyNombre[Longueur=9,Largeur=6]
\end{center}
Elle permet à l'élève de relier les deux cases colorées en suivant un
chemin constitué de multiples d'un même nombre entier (ici, 5).

Elle a la forme suivante :

\begin{lstlisting}[escapechar=!,aboveskip=1em,belowskip=0.5em]
  \LabyNombre[!\sffamily\textlangle clés\textrangle!]
\end{lstlisting}
où \textlangle\lstinline!clés!\textrangle{} constituent un ensemble
  d'options pour paramétrer la commande (paramètres optionnels).
\begin{tcolorbox}[tikzcle]
  \index[cle]{LabyNombre@\lstinline+\LabyNombre+!Multiple|mygobble}
  \index[cle]{LabyNombre@\lstinline+\LabyNombre+!Angle|mygobble}
  \index[cle]{LabyNombre@\lstinline+\LabyNombre+!Echelle|mygobble}
  \index[cle]{LabyNombre@\lstinline+\LabyNombre+!Couleur|mygobble}
  \index[cle]{LabyNombre@\lstinline+\LabyNombre+!Longueur|mygobble}
  \index[cle]{LabyNombre@\lstinline+\LabyNombre+!Largeur|mygobble}
  \index[cle]{LabyNombre@\lstinline+\LabyNombre+!Nom|mygobble}
  \begin{Key}{Nom}{Ex1}
  attribue un nom au labyrinthe créé.
\end{Key}
\begin{Key}{Multiple}{5}
  modifie la valeur du nombre entier choisi comme multiple.
  \begin{tcolorbox}[tikzRemarque]\PfCMAJ{0.99-z-b}%
    Lorsqu'on positionne la clé \Cle{Multiple} à 1, le chemin sera constitué de nombres premiers.
  \end{tcolorbox}
\end{Key}
\begin{Key}{Angle}{0}
  modifie l'orientation de l'intégralité du labyrinthe.
\end{Key}
\begin{Key}{Echelle}{1}
  modifie l'échelle de l'intégralité du labyrinthe.
\end{Key}
\begin{Key}{Couleur}{red}
  modifie la couleur des cases à relier.
\end{Key}
\begin{Key}{Longueur}{7}
  modifie le nombre de cases sur la longueur.
\end{Key}
\begin{Key}{Largeur}{4}
  modifie le nombre de cases sur la largeur.
\end{Key}
\end{tcolorbox}
\clearpage
Ainsi, les cases sont numérotées de (0,0) à ({\ttfamily Longueur}$-1$,{\ttfamily Largeur}$-1$).
\begin{center}
    \mplibforcehmode
\begin{mplibcode}
  pair A,B,C,D;
  A=(0,0);
  B-A=u*(7,0);
  C-B=u*(0,-5);
  D-C=A-B;
  trace polygone(A,B,C,D);
  for k=1 upto 6:
  trace (k/7)[A,B]--(k/7)[D,C];
  endfor;
  for k=1 upto 4:
  trace (k/5)[A,D]--(k/5)[B,C];
  endfor;
  trace cotation(A,B,3mm,3mm,btex \ttfamily Longueur etex);
  trace cotation(B,C,3mm,3mm,btex \ttfamily Largeur etex);
  pair M[];
  M1=iso(A,A+u*(1,-1));
  M2=iso(B,B+u*(-1,-1));
  M3=iso(C,C+u*(-1,1));
  M4=iso(D,D+u*(1,1));
  drawarrow (M1+u*(-1,0))--M1;
  drawarrow (M2+u*(1,1))--M2;
  drawarrow (M3+u*(1,-1))--M3;
  drawarrow (M4+u*(-1,0))--M4;
  label.lft(btex Case (0,0) etex,M1+u*(-1,0));
  label.lft(btex Case (0,{\ttfamily Largeur}$-1$) etex,M4+u*(-1,0));
  label.urt(btex Case ({\ttfamily Longueur}$-1$,0) etex,M2+u*(1,1));
  label.urt(btex Case ({\ttfamily Longueur}$-1$,{\ttfamily Largeur}$-1$) etex,M3+u*(1,-1));
\end{mplibcode}
\end{center}
Ce repérage permet d'utiliser correctement les clés ci-dessous.
\begin{tcolorbox}[tikzcle]
  \index[cle]{LabyNombre@\lstinline+\LabyNombre+!XDepart|mygobble}
  \index[cle]{LabyNombre@\lstinline+\LabyNombre+!YDepart|mygobble}
  \index[cle]{LabyNombre@\lstinline+\LabyNombre+!XArrivee|mygobble}
  \index[cle]{LabyNombre@\lstinline+\LabyNombre+!YArrivee|mygobble}
  \index[cle]{LabyNombre@\lstinline+\LabyNombre+!Solution|mygobble}
  \index[cle]{LabyNombre@\lstinline+\LabyNombre+!Solution!CouleurChemin|mygobble}
  \index[cle]{LabyNombre@\lstinline+\LabyNombre+!Murs|mygobble}
\begin{KEYSl}{\Cle{XDepart} / \Cle{YDepart}}{0/0}
  modifie le positionnement de la case colorée située en haut à gauche.
\end{KEYSl}
\begin{KEYSl}{\Cle{XArrivee} / \Cle{YArrivee}}{{\ttfamily Longueur}$-1$/{\ttfamily Largeur}$-1$}
  modifie le positionnement de la case colorée située en bas à droite.
\end{KEYSl}
\begin{Key}{Solution}{false}
  affiche la solution du labyrinthe. Le nom du labyrinthe doit être
  impérativement déclaré.
  \begin{SousDescription}
  \item[La clé \Cle{CouleurChemin}]\DefautR{LightSteelBlue}
    colorie le chemin constituant la solution du labyrinthe.
  \end{SousDescription}
\end{Key}
\begin{Key}{Murs}{false}
  modifie l'apparence du labyrinthe.
\end{Key}
\end{tcolorbox}
\begin{Codes}[listing side text]{0.5}{}
\LabyNombre[Nom=Ex2]  
\end{Codes}
\begin{Codes}[listing side text]{0.6}{}
\LabyNombre[%
  Nom=Ex3,%
  Multiple=7,%
  Couleur=Yellow,%
  Echelle=1.15%
  ]
\end{Codes}
\begin{Codes}[listing side text]{0.6}{}
\LabyNombre[%
  Nom=Exa,%
  Multiple=1,%
  Couleur=LightGreen,%
  Echelle=1.15%
  ]
\end{Codes}
\begin{Exemple}[]{}
\LabyNombre[Nom=Ex4,Multiple=10,Longueur=12,Largeur=8,XDepart=2,YDepart=2,XArrivee=10,YArrivee=6]

\LabyNombre[Nom=Ex1,Solution,Longueur=9,Largeur=6]

\LabyNombre[Nom=Ex4,Solution,Multiple=10,Longueur=12,Largeur=8,XDepart=2,YDepart=2,XArrivee=10,YArrivee=6]

\LabyNombre[Nom=Ex2,Solution,Multiple=7,Couleur=Yellow,Echelle=1.15]
\end{Exemple}
\begin{Codes}[]{0.5}{\small}
\LabyNombre[Nom=Ex3,Solution]
\end{Codes}
\begin{Exemple}[]{}
\LabyNombre[Nom=Ex5,Multiple=7,Longueur=12,Largeur=8,XDepart=2,YDepart=2,XArrivee=11,YArrivee=6,Murs]

\LabyNombre[Nom=Ex5,Solution,Multiple=7,Longueur=12,Largeur=8,XDepart=2,YDepart=2,XArrivee=11,YArrivee=6,Murs]
\end{Exemple}
\begin{Codes}[listing side text]{0.6}{}
\LabyNombre[%
  Nom=Exa,%
  Multiple=1,%
  Couleur=LightGreen,%
  CouleurChemin=Green,%
  Echelle=1.15,%
  Solution%
  ]
\end{Codes}
\clearpage
On peut également donner une autre apparence\footnote{Apparence ressemblant aux labyrinthes disponibles à l'adresse \url{https://coopmaths.fr/mathalea.html}.} au labyrinthe.
\begin{tcolorbox}[tikzcle]
  \index[cle]{LabyNombre@\lstinline+\LabyNombre+!EntreeSortie|mygobble}
  \index[cle]{LabyNombre@\lstinline+\LabyNombre+!EntreeSortie!Entree|mygobble}
  \index[cle]{LabyNombre@\lstinline+\LabyNombre+!EntreeSortie!Sortie|mygobble}
    \index[cle]{LabyNombre@\lstinline+\LabyNombre+!EntreeSortie!CouleurChemin|mygobble}  
\begin{Key}{EntreeSortie}{false}
  positionne une case \og départ\fg{} et plusieurs sorties.
  \begin{SousDescription}
  \item[La clé \Cle{Entree}]\Defaut{"Nord"} indique où se trouve la case \og départ\fg{} par rapport au début du chemin vers la sortie.
  \item[La clé \Cle{Sortie}]\Defaut{"Sud"} indique où se trouve {\em les cases \og Sortie\fg} par rapport au labyrinthe lui-même.
  \item[La clé \Cle{CouleurChemin}]\Defaut{Brown}
    modifie la couleur du chemin indiquant la solution.
  \end{SousDescription}
  La clé \Cle{Murs} est incompatible avec la clé \Cle{EntreeSortie}.
\end{Key}
\end{tcolorbox}
\begin{Codes}[]{0.4}{}
\LabyNombre[Nom=Ex6,EntreeSortie]
\end{Codes}
\begin{Codes}[]{0.4}{}
\LabyNombre[Nom=Ex7,EntreeSortie,Entree="Nord",Sortie="Est",XDepart=2,YDepart=2,Longueur=7,Largeur=7,YArrivee=6]
\end{Codes}
\clearpage
\begin{Exemple}[]{}
\LabyNombre[Nom=Ex6,EntreeSortie,CouleurChemin=Brown,Solution]

\LabyNombre[Nom=Ex7,EntreeSortie,Entree="Nord",Sortie="Est",XDepart=2,YDepart=2,Longueur=7,Largeur=7,YArrivee=6,CouleurChemin=Brown,Solution]
\end{Exemple}
Basée sur le document \url{https://publimath.univ-irem.fr/numerisation/LY/ILY13004/ILY13004.pdf}, la clé suivante permet de travailler sur les tables de multiplication.
\begin{tcolorbox}[tikzcle]\PfCMAJ{0.99-z-p}
  \begin{Key}{Multiplication}{false}
    modifie la présentation, la règle du jeu et la construction du labyrinthe.
    \begin{SousDescription}
      \item[La clé \Cle{Graine}]\DefautR{-} fixe la graine de l'aléatoire permettant ainsi d'associer un jeu et sa solution.
      \item[Les clés \Cle{Multiple}, \Cle{Longueur}, \Cle{Largeur} et \Cle{Solution}] sont disponibles.
    \end{SousDescription}
  \end{Key}
  \begin{tcolorbox}[tikzRemarque]
    La solution n'est pas forcément unique.
  \end{tcolorbox}
\end{tcolorbox}
La règle du jeu est ainsi modifiée : pour se déplacer on doit respecter les condition suivantes :
\begin{itemize}
\item le nombre inscrit dans un rectangle vers lequel on se déplace doit être multiple du nombre inscrit dans le cercle d’où l’on vient ;
\item le nombre inscrit dans un cercle vers lequel on se déplace doit être diviseur du nombre inscrit dans le rectangle d’où l’on vient.
\end{itemize}
\begin{Exemple}[]{}
\LabyNombre[Multiplication,Longueur=11,Largeur=8,Solution,Echelle=0.7,XArrivee=10,YArrivee=7]
\end{Exemple}
\begin{Codes}[]{0.7}{}
\LabyNombre[Multiplication,Multiple=7,Graine=18]
\end{Codes}
\begin{Codes}[]{0.7}{}
\LabyNombre[Multiplication,Multiple=7,Graine=18,Solution]
\end{Codes}
\begin{tcolorbox}[tikzRemarque]
  La clé \Cle{Longueur} doit être un nombre impair.
\end{tcolorbox}