Compilateur LaTeX en ligne
www.cpierquet.fr
fichiers/urnesv4.tex
↓ télécharger
%!TEX pdflatex

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{randomlist}
\usepackage{pgffor}
\usepackage{color}
\usepackage{xfp}
\usepackage{siunitx}
\usepackage{xstring}

\begin{document}

\edef\NBBOULESROUGES{\fpeval{randint(1,7)}} % Génération du nombre de boules rouges (entre 1 et 7)
\edef\NBBOULESVERTES{\fpeval{randint(1,9)}} % Génération du nombre de boules vertes (entre 1 et 9)
\edef\NBBOULESBLEUES{\fpeval{randint(1,6)}} % Génération du nombre de boules bleues (entre 1 et 6)
\edef\NBBOULESJAUNES{\fpeval{randint(1,8)}} % Génération du nombre de boules jaunes (entre 1 et 8)
\edef\NBBOULESORANGES{\fpeval{randint(1,10)}} % Génération du nombre de boules oranges (entre 1 et 10)
\edef\NBBOULESROUGESJAUNES{\fpeval{randint(1,8)}} % Génération du nombre de boules rouges/jaunes (entre 1 et 5)
\edef\NBBOULESVERTESORANGES{\fpeval{randint(1,7)}} % Génération du nombre de boules vertes/oranges (entre 1 et 5)
\edef\NBBOULESTOTAL{\fpeval{\NBBOULESROUGES+\NBBOULESVERTES+\NBBOULESBLEUES+\NBBOULESJAUNES+\NBBOULESORANGES+\NBBOULESROUGESJAUNES+\NBBOULESVERTESORANGES}}
\edef\dernierindice{\fpeval{3*\NBBOULESTOTAL-1}}
\edef\nblignes{5}
\edef\nbcolonnes{\fpeval{trunc(\dernierindice/\nblignes,0)}}


%COULEURS, à tester avec des boules 2-couleurs
\NewList{couleurs}
\SetList{couleurs}{rouge/R,verte/V,bleue/B,jaune/J,orange/O}
\GetRandomItem{couleurs}{choixcouleur}

%URNES
\NewList{urne}
\newcount\nbr
\nbr=\NBBOULESROUGES
\loop
	\InsertRandomItem{urne}{red/red}
	\advance \nbr -1
	\ifnum \nbr>0
\repeat
\newcount\nbv
\nbv=\NBBOULESVERTES
\loop
	\InsertRandomItem{urne}{green/green}
	\advance \nbv -1
	\ifnum \nbv>0
\repeat
\newcount\nbb
\nbb=\NBBOULESBLEUES
\loop
	\InsertRandomItem{urne}{blue/blue}
	\advance \nbb -1
	\ifnum \nbb>0
\repeat
\newcount\nbj
\nbj=\NBBOULESJAUNES
\loop
	\InsertRandomItem{urne}{yellow/yellow}
	\advance \nbj -1
	\ifnum \nbj>0
\repeat
\newcount\nbo
\nbo=\NBBOULESORANGES
\loop
	\InsertRandomItem{urne}{orange/orange}
	\advance \nbo -1
	\ifnum \nbo>0
\repeat
\newcount\nbrj
\nbrj=\NBBOULESROUGESJAUNES
	\loop
	\InsertRandomItem{urne}{red/yellow}
	\advance \nbrj -1
	\ifnum \nbrj>0
\repeat
\newcount\nbvo
\nbvo=\NBBOULESVERTESORANGES
	\loop
	\InsertRandomItem{urne}{green/orange}
	\advance \nbvo -1
	\ifnum \nbvo>0
\repeat
\newcount\nbb
\nbb=\inteval{2*\NBBOULESTOTAL}
\loop
	\InsertRandomItem{urne}{white/white}
	\advance \nbb -1
	\ifnum \nbb>0
\repeat
\ShowList{urne}

\medskip

\begin{center}
	\begin{tikzpicture}[scale=0.5]
		\foreach \i in {0,1,...,\dernierindice}{%
			\edef\q{\fpeval{trunc(\i/\nbcolonnes,0)}}
			\edef\r{\fpeval{trunc(\i-\nbcolonnes*\q,0)}}
			\edef\couleur{\urne[\i]}
			\StrBefore{\couleur}{/}[\couleurgauche]
			\StrBehind{\couleur}{/}[\couleurdroite]
			\coordinate (a\i) at (\r,\q) ;
			\filldraw[\couleurdroite] ($(a\i) + (-120:0.45)$) arc (-120:60:0.45) -- cycle;
			\filldraw[\couleurgauche] ($(a\i) + (60:0.45)$) arc (60:240:0.45) -- cycle;
		}
		\draw[thick] (-0.6,-0.6) rectangle ({\nbcolonnes-0.4},{\nblignes+0.6}) ;
	\end{tikzpicture}
\end{center}

\end{document}