vardef AffiControle= path cadre; cadre=(llcorner texto+(-eb,-eb))--(lrcorner texto+(eb,-eb))--(urcorner texto+(eb,eb))--(ulcorner texto+(-eb,eb))--cycle; picture TEXT; TEXT=image( fill cadre withcolor LightOrange; draw (llcorner texto+(-eb,-eb))--(ulcorner texto+(-eb,eb))--(urcorner texto+(eb,eb))--(lrcorner texto+(eb,-eb))--(llcorner texto+(0.5cm-eb,-eb)); if bloctest=true: draw texto;% withcolor white; fi; ); TEXT enddef; vardef AffichageCN= path cadre; cadre=(llcorner texto+(-eb,-eb))--(lrcorner texto+(eb,-eb))--(urcorner texto+(eb,eb))--(ulcorner texto+(-eb,eb))--cycle; picture TEXT; TEXT=image( fill cadre withcolor LightOrange; draw texto; draw (llcorner texto+(-eb,-eb))--(lrcorner texto+(eb,-eb))--(urcorner texto+(eb,eb))--(ulcorner texto+(-eb,eb))--cycle; ); TEXT enddef; vardef AffichageEC= path cadre; cadre=(llcorner texto+(-eb,-eb))--(lrcorner texto+(eb,-eb))--(urcorner texto+(eb,eb))--1/4[ulcorner texto+(-eb,eb),urcorner texto+(eb,eb)]{dir120}..{dir-120}(ulcorner texto+(-eb,eb))--cycle; picture TEXT; TEXT=image( fill cadre withcolor LightOrange; draw texto; draw (llcorner texto+(-eb,-eb))--(lrcorner texto+(eb,-eb))--(urcorner texto+(eb,eb))--1/4[ulcorner texto+(-eb,eb),urcorner texto+(eb,eb)]{dir120}..{dir-120}(ulcorner texto+(-eb,eb))--cycle; ); TEXT enddef; pair coindebutbloc[]; vardef Repeter[](expr tps)= save $; picture $,texto; bloctest:=true; texto=image( label(LATEX("\bfseries\color{white}Répéter "&if numeric tps:"\colorbox{white}{\textcolor{black}{"&decimal(tps)&"}}" else: tps fi&" fois"),(0,0)); ); $=AffiControle shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffiControle); _coinprec:=(llcorner $)+(0.5cm,0); coindebutbloc@:=(llcorner $); $ enddef; vardef RepeterI[]= save $; picture $,texto; bloctest:=true; texto=image( label(LATEX("\bfseries\color{white}Répéter indéfiniment"),(0,0)); ); $=AffiControle shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffiControle); _coinprec:=(llcorner $)+(0.5cm,0); coindebutbloc@:=(llcorner $); $ enddef; vardef RepeterJ[](expr test)= save $; picture $,texto; bloctest:=true; texto=image( label(LATEX("\bfseries\color{white}Répéter jusqu'à "&test&""),(0,0)); ); $=AffiControle shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffiControle); _coinprec:=(llcorner $)+(0.5cm,0); coindebutbloc@:=(llcorner $); $ enddef; vardef FinBlocRepeter[](expr tps)= save $; picture $,texto; _coinprec:=_coinprec-(0.5cm,0); drawoptions(); texto=image( labeloffset:=0; label.lrt(LATEX("\bfseries\color{white}Répéter \colorbox{white}{\textcolor{white}{"&decimal(tps)&"}} fois"),if unknown _coinprec: (0,0) else:_coinprec fi); labeloffset:=3; ); path cadre; cadre=(llcorner texto+(0.125,0))--(coindebutbloc@+(0.125,0))--(coindebutbloc@+(0.5cm,0))--(ulcorner texto+(0.5cm,0))--(urcorner texto)--(lrcorner texto)--cycle; bloctest:=false; $=image( fill cadre withcolor LightOrange; label.lft(LATEX("$\color{white}\raisebox{-0.5pt}{\hbox{$\bm{\_\!\_}$}}\!\!\!\!\bm{\uparrow}$"),0.5[lrcorner texto,urcorner texto]); draw (coindebutbloc@+(0.5cm,0))--(ulcorner texto+(0.5cm,0))--(urcorner texto)--(lrcorner texto)--(llcorner texto+(0.125,0))--(coindebutbloc@+(0.125,0)); ); _coinprec:=(llcorner $); $ enddef; vardef Si[](expr tps)= save $; picture $,texto; bloctest:=true; texto=image( label(LATEX("\bfseries\color{white}Si "&tps&" alors"),(0,0)); ); $=AffiControle shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffiControle); _coinprec:=(llcorner $)+(0.5cm,0); coindebutbloc@:=(llcorner $); $ enddef; vardef FinBlocSi[]= save $; picture $,texto; _coinprec:=_coinprec-(0.5cm,0); drawoptions(); texto=image( labeloffset:=0; label.lrt(LATEX("\bfseries\color{white}Répéter \colorbox{white}{\textcolor{black}{titi=10}}"),if unknown _coinprec: (0,0) else:_coinprec fi); labeloffset:=3; ); path cadre; cadre=(llcorner texto+(0.125,0))--(coindebutbloc@+(0.125,0))--(coindebutbloc@+(0.5cm,0))--(ulcorner texto+(0.5cm,0))--(urcorner texto)--(lrcorner texto)--cycle; bloctest:=false; $=image( fill cadre withcolor LightOrange; draw (coindebutbloc@+(0.5cm,0))--(ulcorner texto+(0.5cm,0))--(urcorner texto)--(lrcorner texto)--(llcorner texto+(0.125,0))--(coindebutbloc@+(0.125,0)); ); _coinprec:=(llcorner $); $ enddef; vardef Sinon[]= save $; picture $,texto; _coinprec:=_coinprec-(0.5cm,0); drawoptions(); texto=image( labeloffset:=0; label.lrt(LATEX("\bfseries\color{white}\,Sinon\phantom{\colorbox{white}{\textcolor{black}{\hbox to2cm{t}}}}"),if unknown _coinprec: (0,0) else:_coinprec fi); labeloffset:=3; ); path cadre; cadre=(llcorner texto+(0.125,0))--(coindebutbloc@+(0.125,0))--(coindebutbloc@+(0.5cm,0))--(ulcorner texto+(0.5cm,0))--(urcorner texto)--(lrcorner texto)--cycle; bloctest:=false; $=image( fill cadre withcolor LightOrange; draw texto; draw (coindebutbloc@+(0.5cm,0))--(ulcorner texto+(0.5cm,0))--(urcorner texto)--(lrcorner texto)--(llcorner texto+(0.5cm,0)); draw (llcorner texto+(0.125,0))--(coindebutbloc@+(0.125,0)); ); _coinprec:=(llcorner $)+(0.5cm,0); coindebutbloc[@]:=(llcorner $); $ enddef; vardef Attendre(expr test)= save $; picture $,texto; bloctest:=true; texto=image( label(LATEX("\bfseries\color{white}Attendre "&if numeric test:"\colorbox{white}{\textcolor{black}{"&decimal(test)&"}}" else: test fi &" seconde(s)"),(0,0)); ); $=AffichageCN shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageCN); _coinprec:=(llcorner $); $ enddef; vardef AttendreJ(expr test)= save $; picture $,texto; bloctest:=true; texto=image( label(LATEX("\bfseries\color{white}Attendre jusqu'à "&test&""),(0,0)); ); $=AffichageCN shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageCN); _coinprec:=(llcorner $); $ enddef; vardef Stop(expr test)= save $; picture $,texto; bloctest:=true; texto=image( label(LATEX("\bfseries\color{white}Stop \colorbox{DarkOrange}{\textcolor{white}{"&test&" \tiny\textcolor{black}{$\blacktriangledown$}}}"),(0,0)); ); $=AffichageCN shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageCN); _coinprec:=(llcorner $); $ enddef; vardef CommencerClone= save $; picture $,texto; bloctest:=true; texto=image( label(LATEX("\bfseries\color{white}Quand je commence comme un clone"),(0,0)); ); $=AffichageEC shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageEC); _coinprec:=(llcorner $); $ enddef; vardef CreerClone(expr test)= save $; picture $,texto; bloctest:=true; texto=image( label(LATEX("\bfseries\color{white}Créer un clone de \colorbox{DarkOrange}{\textcolor{white}{"&test&" \tiny\textcolor{black}{$\blacktriangledown$}}}"),(0,0)); ); $=AffichageCN shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageCN); _coinprec:=(llcorner $); $ enddef; vardef SupprimerClone= save $; picture $,texto; bloctest:=true; texto=image( label(LATEX("\bfseries\color{white}Supprimer ce clone"),(0,0)); ); $=AffichageCN shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageCN); _coinprec:=(llcorner $); $ enddef;