3283194bd9a704ade5514d0d018ec86d0073ba1a
[mp-scratch.git] / src / Controle.mp
1 vardef AffiControle=
2   path cadre;
3   cadre=(llcorner texto+(-eb,-eb))--(lrcorner texto+(eb,-eb))--(urcorner texto+(eb,eb))--(ulcorner texto+(-eb,eb))--cycle;
4   picture TEXT;
5   TEXT=image(
6     fill cadre withcolor LightOrange;
7     draw (llcorner texto+(-eb,-eb))--(ulcorner texto+(-eb,eb))--(urcorner texto+(eb,eb))--(lrcorner texto+(eb,-eb))--(llcorner texto+(0.5cm-eb,-eb));
8     if bloctest=true:
9       draw texto;% withcolor white;
10     fi;
11     );
12   TEXT
13 enddef;
14
15 vardef AffichageCN=
16   path cadre;
17   cadre=(llcorner texto+(-eb,-eb))--(lrcorner texto+(eb,-eb))--(urcorner texto+(eb,eb))--(ulcorner texto+(-eb,eb))--cycle;
18   picture TEXT;
19   TEXT=image(
20       fill cadre withcolor LightOrange;
21     draw texto;
22     draw (llcorner texto+(-eb,-eb))--(lrcorner texto+(eb,-eb))--(urcorner texto+(eb,eb))--(ulcorner texto+(-eb,eb))--cycle;
23     );
24   TEXT
25 enddef;
26
27 vardef AffichageEC=
28   path cadre;
29   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;
30   picture TEXT;
31   TEXT=image(
32     fill cadre withcolor LightOrange;
33     draw texto;
34     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;
35     );
36   TEXT
37 enddef;
38
39 pair coindebutbloc[];
40
41 vardef Repeter[](expr tps)=
42   save $;
43   picture $,texto;
44   bloctest:=true;
45   texto=image(
46     label(LATEX("\bfseries\color{white}Répéter "&if numeric tps:"\colorbox{white}{\textcolor{black}{"&decimal(tps)&"}}" else: tps fi&" fois"),(0,0));
47   );
48 $=AffiControle shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffiControle);
49 _coinprec:=(llcorner $)+(0.5cm,0);
50 coindebutbloc@:=(llcorner $);
51  $
52 enddef;
53
54 vardef RepeterI[]=
55   save $;
56   picture $,texto;
57   bloctest:=true;
58   texto=image(
59     label(LATEX("\bfseries\color{white}Répéter indéfiniment"),(0,0));
60   );
61 $=AffiControle shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffiControle);
62 _coinprec:=(llcorner $)+(0.5cm,0);
63 coindebutbloc@:=(llcorner $);
64  $
65 enddef;
66
67 vardef RepeterJ[](expr test)=
68   save $;
69   picture $,texto;
70   bloctest:=true;
71   texto=image(
72     label(LATEX("\bfseries\color{white}Répéter jusqu'à "&test&""),(0,0));
73   );
74 $=AffiControle shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffiControle);
75 _coinprec:=(llcorner $)+(0.5cm,0);
76 coindebutbloc@:=(llcorner $);
77  $
78 enddef;
79
80 vardef FinBlocRepeter[](expr tps)=
81   save $;
82   picture $,texto;
83   _coinprec:=_coinprec-(0.5cm,0);
84   drawoptions();
85   texto=image(
86       labeloffset:=0;
87     label.lrt(LATEX("\bfseries\color{white}Répéter \colorbox{white}{\textcolor{white}{"&decimal(tps)&"}} fois"),if unknown _coinprec: (0,0) else:_coinprec fi);
88   labeloffset:=3;
89   );
90 path cadre;
91 cadre=(llcorner texto+(0.125,0))--(coindebutbloc@+(0.125,0))--(coindebutbloc@+(0.5cm,0))--(ulcorner texto+(0.5cm,0))--(urcorner texto)--(lrcorner texto)--cycle;
92 bloctest:=false;
93 $=image(
94     fill cadre withcolor LightOrange;
95   label.lft(LATEX("$\color{white}\raisebox{-0.5pt}{\hbox{$\bm{\_\!\_}$}}\!\!\!\!\bm{\uparrow}$"),0.5[lrcorner texto,urcorner texto]);
96   draw (coindebutbloc@+(0.5cm,0))--(ulcorner texto+(0.5cm,0))--(urcorner texto)--(lrcorner texto)--(llcorner texto+(0.125,0))--(coindebutbloc@+(0.125,0));
97   );
98 _coinprec:=(llcorner $);
99 $
100 enddef;
101
102 vardef Si[](expr tps)=
103   save $;
104   picture $,texto;
105   bloctest:=true;
106   texto=image(
107     label(LATEX("\bfseries\color{white}Si "&tps&" alors"),(0,0));
108   );
109 $=AffiControle shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffiControle);
110 _coinprec:=(llcorner $)+(0.5cm,0);
111 coindebutbloc@:=(llcorner $);
112  $
113 enddef;
114
115 vardef FinBlocSi[]=
116   save $;
117   picture $,texto;
118   _coinprec:=_coinprec-(0.5cm,0);
119   drawoptions();
120   texto=image(
121       labeloffset:=0;
122     label.lrt(LATEX("\bfseries\color{white}Répéter \colorbox{white}{\textcolor{black}{titi=10}}"),if unknown _coinprec: (0,0) else:_coinprec fi);
123   labeloffset:=3;
124   );
125 path cadre;
126 cadre=(llcorner texto+(0.125,0))--(coindebutbloc@+(0.125,0))--(coindebutbloc@+(0.5cm,0))--(ulcorner texto+(0.5cm,0))--(urcorner texto)--(lrcorner texto)--cycle;
127 bloctest:=false;
128 $=image(
129     fill cadre withcolor LightOrange;
130   draw (coindebutbloc@+(0.5cm,0))--(ulcorner texto+(0.5cm,0))--(urcorner texto)--(lrcorner texto)--(llcorner texto+(0.125,0))--(coindebutbloc@+(0.125,0));
131   );
132 _coinprec:=(llcorner $);
133 $
134 enddef;
135
136 vardef Sinon[]=
137   save $;
138   picture $,texto;
139   _coinprec:=_coinprec-(0.5cm,0);
140   drawoptions();
141   texto=image(
142       labeloffset:=0;
143     label.lrt(LATEX("\bfseries\color{white}\,Sinon\phantom{\colorbox{white}{\textcolor{black}{\hbox to2cm{t}}}}"),if unknown _coinprec: (0,0) else:_coinprec fi);
144   labeloffset:=3;
145   );
146 path cadre;
147 cadre=(llcorner texto+(0.125,0))--(coindebutbloc@+(0.125,0))--(coindebutbloc@+(0.5cm,0))--(ulcorner texto+(0.5cm,0))--(urcorner texto)--(lrcorner texto)--cycle;
148 bloctest:=false;
149 $=image(
150     fill cadre withcolor LightOrange;
151   draw texto;
152   draw (coindebutbloc@+(0.5cm,0))--(ulcorner texto+(0.5cm,0))--(urcorner texto)--(lrcorner texto)--(llcorner texto+(0.5cm,0));
153   draw (llcorner texto+(0.125,0))--(coindebutbloc@+(0.125,0));
154   );
155 _coinprec:=(llcorner $)+(0.5cm,0);
156 coindebutbloc[@]:=(llcorner $);
157 $
158 enddef;
159
160 vardef Attendre(expr test)=
161   save $;
162   picture $,texto;
163   bloctest:=true;
164   texto=image(
165     label(LATEX("\bfseries\color{white}Attendre "&if numeric test:"\colorbox{white}{\textcolor{black}{"&decimal(test)&"}}" else: test fi &" seconde(s)"),(0,0));
166   );
167 $=AffichageCN shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageCN);
168 _coinprec:=(llcorner $);
169  $
170 enddef;
171
172 vardef AttendreJ(expr test)=
173   save $;
174   picture $,texto;
175   bloctest:=true;
176   texto=image(
177     label(LATEX("\bfseries\color{white}Attendre jusqu'à "&test&""),(0,0));
178   );
179 $=AffichageCN shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageCN);
180 _coinprec:=(llcorner $);
181  $
182 enddef;
183
184 vardef Stop(expr test)=
185   save $;
186   picture $,texto;
187   bloctest:=true;
188   texto=image(
189     label(LATEX("\bfseries\color{white}Stop \colorbox{DarkOrange}{\textcolor{white}{"&test&" \tiny\textcolor{black}{$\blacktriangledown$}}}"),(0,0));
190   );
191 $=AffichageCN shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageCN);
192 _coinprec:=(llcorner $);
193  $
194 enddef;
195
196 vardef CommencerClone=
197   save $;
198   picture $,texto;
199   bloctest:=true;
200   texto=image(
201     label(LATEX("\bfseries\color{white}Quand je commence comme un clone"),(0,0));
202   );
203 $=AffichageEC shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageEC);
204 _coinprec:=(llcorner $);
205  $
206 enddef;
207
208 vardef CreerClone(expr test)=
209   save $;
210   picture $,texto;
211   bloctest:=true;
212   texto=image(
213     label(LATEX("\bfseries\color{white}Créer un clone de \colorbox{DarkOrange}{\textcolor{white}{"&test&" \tiny\textcolor{black}{$\blacktriangledown$}}}"),(0,0));
214   );
215 $=AffichageCN shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageCN);
216 _coinprec:=(llcorner $);
217  $
218 enddef;
219
220 vardef SupprimerClone=
221   save $;
222   picture $,texto;
223   bloctest:=true;
224   texto=image(
225     label(LATEX("\bfseries\color{white}Supprimer ce clone"),(0,0));
226   );
227 $=AffichageCN shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageCN);
228 _coinprec:=(llcorner $);
229  $
230 enddef;

Licence Creative Commons Les fichiers de Syracuse sont mis à disposition (sauf mention contraire) selon les termes de la
Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.