summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/profcollege/latex/PfCMotsCroises.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/profcollege/latex/PfCMotsCroises.tex')
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCMotsCroises.tex56
1 files changed, 56 insertions, 0 deletions
diff --git a/macros/latex/contrib/profcollege/latex/PfCMotsCroises.tex b/macros/latex/contrib/profcollege/latex/PfCMotsCroises.tex
new file mode 100644
index 0000000000..4e6734dd7b
--- /dev/null
+++ b/macros/latex/contrib/profcollege/latex/PfCMotsCroises.tex
@@ -0,0 +1,56 @@
+%%%
+% Mots croisés
+%%%
+\setKVdefault[ClesCroises]{Lignes=6,Colonnes=8,Solution=false,Croises=false,Couleur=gray,Largeur=1em}
+
+\newcounter{PfCLettreHorizontal}
+
+\newcommand\MotsCroises[2][]{%
+ \useKVdefault[ClesCroises]%
+ \setKV[ClesCroises]{#1}%
+ \setcounter{PfCLettreHorizontal}{0}%
+ \setsepchar[*]{§*,*/}%
+ \readlist*\ListeCasesCroises{#2}%
+ \begin{NiceTabular}{*{\fpeval{\useKV[ClesCroises]{Colonnes}}}{p{\useKV[ClesCroises]{Largeur}}}}[first-row,first-col]%
+ \xintFor* ##1 in {\xintSeq{1}{\fpeval{\useKV[ClesCroises]{Colonnes}}}}\do{%
+ &\ifboolKV[ClesCroises]{Croises}{\stepcounter{PfCLettreHorizontal}\footnotesize\Alph{PfCLettreHorizontal}}{}
+ }\\
+ \xintFor* ##1 in {\xintSeq{1}{\fpeval{\useKV[ClesCroises]{Lignes}}}}\do{%
+ \ifboolKV[ClesCroises]{Croises}{\footnotesize##1}{}\xintFor* ##2 in {\xintSeq{1}{\fpeval{\useKV[ClesCroises]{Colonnes}}}}\do{%
+ &\IfStrEq{\ListeCasesCroises[##1,##2,1]}{!}{%
+ }{%
+ \IfStrEq{\ListeCasesCroises[##1,##2,1]}{*}{%
+ \Block[draw,fill=black]{}{\PfCTBstrut}}{%
+ \IfStrEq{\ListeCasesCroises[##1,##2,1]}{+}{%
+ \Block[draw,fill=\useKV[ClesCroises]{Couleur}]{}{%
+ \PfCTBstrut\ifboolKV[ClesCroises]{Solution}{%
+ \ListeCasesCroises[##1,##2,2]%
+ }{}%
+ }
+ }{%
+ \Block[draw]{}{\PfCTBstrut\ifboolKV[ClesCroises]{Solution}{%
+ \ListeCasesCroises[##1,##2,2]}{}%
+ }%
+ }%
+ }%
+ }%
+ }\\
+ }%
+ \CodeAfter
+ \xintFor* ##1 in {\xintSeq{1}{\fpeval{\useKV[ClesCroises]{Lignes}}}}\do{%
+ \xintFor* ##2 in {\xintSeq{1}{\fpeval{\useKV[ClesCroises]{Colonnes}}}}\do{%
+ \IfStrEq{\ListeCasesCroises[##1,##2,1]}{!}{%
+ }{%
+ \IfStrEq{\ListeCasesCroises[##1,##2,1]}{*}{%
+ }{%
+ \IfStrEq{\ListeCasesCroises[##1,##2,1]}{+}{%
+ }{%
+ \xintifboolexpr{\fpeval{\ListeCasesCroises[##1,##2,1]}>0}{\tikz\node[transform canvas={xshift=1mm,yshift=-1mm}] at (\fpeval{##1}-|\fpeval{##2}){\tiny\ListeCasesCroises[##1,##2,1]};}{}%
+ }%
+ }%
+ }%
+ }%
+ }%
+ \end{NiceTabular}%
+ \setsepchar{,}%
+}% \ No newline at end of file