summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/profcollege/latex/PfCFubuki.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/profcollege/latex/PfCFubuki.tex')
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCFubuki.tex70
1 files changed, 70 insertions, 0 deletions
diff --git a/macros/latex/contrib/profcollege/latex/PfCFubuki.tex b/macros/latex/contrib/profcollege/latex/PfCFubuki.tex
new file mode 100644
index 0000000000..0ce7af2ffa
--- /dev/null
+++ b/macros/latex/contrib/profcollege/latex/PfCFubuki.tex
@@ -0,0 +1,70 @@
+\setKVdefault[Fubuki]{Largeur=20pt,Solution=false,Indice=false,Sommes=false,Couleur=LightSteelBlue,Perso=false,Vierge=false}%
+\defKV[Fubuki]{Graine=\PfCGraineAlea{#1}}%
+\defKV[Fubuki]{Indices=\setKV[Fubuki]{Indice}\xdef\PfCFooListeIndices{#1}}%
+\defKV[Fubuki]{CouleurSolution=\setKV[Fubuki]{Solution}\colorlet{PfCFubukiCouleurSolution}{#1}}%
+\newlength\PfCFubuki%
+
+\NewDocumentCommand\PfCFubukiTestIndice{m}{%
+ \ifboolKV[Fubuki]{Indice}{%
+ \xdef\PfCRetiensIndice{0}%
+ \xintFor* ##1 in {\xintSeq{1}{\PfCFubukiListeIndiceslen}}\do{%
+ \xintifboolexpr{#1==\PfCFubukiListeIndices[##1]}{\xdef\PfCRetiensIndice{\fpeval{\PfCRetiensIndice+1}}}{}%
+ }%
+ \xintifboolexpr{\PfCRetiensIndice>0}{#1}{\ifboolKV[Fubuki]{Solution}{\color{PfCFubukiCouleurSolution}#1}{}}%
+ }{%
+ \ifboolKV[Fubuki]{Solution}{\color{PfCFubukiCouleurSolution}#1}{}%
+ }%
+}%
+
+\NewDocumentCommand\PfCFubukiAffichageNombre{m}{%
+ \ifboolKV[Fubuki]{Vierge}{}{\ifboolKV[Fubuki]{Sommes}{\PfCFubukiNombre[#1]}{\PfCFubukiTestIndice{\PfCFubukiNombre[#1]}}}%
+}%
+
+\NewDocumentCommand\PfCFubukiAffichageSommeH{m}{%
+ \ifboolKV[Fubuki]{Vierge}{}{%
+ \ifboolKV[Fubuki]{Sommes}{%
+ \ifboolKV[Fubuki]{Solution}{%
+ \color{PfCFubukiCouleurSolution}\fpeval{\PfCFubukiNombre[#1]+\PfCFubukiNombre[\fpeval{#1+1}]+\PfCFubukiNombre[\fpeval{#1+2}]}%
+ }{}%
+ }{\fpeval{\PfCFubukiNombre[#1]+\PfCFubukiNombre[\fpeval{#1+1}]+\PfCFubukiNombre[\fpeval{#1+2}]}}%
+ }%
+}%
+
+\NewDocumentCommand\PfCFubukiAffichageSommeV{m}{%
+ \ifboolKV[Fubuki]{Vierge}{}{%
+ \ifboolKV[Fubuki]{Sommes}{%
+ \ifboolKV[Fubuki]{Solution}{%
+ \color{PfCFubukiCouleurSolution}\fpeval{\PfCFubukiNombre[#1]+\PfCFubukiNombre[\fpeval{#1+3}]+\PfCFubukiNombre[\fpeval{#1+6}]}%
+ }{}%
+ }{\fpeval{\PfCFubukiNombre[#1]+\PfCFubukiNombre[\fpeval{#1+3}]+\PfCFubukiNombre[\fpeval{#1+6}]}}%
+ }%
+}%
+
+\NewDocumentCommand\Fubuki{om}{%
+ \useKVdefault[Fubuki]%
+ \setKV[Fubuki]{#1}%
+ \colorlet{PfCFubukiCouleur}{\useKV[Fubuki]{Couleur}}%
+ \ifboolKV[Fubuki]{Indice}{%
+ \setsepchar{,}%
+ \readlist*\PfCFubukiListeIndices{\PfCFooListeIndices}%
+% \showitems\PfCFubukiListeIndices[]
+ }{}%
+ \ifboolKV[Fubuki]{Perso}{%
+ \xdef\PfCFooListeNombres{#2}%
+ \setsepchar{,}%
+ \readlist*\PfCFubukiNombre{\PfCFooListeNombres}%
+ }{%
+ \xdef\PfCFooListeNombres{1,2,3,4,5,6,7,8,9}%
+ \MelangeListe{\PfCFooListeNombres}{9}%
+ \setsepchar{,}%
+ \readlist*\PfCFubukiNombre{\faa}%
+ }%
+% \showitems\PfCFubukiNombre[]%
+ \setlength{\PfCFubuki}{\useKV[Fubuki]{Largeur}+\tabcolsep}%
+ \begin{NiceTabular}{*{4}{m{\useKV[Fubuki]{Largeur}}}}[corners=SE,hvlines]
+ \rule{0pt}{\PfCFubuki}\Block{}{\PfCFubukiAffichageNombre{1}}&\Block{}{\PfCFubukiAffichageNombre{2}}&\Block{}{\PfCFubukiAffichageNombre{3}}&\Block[fill=PfCFubukiCouleur]{}{\PfCFubukiAffichageSommeH{1}}\\
+ \rule{0pt}{\PfCFubuki}\Block{}{\PfCFubukiAffichageNombre{4}}&\Block{}{\PfCFubukiAffichageNombre{5}}&\Block{}{\PfCFubukiAffichageNombre{6}}&\Block[fill=PfCFubukiCouleur]{}{\PfCFubukiAffichageSommeH{4}}\\
+ \rule{0pt}{\PfCFubuki}\Block{}{\PfCFubukiAffichageNombre{7}}&\Block{}{\PfCFubukiAffichageNombre{8}}&\Block{}{\PfCFubukiAffichageNombre{9}}&\Block[fill=PfCFubukiCouleur]{}{\PfCFubukiAffichageSommeH{7}}\\
+ \rule{0pt}{\PfCFubuki}\Block[fill=PfCFubukiCouleur]{}{\PfCFubukiAffichageSommeV{1}}&\Block[fill=PfCFubukiCouleur]{}{\PfCFubukiAffichageSommeV{2}}&\Block[fill=PfCFubukiCouleur]{}{\PfCFubukiAffichageSommeV{3}}\\
+ \end{NiceTabular}
+}% \ No newline at end of file