%%%
% dobble
%%%
\def\filedateDobble{2025/11/17}%
\def\fileversionDobble{0.1a}%
\message{-- \filedateDobble\space v\fileversionDobble}%
% by Maxime Chupin
\NewDocumentCommand\dobble{m}{%
  \ifemptyKV[ClesDobble]{Rotation}{%
    \directlua{
    require('PfCdobble.lua')
    dobble("#1");
    }%
  }{%
    \edef\PfCDobbleRotation{\useKV[ClesDobble]{Rotation}}%
    \directlua{
    require('PfCdobbleTest.lua')
    dobble("#1");
    }%
  }%
}%

\setKVdefault[ClesDobble]{Niveau=5,CouleurCadre=black,Cercle=false,Rotation={}}

\NewDocumentCommand\Dobble{o m}{%
  \useKVdefault[ClesDobble]%
  \setKV[ClesDobble]{#1}%
  \colorlet{PfCDobbleColor}{\useKV[ClesDobble]{CouleurCadre}}%
  \setsepchar{,}%
  \readlist*\PfCListeSymboleDobble{#2}%
  \def\PfCDobbleTotalSymboles{\fpeval{1+\useKV[ClesDobble]{Niveau}+\useKV[ClesDobble]{Niveau}^2}}%
  \xdef\PfCDobbleNiveau{\useKV[ClesDobble]{Niveau}}%
  \xintifboolexpr{\PfCListeSymboleDobblelen==\PfCDobbleTotalSymboles}{%
    \dobble{\PfCDobbleNiveau}%
  }{%
    Pour un dobble basé sur le nombre premier \useKV[ClesDobble]{Niveau}, le nombre de symboles doit être égal à \num{\PfCDobbleTotalSymboles}.}%
}%

%%%%%%%%%% Change log
% 17/11/2025 : Ajout de la clé Rotation pour gérer l'affichage des symboles, notamment dans le cas d'un jeu de Dobble mathématique