\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