Hi, list. The following works for MkIV, but not LMTX (adapted from here: https://tex.stackexchange.com/questions/617597/how-can-i-use-luas-string-len-inside-a-metapost-function):

\startMPinclusions

vardef MotMystere(expr taille, speciale, index) =

save avant,apres,case;

numeric avant,apres;

path case;

case := fullsquare scaled 13;

avant := speciale-1;

%For Unicode, use "utflen" instead

apres := utflen(taille) - speciale;

if avant >= 1:

for j=1 upto avant:

draw (case rotated 180

cutafter point 3 of case rotated 180)

shifted (-13j,-13*index);

endfor;

fi;

label.lft (index,point 3.5 of

case shifted (-13*avant,-13*index));

draw case yshifted (-13*index);

fill case yshifted (-13*index)

withcolor \MPcolor{gray-8};

if apres > 0:

for j=1 upto apres:

draw (case cutafter point 3 of case)

shifted (13j,-13*index);

endfor;

fi;

enddef;

\stopMPinclusions

\starttext

An example with "enigma"


\startMPcode

MotMystere("enigma",4,1)

\stopMPcode

\stoptext