Курсовая работа: Задача Y пентамино
//на поле расстановки
void placing(int i) //i-номер фигуры
{ const static int n=6,m=10;
struct pents
{ int shape[5][5];//формафигуры
char located; //находится на доске/не находится
} image[12]; int field[n][m];
//вспомогательные счётчики и
//признак нахождения подходящего варианта
int j1,h1,b;
//цикл нахождения всевозможных вариантов для i-ой фигуры
for(int j=1;j<=n;j++)
{ j1=j;
//просматриваем каждый столбец j-ой строки
for(int h=1;h<=m;h++)
{ h1=h;b=1;
//циклы доступа к элементам массива формата каждой фигуры
for(int k=1;k<=5;k++)
{ for(int l=1;l<=5;l++)
//если сумма элементов массива формы i-ой фигуры
//и элементов массива поля расстановки больше 1
//т.е. происходит наложение фигур друг на друга, то b присвоить значение 0
{ if (image[i].shape[k][l]+field[j1][h1]>1) b=0;
h1++;
}
j1++;h1=h;
}
//если не разу не произошло наложение фигур, т.е. фигура подходит,
//то выход из цикла поиска