\clearpage
\section{Trio}\index[cle]{Trio@\lstinline+\Trio+}\label{DocTrio}
Le Trio est un jeu où les joueurs doivent obtenir un nombre cible à partir d'un trio (horizontal, vertical, en diagonale) de nombres et des opérations \og multiplication-addition\fg{} ou \og multiplication-soustraction\fg{} dans cet ordre. Quant aux nombres, ils peuvent être utilisés dans n'importe quel ordre.
\begin{center}
  \Trio[Graine=100]
\begin{multicols}{3}
  \begin{center}
    \TrioCourt[Colonne=3,Cible=25]

    $8\times3+1=25$
  \end{center}
  \begin{center}
    \TrioCourt[Colonne=5,Cible=25]

    $6\times5-5=25$
  \end{center}
  \begin{center}
    \TrioCourt[Ligne=2,Colonne=5,Cible=25]

    $3\times8-1=25$
    \end{center}
\end{multicols}
\end{center}
La commande\footnote{Sur une idée de Sébastien {\sc Lozano}.} \lstinline!\Trio!$^{\text{\faIcon{sync-alt}}}$ permet de {\em créer aléatoirement} un plateau de jeu et de l'afficher. Sa forme est la suivante :

\begin{lstlisting}[escapechar=!,aboveskip=1em,belowskip=0.5em]
  \Trio[!\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{Codes}[listing side text]{0.5}{}
\Trio
\end{Codes}
\clearpage
\begin{tcolorbox}[tikzcle]
  \index[cle]{Trio@\lstinline+\Trio+!Largeur|mygobble}
  \index[cle]{Trio@\lstinline+\Trio+!Repere|mygobble}
  \index[cle]{Trio@\lstinline+\Trio+!Relatifs|mygobble}
  \index[cle]{Trio@\lstinline+\Trio+!Ecole|mygobble}
  \index[cle]{Trio@\lstinline+\Trio+!Cible|mygobble}
  \index[cle]{Trio@\lstinline+\Trio+!Graine|mygobble}
\begin{Key}{Largeur}{15pt}
  modifie la largeur {\em et} la hauteur des cases du plateau de jeu.
\end{Key}
\begin{Key}{Repere}{false}
  affiche, lorsqu'elle est positionnée à \lstinline!true!, un repère des cases style \og tableur\fg.
\end{Key}
\begin{Key}{Relatifs}{false}\PfCMAJ{0.99-A-a}
  modifie la répartition des nombres du jeu allant alors de $-4$ à 4.
\end{Key}
\begin{Key}{Ecole}{false}\PfCMAJ{0.99-A-a}
  modifie la répartition des nombres du jeu allant alors de 1 à 5.
\end{Key}
\begin{Key}{Cible}{--}
  affiche, lorsqu'elle est positionnée à une valeur numérique, une solution pour chacune des directions de calculs (horizontale, verticale et diagonales) {\em si elles existent}.
\end{Key}
\begin{SousDescription}
\item[La clé \Cle{Horizontal}]\DefautR{false}\PfCMAJ{0.99-A-a}
  affiche {\em uniquement} le premier trio horizontal.\\\vspace{0.1em}
\item[La clé \Cle{Vertical}]\DefautR{false}\PfCMAJ{0.99-A-a}
  affiche {\em uniquement} le premier trio vertical.\\\vspace{0.1em}
\item[La clé \Cle{DiagonaleM}]\DefautR{false}\PfCMAJ{0.99-A-a}
  affiche {\em uniquement} le premier trio situé sur une diagonale montante.
\item[La clé \Cle{DiagonaleD}]\DefautR{false}\PfCMAJ{0.99-A-a}
  affiche {\em uniquement} le premier trio situé sur une diagonale descendante.
\end{SousDescription}
\begin{Key}{Graine}{--}
  fixe le nombre choisi comme base pour générer l'aléatoire.
\end{Key}
\begin{Key}{Liste}{--}\PfCMAJ{0.99-A-a}
  permet d'afficher une grille précise, donnée par l'utilisateur.
\end{Key}
\begin{Key}{NbSolution}{--}\PfCMAJ{0.99-A-a}
  permet de définir un nombre dont on cherche {\em toutes} les solutions.\\
  Les commandes \lstinline!\\PfCNbSolutionH!, \lstinline!\\PfCNbSolutionV!, \lstinline!\\PfCNbSolutionDD! et \lstinline!\\PfCNbSolutionDM! permettent de récupérer respectivement le nombre de solutions horizontales, verticales, en diagonales descendantes et en diagonales montantes.
\end{Key}
\end{tcolorbox}
\begin{Codes}[listing side text]{0.5}{}
\Trio[Repere]
\end{Codes}
\clearpage
\begin{multicols}{2}
\begin{Codes}[]{0.5}{\small}
\Trio[Repere,Graine=45,Cible=25,Largeur=10pt]
\end{Codes}
\begin{Codes}[]{0.5}{\small}
% Avec Graine=45, le plateau est identique. 
\Trio[Graine=45,Cible=13,Largeur=10pt]
\end{Codes}
\end{multicols}
\begin{Codes}[listing side text]{0.5}{}
\begin{center}
  \Trio[NbSolution=10,Liste={4,6,3,9,6,4,6,8,2,7,2,8,1,2,1,3,5,8,6,4,5,8,5,6,3,9,1,5,2,2,3,7,9,5,7,4,7,4,2,1,6,5,7,9,3,3,8,4,1}]
\end{center}
Pour cette grille, il y a \num{\fpeval{\PfCNbSolutionH+\PfCNbSolutionV+\PfCNbSolutionDD+\PfCNbSolutionDM}} trios pour le nombre 10.
\end{Codes}
\clearpage
Pour aider les élèves (à la compréhension du jeu; à écrire les trios trouvés; à se repérer\dots), on peut proposer un tableau \og raccourci\fg{} avec la commande \lstinline!\TrioCourt! qui est {\em obligatoirement liée} à une commande \lstinline!\Trio!\footnote{La création des composants du plateau de jeu n'est pas faite deux fois.}.
\\Associées à cette commande, on utilisera les clés suivantes.
\begin{tcolorbox}[tikzcle]
  \index[cle]{TrioCourt@\lstinline+\TrioCourt+!Ligne|mygobble}
  \index[cle]{TrioCourt@\lstinline+\TrioCourt+!Colonne|mygobble}
  \index[cle]{TrioCourt@\lstinline+\TrioCourt+!Vide|mygobble}
  \index[cle]{TrioCourt@\lstinline+\TrioCourt+!VideRepere|mygobble}
  \begin{KEYS}{Ligne/Colonne}{1/1}
    fixe la ligne/la colonne de départ du tableau \og raccourci\fg.
  \end{KEYS}
  \begin{Key}{Vide}{false}
    vide le tableau \og raccourci\fg{} choisi.
  \end{Key}
  \begin{Key}{VideRepere}{false}
    vide les repères du tableau \og raccourci\fg{} choisi.
  \end{Key}
\end{tcolorbox}
\begin{Codes}[]{0.45}{}
\Trio[Graine=50]
  
\TrioCourt \hfill \TrioCourt[Ligne=2,Colonne=3] \hfill \TrioCourt[Repere,Vide]\hfill \TrioCourt[Repere,VideRepere]
\end{Codes}