diff options
Diffstat (limited to 'macros/latex/contrib/profcollege/latex/PfCKakuro.tex')
-rw-r--r-- | macros/latex/contrib/profcollege/latex/PfCKakuro.tex | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/macros/latex/contrib/profcollege/latex/PfCKakuro.tex b/macros/latex/contrib/profcollege/latex/PfCKakuro.tex new file mode 100644 index 0000000000..9f2d7bf47a --- /dev/null +++ b/macros/latex/contrib/profcollege/latex/PfCKakuro.tex @@ -0,0 +1,51 @@ +%%% +% Kakuro +%%% +\setKVdefault[Kakuro]{CouleurCase=LightGray,TLargeur=5,THauteur=5,Solution=false,Largeur=2em,Aide=false,CouleurSolution=Black,Tailles=false}%,Taille=5 +\defKV[Kakuro]{ListeNombres=\setKV[Kakuro]{Aide}}% +\defKV[Kakuro]{Taille=\setKV[Kakuro]{Tailles}}% + +\newlength\PfCKakuro% + +\NewDocumentCommand\Kakuro{o m}{% + \useKVdefault[Kakuro]% + \setKV[Kakuro]{#1}% + \ifboolKV[Kakuro]{Tailles}{% + \setKV[Kakuro]{THauteur=\useKV[Kakuro]{Taille}}% + \setKV[Kakuro]{TLargeur=\useKV[Kakuro]{Taille}}% + }{}% + \setlength{\PfCKakuro}{\useKV[Kakuro]{Largeur}+\tabcolsep}% + \setsepchar[*]{,*/}% + \readlist*\ListeCasesKK{#2}% + \setsepchar{,}% + \xdef\ListeAvantNombres{\useKV[Kakuro]{ListeNombres}}% + \readlist*\ListeKakuroNombres{\ListeAvantNombres}% + \savecomparemode% + \comparestrict% + \begin{NiceTabular}{*{\useKV[Kakuro]{TLargeur}}{m{\useKV[Kakuro]{Largeur}}}}[hvlines] + \xintFor* ##1 in {\xintSeq{0}{\fpeval{\useKV[Kakuro]{THauteur}-1}}}\do{% + \xintFor* ##2 in {\xintSeq{1}{\useKV[Kakuro]{TLargeur}}}\do{% + \rule{0pt}{\PfCKakuro}% + \StrCompare{\ListeCasesKK[\fpeval{\useKV[Kakuro]{TLargeur}*##1+##2},1]}{*}[\PfCTestBlack] + \xintifboolexpr{\PfCTestBlack==0}{% + \Block[fill=black]{1-1}{}% + }{% + \xintifboolexpr{\listlen\ListeCasesKK[\fpeval{\useKV[Kakuro]{TLargeur}*##1+##2}]==2}{ + \Block[fill=\useKV[Kakuro]{CouleurCase}]{1-1}{\diagbox{\ListeCasesKK[\fpeval{\useKV[Kakuro]{TLargeur}*##1+##2},1]}{\ListeCasesKK[\fpeval{\useKV[Kakuro]{TLargeur}*##1+##2},2]}}% + }{% + \Block{1-1}{\ifboolKV[Kakuro]{Solution}{\Large\color{\useKV[Kakuro]{CouleurSolution}}\num{\ListeCasesKK[\fpeval{\useKV[Kakuro]{TLargeur}*##1+##2},1]}}{% + \ifboolKV[Kakuro]{Aide}{% + \xintFor* ##3 in{\xintSeq{1}{\ListeKakuroNombreslen}}\do{% + \Block{1-1}{\xintifboolexpr{\ListeCasesKK[\fpeval{\useKV[Kakuro]{TLargeur}*##1+##2},1]==\ListeKakuroNombres[##3]}{\Large\color{\useKV[Kakuro]{CouleurSolution}}\num{\ListeCasesKK[\fpeval{\useKV[Kakuro]{TLargeur}*##1+##2},1]}}{}}% + }% + }{}% + }% + }% + }% + }% + \xintifForLast{\\}{&}% + }% + }% + \end{NiceTabular} + \restorecomparemode% +}%
\ No newline at end of file |