Modifications (couleurs, chanfreins...) pour un rapprochement vers Scratch
[mp-scratch.git] / src / Controle.mp
1 vardef AffiControle=
2   path cadre;
3   cadre=(llcorner texto+(-eb,-eb))--%(llcorner texto+(0,-eb))--
4     (llcorner texto+(0.875cm,0)+(-eb,-eb))--
5     (llcorner texto+(0.875cm,0)+(0,-2eb))--
6     (llcorner texto+(1.125cm,0)+(0,-2eb))--
7     (llcorner texto+(1.125cm,0)+(eb,-eb))--
8     (lrcorner texto+(0,-eb))--(lrcorner texto+(eb,0))--(urcorner texto+(eb,0))--(urcorner texto+(0,eb))--
9     (ulcorner texto+(0.625cm,0)+(eb,eb))--
10     (ulcorner texto+(0.625cm,0))--
11     (ulcorner texto+(0.375cm,0))--
12     (ulcorner texto+(0.375cm,0)+(-eb,eb))--
13     (ulcorner texto+(0,eb))--(ulcorner texto+(-eb,0))--cycle;
14   picture TEXT;
15   TEXT=image(
16     fill cadre withcolor if unknown colControle : LightOrange else : colControle fi;
17   draw (llcorner texto+(-eb,-eb))--
18     (ulcorner texto+(-eb,0))--
19     (ulcorner texto+(0,eb))--
20     (ulcorner texto+(0.375cm,0)+(-eb,eb))--
21     (ulcorner texto+(0.375cm,0))--
22     (ulcorner texto+(0.625cm,0))--
23     (ulcorner texto+(0.625cm,0)+(eb,eb))--
24     (urcorner texto+(0,eb))--
25     (urcorner texto+(eb,0))--
26     (lrcorner texto+(eb,0))--
27     (lrcorner texto+(0,-eb))--
28     (llcorner texto+(1.125cm,0)+(eb,-eb))--
29     (llcorner texto+(1.125cm,0)+(0,-2eb))--
30     (llcorner texto+(0.875cm,0)+(0,-2eb))--
31     (llcorner texto+(0.875cm,0)+(-eb,-eb))--
32     (llcorner texto+(0.5cm,-eb));
33     if bloctest=true:
34       draw texto;% withcolor white;
35     fi;
36     );
37   TEXT
38 enddef;
39
40 vardef AffichageCN=
41   path cadre;
42   cadre=(llcorner texto+(-eb,0))--(llcorner texto+(0,-eb))--
43     (llcorner texto+(0.375cm,0)+(-eb,-eb))--
44     (llcorner texto+(0.375cm,0)+(0,-2eb))--
45     (llcorner texto+(0.625cm,0)+(0,-2eb))--
46     (llcorner texto+(0.625cm,0)+(eb,-eb))--
47     (lrcorner texto+(0,-eb))--(lrcorner texto+(eb,0))--(urcorner texto+(eb,0))--(urcorner texto+(0,eb))--
48     (ulcorner texto+(0.625cm,0)+(eb,eb))--
49     (ulcorner texto+(0.625cm,0))--
50     (ulcorner texto+(0.375cm,0))--
51     (ulcorner texto+(0.375cm,0)+(-eb,eb))--
52     (ulcorner texto+(0,eb))--(ulcorner texto+(-eb,0))--cycle;
53   picture TEXT;
54   TEXT=image(
55       fill cadre withcolor if unknown colControle : LightOrange else : colControle fi;
56     draw texto;
57     draw cadre;
58     );
59   TEXT
60 enddef;
61
62 vardef AffichageStop=
63   path cadre;
64   cadre=(llcorner texto+(-eb,0))--(llcorner texto+(0,-eb))--
65 %    (llcorner texto+(0.375cm,0)+(-eb,-eb))--
66 %    (llcorner texto+(0.375cm,0)+(0,-2eb))--
67 %    (llcorner texto+(0.625cm,0)+(0,-2eb))--
68 %    (llcorner texto+(0.625cm,0)+(eb,-eb))--
69     (lrcorner texto+(0,-eb))--(lrcorner texto+(eb,0))--(urcorner texto+(eb,0))--(urcorner texto+(0,eb))--
70     (ulcorner texto+(0.625cm,0)+(eb,eb))--
71     (ulcorner texto+(0.625cm,0))--
72     (ulcorner texto+(0.375cm,0))--
73     (ulcorner texto+(0.375cm,0)+(-eb,eb))--
74     (ulcorner texto+(0,eb))--(ulcorner texto+(-eb,0))--cycle;
75   picture TEXT;
76   TEXT=image(
77       fill cadre withcolor if unknown colControle : LightOrange else : colControle fi;
78     draw texto;
79     draw cadre;
80     );
81   TEXT
82 enddef;
83
84 vardef AffichageEC=
85   path cadre;
86   cadre=(llcorner texto+(-eb,0))--(llcorner texto+(0,-eb))--
87     (llcorner texto+(0.375cm,0)+(-eb,-eb))--
88     (llcorner texto+(0.375cm,0)+(0,-2eb))--
89     (llcorner texto+(0.625cm,0)+(0,-2eb))--
90     (llcorner texto+(0.625cm,0)+(eb,-eb))--
91     (lrcorner texto+(0,-eb))--(lrcorner texto+(eb,0))--
92     (urcorner texto+(eb,0))--(urcorner texto+(0,eb))--
93     1/2[ulcorner texto+(-eb,eb),urcorner texto+(eb,eb)]{dir150}..{dir-150}(ulcorner texto+(-eb,eb))--cycle;
94   picture TEXT;
95   TEXT=image(
96     fill cadre withcolor if unknown colControle : LightOrange else : colControle fi;
97     draw texto;
98     draw cadre;
99     );
100   TEXT
101 enddef;
102
103 pair coindebutbloc[];
104
105 vardef Repeter[](expr tps)=
106   save $;
107   picture $,texto;
108   bloctest:=true;
109   texto=image(
110     label(LATEX("\bfseries\color{white}répéter "&if numeric tps:"\colorbox{white}{\textcolor{black}{"&decimal(tps)&"}}" else: tps fi&" fois"),(0,0));
111   );
112 $=AffiControle shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffiControle);
113 _coinprec:=(llcorner $)+(0.5cm,0);
114 _coinprec:=_coinprec+(0,eb);
115 coindebutbloc@:=(llcorner $)+(0,eb);
116  $
117 enddef;
118
119 vardef RepeterI[]=
120   save $;
121   picture $,texto;
122   bloctest:=true;
123   texto=image(
124     label(LATEX("\bfseries\color{white}répéter indéfiniment"),(0,0));
125   );
126 $=AffiControle shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffiControle);
127 _coinprec:=(llcorner $)+(0.5cm,0);
128 _coinprec:=_coinprec+(0,eb);
129 coindebutbloc@:=(llcorner $)+(0,eb);
130  $
131 enddef;
132
133 vardef RepeterJ[](expr test)=
134   save $;
135   picture $,texto;
136   bloctest:=true;
137   texto=image(
138     label(LATEX("\bfseries\color{white}répéter jusqu'à "&test&""),(0,0));
139   );
140 $=AffiControle shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffiControle);
141 _coinprec:=(llcorner $)+(0.5cm,0);
142 _coinprec:=_coinprec+(0,eb);
143 coindebutbloc@:=(llcorner $)+(0,eb);
144  $
145 enddef;
146
147 vardef FinBlocRepeter[](expr tps)=
148   save $;
149   picture $,texto;
150   _coinprec:=_coinprec-(0.5cm,0);
151   drawoptions();
152   texto=image(
153       labeloffset:=0;
154     label.lrt(LATEX("\bfseries\color{white}répéter \colorbox{white}{\textcolor{white}{"&decimal(tps)&"}} fois"),if unknown _coinprec: (0,0) else:_coinprec fi);
155   labeloffset:=3;
156   );
157 path cadre;
158 cadre=(llcorner texto+(0.125,0))--(coindebutbloc@+(0.125,0))--(coindebutbloc@+(0.5cm+eb,0))--
159   (coindebutbloc@+(0.5cm,-eb))--
160   (ulcorner texto+(0.5cm,eb))--
161   (ulcorner texto+(0.5cm+eb,0))--
162   (urcorner texto+(-eb,0))--
163   (urcorner texto+(0,-eb))--
164   (lrcorner texto+(0,eb))--
165   (lrcorner texto+(-eb,0))--
166   (llcorner texto+(0.125+0.625cm,0)+(2eb,0))--
167   (llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
168   (llcorner texto+(0.125+0.375cm,0)+(eb,-eb))--
169   (llcorner texto+(0.125+0.375cm,0))--
170   (llcorner texto+(0.125,0)+(eb,0))--
171   (llcorner texto+(0.125,0)+(0,eb))--  
172   cycle;
173 bloctest:=false;
174 $=image(
175     fill cadre withcolor if unknown colControle : LightOrange else : colControle fi;
176   label.lft(LATEX("$\color{white}\raisebox{-0.5pt}{\hbox{$\bm{\_\!\_}$}}\!\!\!\!\bm{\uparrow}$"),0.5[lrcorner texto,urcorner texto]);
177   draw (coindebutbloc@+(0.5cm+eb,0))--
178     (coindebutbloc@+(0.5cm,-eb))--
179     (ulcorner texto+(0.5cm,eb))--
180     (ulcorner texto+(0.5cm+eb,0))--
181     (urcorner texto+(-eb,0))--
182     (urcorner texto+(0,-eb))--
183     (lrcorner texto+(0,eb))--
184     (lrcorner texto+(-eb,0))--
185     (llcorner texto+(0.125+0.625cm,0)+(2eb,0))--
186     (llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
187     (llcorner texto+(0.125+0.375cm,0)+(eb,-eb))--
188     (llcorner texto+(0.125+0.375cm,0))--
189     (llcorner texto+(0.125,0)+(eb,0))--
190     (llcorner texto+(0.125,0)+(0,eb))--
191     (coindebutbloc@+(0.125,0));
192   );
193 _coinprec:=(llcorner $);
194 _coinprec:=_coinprec+(0,eb);
195 $
196 enddef;
197
198 vardef FinBlocRepeterI[](expr tps)=
199   save $;
200   picture $,texto;
201   _coinprec:=_coinprec-(0.5cm,0);
202   drawoptions();
203   texto=image(
204       labeloffset:=0;
205     label.lrt(LATEX("\bfseries\color{white}répéter \colorbox{white}{\textcolor{white}{"&decimal(tps)&"}} fois"),if unknown _coinprec: (0,0) else:_coinprec fi);
206   labeloffset:=3;
207   );
208 path cadre;
209 cadre=(llcorner texto+(0.125,0)+(0,eb))--(coindebutbloc@+(0.125,0))--(coindebutbloc@+(0.5cm+eb,0))--
210   (coindebutbloc@+(0.5cm,-eb))--
211   (ulcorner texto+(0.5cm,eb))--
212   (ulcorner texto+(0.5cm+eb,0))--
213   (urcorner texto+(-eb,0))--
214   (urcorner texto+(0,-eb))--
215   (lrcorner texto+(0,eb))--
216   (lrcorner texto+(-eb,0))--
217   (llcorner texto+(0.125,0)+(eb,0))--
218   cycle;
219 bloctest:=false;
220 $=image(
221     fill cadre withcolor if unknown colControle : LightOrange else : colControle fi;
222   label.lft(LATEX("$\color{white}\raisebox{-0.5pt}{\hbox{$\bm{\_\!\_}$}}\!\!\!\!\bm{\uparrow}$"),0.5[lrcorner texto,urcorner texto]);
223   draw (coindebutbloc@+(0.5cm+eb,0))--
224     (coindebutbloc@+(0.5cm,-eb))--
225     (ulcorner texto+(0.5cm,eb))--
226     (ulcorner texto+(0.5cm+eb,0))--
227     (urcorner texto+(-eb,0))--
228   (urcorner texto+(0,-eb))--
229   (lrcorner texto+(0,eb))--
230   (lrcorner texto+(-eb,0))--
231   (llcorner texto+(0.125,0)+(eb,0))--
232   (llcorner texto+(0.125,0)+(0,eb))--(coindebutbloc@+(0.125,0));
233   );
234 _coinprec:=(llcorner $);
235 $
236 enddef;
237
238 vardef Si[](expr tps)=
239   save $;
240   picture $,texto;
241   bloctest:=true;
242   texto=image(
243     label(LATEX("\bfseries\color{white}si "&tps&" alors"),(0,0));
244   );
245 $=AffiControle shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffiControle);
246 _coinprec:=(llcorner $)+(0.5cm,0);
247 _coinprec:=_coinprec+(0,eb);
248 coindebutbloc@:=(llcorner $)+(0,eb);
249  $
250 enddef;
251
252 vardef FinBlocSi[]=
253   save $;
254   picture $,texto;
255   _coinprec:=_coinprec-(0.5cm,0);
256   drawoptions();
257   texto=image(
258       labeloffset:=0;
259     label.lrt(LATEX("\bfseries\color{white}répéter \colorbox{white}{\textcolor{black}{titi=10}}"),if unknown _coinprec: (0,0) else:_coinprec fi);
260   labeloffset:=3;
261   );
262 path cadre;
263 cadre=(llcorner texto+(0.125,0))--(coindebutbloc@+(0.125,0))--(coindebutbloc@+(0.5cm+eb,0))--
264   (coindebutbloc@+(0.5cm,-eb))--
265   (ulcorner texto+(0.5cm,eb))--
266   (ulcorner texto+(0.5cm+eb,0))--
267   (urcorner texto+(-eb,0))--
268   (urcorner texto+(0,-eb))--
269   (lrcorner texto+(0,eb))--
270   (lrcorner texto+(-eb,0))--
271   (llcorner texto+(0.125+0.625cm,0)+(2eb,0))--
272   (llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
273   (llcorner texto+(0.125+0.375cm,0)+(eb,-eb))--
274   (llcorner texto+(0.125+0.375cm,0))--
275   (llcorner texto+(0.125,0)+(eb,0))--
276   (llcorner texto+(0.125,0)+(0,eb))--  
277   cycle;
278 bloctest:=false;
279 $=image(
280     fill cadre withcolor if unknown colControle : LightOrange else : colControle fi;
281   draw (coindebutbloc@+(0.5cm+eb,0))--
282     (coindebutbloc@+(0.5cm,-eb))--
283     (ulcorner texto+(0.5cm,eb))--
284     (ulcorner texto+(0.5cm+eb,0))--
285     (urcorner texto+(-eb,0))--
286     (urcorner texto+(0,-eb))--
287     (lrcorner texto+(0,eb))--
288     (lrcorner texto+(-eb,0))--
289     (llcorner texto+(0.125+0.625cm,0)+(2eb,0))--
290     (llcorner texto+(0.125+0.625cm,0)+(eb,-eb))--
291     (llcorner texto+(0.125+0.375cm,0)+(eb,-eb))--
292     (llcorner texto+(0.125+0.375cm,0))--
293     (llcorner texto+(0.125,0)+(eb,0))--
294     (llcorner texto+(0.125,0)+(0,eb))--
295     (coindebutbloc@+(0.125,0));
296   );
297 _coinprec:=(llcorner $);
298 _coinprec:=_coinprec+(0,eb);
299 $
300 enddef;
301
302 vardef Sinon[]=
303   save $;
304   picture $,texto;
305   _coinprec:=_coinprec-(0.5cm,0);
306   drawoptions();
307   texto=image(
308       labeloffset:=0;
309     label.lrt(LATEX("\bfseries\color{white}\,sinon\phantom{\colorbox{white}{\textcolor{black}{\hbox to2cm{t}}}}"),if unknown _coinprec: (0,0) else:_coinprec fi);
310   labeloffset:=3;
311   );
312 path cadre;
313 cadre=(llcorner texto+(0.125,0))--(coindebutbloc@+(0.125,0))--
314   (coindebutbloc@+(0.5cm,0)+(eb,0))--
315   (coindebutbloc@+(0.5cm,0)+(0,-eb))--
316   (ulcorner texto+(0.5cm,0)+(0,eb))--
317   (ulcorner texto+(0.5cm,0)+(eb,0))--
318   (urcorner texto+(-eb,0))--
319   (urcorner texto+(0,-eb))--
320   (lrcorner texto+(0,eb))--
321   (lrcorner texto+(-eb,0))--
322   (llcorner texto+(0.125+1.125cm,0)+(2eb,0))--
323   (llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
324   (llcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
325   (llcorner texto+(0.125+0.875cm,0))--  
326   cycle;
327 bloctest:=false;
328 $=image(
329     fill cadre withcolor if unknown colControle : LightOrange else : colControle fi;
330   draw texto;
331   draw (coindebutbloc@+(0.5cm,0)+(eb,0))--
332     (coindebutbloc@+(0.5cm,0)+(0,-eb))--
333     (ulcorner texto+(0.5cm,0)+(0,eb))--
334     (ulcorner texto+(0.5cm,0)+(eb,0))--
335     (urcorner texto+(-eb,0))--
336     (urcorner texto+(0,-eb))--
337     (lrcorner texto+(0,eb))--
338     (lrcorner texto+(-eb,0))--
339     (llcorner texto+(0.125+1.125cm,0)+(2eb,0))--
340     (llcorner texto+(0.125+1.125cm,0)+(eb,-eb))--
341     (llcorner texto+(0.125+0.875cm,0)+(eb,-eb))--
342     (llcorner texto+(0.125+0.875cm,0));
343   draw (llcorner texto+(0.125,0))--(coindebutbloc@+(0.125,0));
344   );
345 _coinprec:=(llcorner $)+(0.5cm,0);
346 _coinprec:=_coinprec+(0,eb);
347 coindebutbloc[@]:=(llcorner $)+(0,eb);
348 $
349 enddef;
350
351 vardef Attendre(expr test)=
352   save $;
353   picture $,texto;
354   bloctest:=true;
355   texto=image(
356     label(LATEX("\bfseries\color{white}attendre "&if numeric test:"\colorbox{white}{\textcolor{black}{"&decimal(test)&"}}" else: test fi &" seconde(s)"),(0,0));
357   );
358 $=AffichageCN shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageCN);
359 _coinprec:=(llcorner $);
360 _coinprec:=_coinprec+(0,eb);
361  $
362 enddef;
363
364 vardef AttendreJ(expr test)=
365   save $;
366   picture $,texto;
367   bloctest:=true;
368   texto=image(
369     label(LATEX("\bfseries\color{white}attendre jusqu'à "&test&""),(0,0));
370   );
371 $=AffichageCN shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageCN);
372 _coinprec:=(llcorner $);
373 _coinprec:=_coinprec+(0,eb);
374  $
375 enddef;
376
377 vardef Stop(expr test)=
378   save $;
379   picture $,texto;
380   bloctest:=true;
381   texto=image(
382     label(LATEX("\bfseries\color{white}stop \colorbox{cDarkOrange}{\normalfont\textcolor{white}{"&test&" \tiny\textcolor{black}{$\blacktriangledown$}}}"),(0,0));
383   );
384 $=AffichageStop shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageStop);
385 _coinprec:=(llcorner $);
386 _coinprec:=_coinprec+(0,eb);
387  $
388 enddef;
389
390 vardef CommencerClone=
391   save $;
392   picture $,texto;
393   %bloctest:=true;
394   texto=image(
395     label(LATEX("\bfseries\color{white}quand je commence comme un clone"),(0,0));
396   );
397 $=AffichageEC shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageEC);
398 _coinprec:=(llcorner $);
399 _coinprec:=_coinprec+(0,eb);
400  $
401 enddef;
402
403 vardef CreerClone(expr test)=
404   save $;
405   picture $,texto;
406   bloctest:=true;
407   texto=image(
408     label(LATEX("\bfseries\color{white}créer un clone de \colorbox{cDarkOrange}{\normalfont\textcolor{white}{"&test&" \tiny\textcolor{black}{$\blacktriangledown$}}}"),(0,0));
409   );
410 $=AffichageCN shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageCN);
411 _coinprec:=(llcorner $);
412 _coinprec:=_coinprec+(0,eb);
413  $
414 enddef;
415
416 vardef SupprimerClone=
417   save $;
418   picture $,texto;
419   bloctest:=true;
420   texto=image(
421     label(LATEX("\bfseries\color{white}supprimer ce clone"),(0,0));
422   );
423 $=AffichageCN shifted (if unknown _coinprec:(0,0) else :_coinprec fi - ulcorner AffichageCN);
424 _coinprec:=(llcorner $);
425 _coinprec:=_coinprec+(0,eb);
426  $
427 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.