\clearpage
\section{Billards}\label{DocBillard}
\index{Symetrie axiale@Symétrie axiale}
\begin{tcolorbox}[tikzRemarque]
  Cette commande est uniquement disponible en compilant avec \hologo{LuaLaTeX}.
\end{tcolorbox}
La commande \lstinline!\Billard! permet de construire un \og billard\fg{} tel que celui ci-dessous. L'élève doit alors tracer la trajectoire d'une boule passant par des lettres afin d'obtenir un mot caché.
\begin{center}
  \Billard[Longueur=7cm,Largeur=4cm]{"LATEX"}
\end{center}
Elle a la forme suivante :
\begin{lstlisting}[escapechar=!,aboveskip=1em,belowskip=0.5em]
  \Billard[!\sffamily\textlangle clés\textrangle!]{"mot"}
\end{lstlisting}
où
\begin{itemize}
\item\textlangle\lstinline!clés!\textrangle{} constituent un ensemble
  d'options pour paramétrer la commande (paramètres optionnels);
\item\lstinline!"mot"! constitue le mot caché.%;
%\item\lstinline!position départ! indique la position du point de départ sur les côtés du rectangle;
%\item\lstinline!angle de tir! indique l'angle de tir {\em par rapport à l'horizontal}.
\end{itemize}
\begin{tcolorbox}[tikzRemarque]
  Par défaut, les rebonds sont à angle droit\footnotemark. La clé \Cle{Vrai} permet de retrouver des rebonds \og classiques\fg.
\end{tcolorbox}
\footnotetext{Le développement de cette commande fait suite à une publication de Roxana {\sc Fournel} sur le groupe \url{https://www.facebook.com/groups/lecoinboulotdesprofsdemathematiques}.}
\begin{tcolorbox}[tikzcle]
  \index[cle]{Billard@\lstinline+\Billard+|mygobble}
  \index[cle]{Billard@\lstinline+\Billard+!Longueur|mygobble}
  \index[cle]{Billard@\lstinline+\Billard+!Largeur|mygobble}
  \index[cle]{Billard@\lstinline+\Billard+!Nom|mygobble}
  \index[cle]{Billard@\lstinline+\Billard+!Solution|mygobble}
  \index[cle]{Billard@\lstinline+\Billard+!Vrai|mygobble}
  \index[cle]{Billard@\lstinline+\Billard+!Angle|mygobble}
  \index[cle]{Billard@\lstinline+\Billard+!Depart|mygobble}
\begin{KEYSl}{\Cle{Longueur}/\Cle{Largeur}}{8cm/5cm}
  modifie la longueur (horizontale) / largeur du billard.
\end{KEYSl}
\begin{Key}{Nom}{JeuA}\PfCMAJ{0.99-z-t}
  nomme le jeu construit.
\end{Key}
\begin{Key}{Solution}{false}
  affiche la trajectoire complète d'un jeu {\em nommé}.
\end{Key}
\begin{Key}{Vrai}{false}
  rend réaliste les rebonds lorsqu'elle est activée.
\end{Key}
\begin{Key}{Angle}{70}
  modifie l'angle de tir. Il est {\em toujours} défini par rapport à l'horizontale mais il est \og ramené à l'intérieur du billard\fg.
\end{Key}
\begin{Key}{Depart}{0.5}
  modifie la position du point de départ. Sa valeur est comprise entre 0 et 4, la figure suivante indiquant les valeurs 0; 1; 2 ; 3 et 4.
  \begin{center}
    \begin{Geometrie}
      pair A,B,C,D;
      A=u*(1,1);
      B-A=u*(3,0);
      C=2.75/5[B,rotation(A,B,-90)];
      D-C=A-B;
      trace polygone(A,B,C,D);
      dotlabel.lrt(btex 0 etex,A);
      dotlabel.lrt(btex 1 etex,B);
      dotlabel.urt(btex 2 etex,C);
      dotlabel.ulft(btex 3 etex,D);
      dotlabel.ulft(btex 4 etex,A);
    \end{Geometrie}
  \end{center}
\end{Key}
\end{tcolorbox}
\begin{Codes}[listing side text]{0.45}{\small}
\begin{center}
  \Billard[Longueur=6cm,Largeur=4cm]{"LATEX"}
\end{center}
\end{Codes}
\begin{multicols}{2}
\begin{Codes}[]{0.4}{}
\Billard[Longueur=7cm,Largeur=4cm]{"UTOPIE"}
\end{Codes}
\begin{Codes}[]{0.4}{}
\Billard[Solution,Longueur=7cm,Largeur=4cm]{"UTOPIE"}
\end{Codes}
\end{multicols}
\begin{multicols}{2}
\begin{Codes}[]{0.4}{}
\Billard[Vrai,Longueur=7cm,Largeur=4cm]{"METAPOST"}
\end{Codes}
\begin{Codes}[]{0.4}{}
\Billard[Vrai,Solution,Longueur=7cm,Largeur=4cm]{"METAPOST"}
\end{Codes}
\end{multicols}
\begin{Codes}[]{0.5}{\footnotesize}
\begin{multicols}{2}
  \Billard[Vrai,Depart=3.75,Angle=60,Longueur=7cm,Largeur=4cm]{"ABORIGENE"}
  \Billard[Solution,Vrai,Depart=3.75,Angle=60,Longueur=7cm,Largeur=4cm]{"ABORIGENE"}
\end{multicols}
\end{Codes}
\begin{Codes}[]{0.5}{\footnotesize}
\begin{multicols}{2}
  \Billard[Depart=1.25,Angle=30,Longueur=7cm,Largeur=4cm]{"LUDIQUE"}
  \Billard[Solution,Depart=1.25,Angle=30,Longueur=7cm,Largeur=4cm]{"LUDIQUE"}
\end{multicols}
\end{Codes}
\subsection*{Création}
\begin{tcolorbox}[tikzcle]
  \index[cle]{Billard@\lstinline+\Billard+!Creation|mygobble}
  \begin{Key}{Creation}{false}
    permet une création \og automatisée\fg{} d'un billard.
  \end{Key}
\end{tcolorbox}
Avec cette clé, le mot est attendu sous la forme d'une commande. On peut alors écrire un code tel que celui ci-dessous ou couplé avec la commande \lstinline!\MelangeLettres! (page \pageref{Sucres}).
\begin{Exemple}[]{}
\setsepchar{,}
\readlist*\PfCListeMots{ARBORIGENE,VALKYRIE,UTOPIE}
\itemtomacro\PfCListeMots[1]\UnMotA
\Billard[Vrai,Depart=0.5,Longueur=10cm,Largeur=6cm,Creation,Nom=JeuA]{\UnMotA}
\itemtomacro\PfCListeMots[2]\UnMotB
\Billard[Vrai,Depart=1.5,Longueur=10cm,Largeur=6cm,Creation,Nom=JeuB]{\UnMotB}
\end{Exemple}
%\itemtomacro\PfCListeMots[3]\UnMotC
%\Billard[Vrai,Depart=2.5,Longueur=10cm,Largeur=6cm,Creation,Nom=JeuC]{\UnMotC}