j'ai pas gm en ce moment mais tu peux faire un truc du genre :
for (wv=0; wv<width; wv+=1)
for (hv=0; hv<height; hv+=1)
{
string_execute('puzzle_'+string(ds_list_find_value(w,wv))+'_'+string(ds_list_find_value(h,hv))+'=object_add()');
}
ça crée plusieurs objets puzzle_0_0, puzzle_0_1, puzzle_0_2, puzzle_1_0 etc
enfin il faut configurer et tout le charabia après, genre pour les sprite tu les découper en morceau avec les surfaces par exemple...